diff --git a/bin/linspector b/bin/linspector index bba4451..d140326 100755 --- a/bin/linspector +++ b/bin/linspector @@ -20,7 +20,7 @@ from linspector.environment import Environment from linspector.linspector import Linspector from linspector.monitors import Monitors -__version__ = '0.25.6' +__version__ = '0.25.7' __author__ = 'Johannes Findeisen ' diff --git a/linspector/monitor.py b/linspector/monitor.py index faf95b0..ffa4956 100644 --- a/linspector/monitor.py +++ b/linspector/monitor.py @@ -122,7 +122,7 @@ class Monitor: try: self._result = self._services[self._service].execute(self._identifier, self, self._service, **self._args) - + self._log.debug(self._result) self._log.debug(self._databases) for database in self._databases: self._databases[database].insert(self._result['host'], @@ -132,6 +132,7 @@ class Monitor: self._result['service'], self._result['status'], int(time.time())) + self._log.info(self._result['message']) self._log.debug(self._tasks) for task in self._tasks: diff --git a/linspector/service.py b/linspector/service.py index cf522d9..2ebafe9 100644 --- a/linspector/service.py +++ b/linspector/service.py @@ -4,8 +4,15 @@ Copyright (c) 2013-2023 Johannes Findeisen . All Rights Reserved. See LICENSE. """ + class Service: def __init__(self, configuration, environment, log): self._configuration = configuration self._environment = environment self._log = log + + @staticmethod + def get_str(identifier, host, service, status): + log_string = ('identifier=' + identifier + + ' host=' + host + ' service=' + service + ' status=' + status) + return log_string diff --git a/linspector/services/net/port.py b/linspector/services/net/port.py index c80b59c..fb53da9 100644 --- a/linspector/services/net/port.py +++ b/linspector/services/net/port.py @@ -21,22 +21,15 @@ class PortService(Service): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((monitor.get_host(), int(kwargs['port']))) sock.close() - - self._log.info('Connection to host ' + monitor.get_host() + ' on port ' + - kwargs['port'] + ' successful') - - return {'status': 'OK', - 'message': 'Connection to host ' + monitor.get_host() + ' on port ' + - kwargs['port'] + ' successful', 'host': monitor.get_host(), - 'service': service} + error = 'None' + status = 'OK' except Exception as err: - self._log.info('Connection to host ' + monitor.get_host() + ' on port ' + - kwargs['port'] + ' failed (' + str(err)) - - return {'status': 'ERROR', - 'message': 'Connection to host ' + monitor.get_host() + ' on port ' + - kwargs['port'] + ' failed (' + str(err) + - ')', 'host': monitor.get_host(), - 'service': service} + error = str(err) + status = 'ERROR' + return {'error': error, + 'host': monitor.get_host(), + 'message': self.get_str(identifier, monitor.get_host(), service, status), + 'service': service, + 'status': status} diff --git a/linspector/services/vendor/avm/is_connected.py b/linspector/services/vendor/avm/is_connected.py index 44975a4..d17e59c 100644 --- a/linspector/services/vendor/avm/is_connected.py +++ b/linspector/services/vendor/avm/is_connected.py @@ -17,29 +17,22 @@ class IsConnectedService(Service): def execute(self, identifier, monitor, service, **kwargs): - self._log.debug('identifier=' + identifier + - ' service=' + service + - ' object=' + str(self) + - ' kwargs=' + str(kwargs)) try: fc = FritzStatus(address=monitor.get_host(), password=kwargs['password']) + error = 'None' + if fc.is_connected: + status = 'OK' + else: + status = 'ERROR' except Exception as err: - self._log.error('identifier=' + identifier + - ' host=' + monitor.get_host() + - ' service=' + service + - ' error=' + str(err)) - return {"status": 'ERROR', "message": str(err)} + error = str(err) + status = 'ERROR' - self._log.info('identifier=' + identifier + - ' host=' + monitor.get_host() + - ' service=' + service + - ' status=' + ('OK' if fc.is_connected else 'ERROR')) - - result = {"host": monitor.get_host(), - "message": "Uplink on host " + monitor.get_host() + " " + - ('UP' if fc.is_connected else 'DOWN'), - "service": service, - "status": ('OK' if fc.is_connected else 'ERROR')} + result = {'error': error, + 'host': monitor.get_host(), + 'message': self.get_str(identifier, monitor.get_host(), service, status), + 'service': service, + 'status': status} return result