Chaque démon va démarrer son gestionnaire de module "modules-manager" qui va charger chaque module présent dans /var/lib/shinken/modules. Pour qu'un module soit chargé, il faut qu'il soit présent dans un répertoire.
Le "modules-manager" va commencer à charger son module ??? et ne loguera que s'il rencontre un problème.
Si le "modules-manager" rencontre un problème durant le chargement du module, un log en ERROR avec l’exception Python sera affiché et le module ne sera pas importé. NUL
[YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ CODE-LOADING ] [ directory=my_broker_module_directory ] Import module [my_broker_module] failed: EXCEPTION. |
Lors du chargement du code, le "modules-manager" va vérifier si un module peut être importé en tant qu'un package Python.
Si le "modules-manager" ne peut pas importer le code du module en tant que package python alors un logs en INFO sera affiché.
[YYYY-MM-DD HH:MM:SS] WARNING : [ broker-master ] [ MODULES-MANAGER ] [ CODE-LOADING ] [ directory=my_broker_module ] Failed to import the directory /var/lib/shinken/modules/my_broker_module as a python module. |
Si le "modules-manager" ne peut pas importer le code du module en tant que package Python et qu'un import d'un fichier du module à un autre est fait, 3 Logs en ERROR seront affiché et le module ne sera pas chargé.
Un premier log disant que l'import a échoué et que le module ne sera pas chargé.
[YYYY-MM-DD HH:MM:SS] WARNING : [ broker-master ] [ MODULES-MANAGER ] [ CODE-LOADING ] [ directory=my_broker_module_directory ] Failed to import the directory /var/lib/shinken/modules/my_broker_module as a python module. The module gonna be not charged. |
Un deuxième log disant que le fichier '__init__.py' dans le dossier du module est manquant ( Sans ce fichier il n'est pas possible d'importer le module en tant que module Python ).
[YYYY-MM-DD HH:MM:SS] WARNING : [ broker-master ] [ MODULES-MANAGER ] [ CODE-LOADING ] [ directory=my_broker_module_directory ] - because of missing file : /var/lib/shinken/modules/my_broker_module/__init__.py. |
Un troisième log informant qu'il n'est pas possible de faire un import : 'import my_broker_module.my_file '. Car le module n'a pas été importé en tant que module python.
[YYYY-MM-DD HH:MM:SS] WARNING : [ broker-master ] [ MODULES-MANAGER ] [ CODE-LOADING ] [ directory=my_broker_module_directory ] - 'import my_broker_module.my_file' do not work in your module.py file. |
Une fois que le modules-manager a importé son module , il va vérifier si le dictionnaire "properties" existe.
S'il n'existe pas, le log en ERROR suivant sera affiché et le module ne sera pas importé:
[YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ CODE-LOADING ] [ directory=my_broker_module_directory ] Missing properties dict in your module file /var/lib/shinken/modules/my_broker_module/module.py. The module will not be imported. |
Une fois le code python chargé, on demande au "modules-manager" de créer les modules, de les démarrer et de démarrer son ou ces Worker(s).
Le "modules-manager" va essayer de créer le module :
Si le code du module ne contient pas la fonction "get_instance()" ou qu'elle ne retourne rien, un log en ERROR sera affiché.
[YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ CREATION ] [ my_broker_module_name] [ module-type=my_broker_module_type ] FAIL The module get_instance() call did not return any instance. |
Si le "get_instance()" du module rencontre une erreur, le log en ERROR sera affiché avec l'exception Python concernée:
[YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ CREATION ] [ my_broker_module_name ] [ module-type=my_broker_module_type ] [0.046s] FAIL The module creation did fail with an exception: EXCEPTION. Will try to recreate it in the future. |
Si le module a bien été créée alors un log en INFO sera affiché son temps de création.
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ MODULES-MANAGER ] [ CREATION ] [ my_broker_module_name ] [ module-type=my_broker_module_type ] [0.046s] SUCCESS The module is created. |
Une fois le module créé, le "modules-manager" va essayer de le démarrer. Ce log sera en INFO.
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ MODULES-MANAGER ] [ CREATION ] [ my_broker_module_name ] [ module-type=my_broker_module_type ] Trying to init module. |
Si le "modules-manager" a réussi à créer son module, mais n'a pas réussi à le démarrer alors 3 logs apparaîtront :
Un log en ERROR avec l'exception Python rencontré:
[YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ CREATION ] [ my_broker_module_name ] [ module-type=my_broker_module_type ] The module failed to init and he raised an exception: EXCEPTION. |
Un log en WARNING indiquant le nombre de fois que le "modules-manager" à essayer de démarrer son module sans succès. Le compteur se remet à zéro dès lors que le démon a réussi à démarrer son module.
[YYYY-MM-DD HH:MM:SS] WARNING : [ broker-master ] [ MODULES-MANAGER ] [ CREATION ] [ my_broker_module_name ] [ module-type=my_broker_module_type ] The module tried to start: 5 times. |
Un log en WARNING indiquant quand le "modules-manager" va essayer de redémarrer son module ( maximum une minute ).
[YYYY-MM-DD HH:MM:SS] WARNING : [ broker-master ] [ MODULES-MANAGER ] [ CREATION ] [ my_broker_module_name ] [ module-type=my_broker_module_type ] The module will try to restart at 16:32:18. |
Un log en INFO apparaîtra si le "modules-manager a réussi à démarrer son module.
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ MODULES-MANAGER ] [ CREATION ] [ my_broker_module_name ] [ module-type=my_broker_module_type ] SUCCESS The module is started. |
Une fois le module démarré, s'il utilise des Workers, le "modules-manager" va essayer de les démarrer. S'il n'arrive pas à les démarrer le module redémarrera dans le futur (max 1 minute) afin de redémarrer ses Workers. Ce log sera en INFO.
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ MODULES-MANAGER ] [ CREATION ] [ my_broker_module_name ] [ module-type=my_broker_module_type ] Starting a worker(s). |
Si le "modules-manager" n'a pas réussi à démarrer ses Workers du module :
Et qu'il a levé une exception lors du démarrage alors un log en ERROR sera affiché disant que le "modules-manager" n'a pas réussi à démarrer les Workers du module avec le message de l'exception. Le module redémarrera dans le futur (max 1 minute).
[YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ CREATION ] [ my_broker_module_name ] [ module-type=my_broker_module_type ] The worker(s) failed to init and raised an exception: EXCEPTION. The module gonna be restarted in the future. |
Un log en ERROR sera affiché disant que le "modules-manager" n'a pas réussi à démarrer les Workers du module et que le module redémarrera dans le futur (max 1 minute).
[YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ CREATION ] [ my_broker_module_name ] [ module-type=my_broker_module_type ] The worker(s) failed to init. The module gonna be restarted in the future. |
Si les Workers du module ce sont bien démarré alors ce log en INFO apparaîtra.
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ MODULES-MANAGER ] [ CREATION ] [ my_broker_module_name ] [ module-type=my_broker_module_type ] SUCCESS The worker(s) is created. |
Lorsqu'un démon reçoit un nouveau module, le "modules-manager" affichera un log en INFO comme quoi le module a été ajouté à la configuration du démon.
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ MODULES-MANAGER ] [ UPDATE ] [ my_broker_module_name ] Launched as a NEW module as it was added in the daemon configuration. |
Lorsqu'un module est enlevé de la configuration du démon, le "modules-manager" affichera un log en INFO informant que l'on supprime le module, car il n'est plus dans la configuration du démon.
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ MODULES-MANAGER ] [ UPDATE ] [ my_broker_module_name ] Removing the module because it is removed from the configuration. |
Si le "modules-manager" a essayé de supprimer le module, mais qu'il ne la pas trouver dans sa liste de module en cours d’exécution alors un log en WARNING sera affiché.
[YYYY-MM-DD HH:MM:SS] WARNING : [ broker-master ] [ MODULES-MANAGER ] [ UPDATE ] [ my_broker_module_name ] Trying to remove the module WebUI but it is not found in the current running modules: LIST_CURRENT_RUNNING_MODULES |
Le démon a détecté que la configuration de son module n'est plus la même qu'avant le "modules-manager" annonce avec un log INFO qu'il va redémarrer son module afin de prendre la nouvelle configuration en compte.
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ MODULES-MANAGER ] [ UPDATE ] [ my_broker_module_name ] Configuration of the module did change so we restart it. |
Le démon n'arrive pas à le mettre à jour le module. Le "modules-manager" informe qu'il faut contacter la support avec un log en ERROR.
.
[YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ UPDATE ] [ my_broker_module_name ] We cannot update %s module name. Please contact your Support. |
Lorsqu'un démon s'éteint, il va d'abord demander au "modules-manager" d'éteindre ses modules.
Ce log en INFO indique que le "modules-manager" va commencer à éteindre tous ses modules.
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ MODULES-MANAGER ] [ SHUTDOWN ] Start to shutdown all modules. |
Ce log en INFO indique que le "modules-manager est en train d’arrêter le module.
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ MODULES-MANAGER ] [ SHUTDOWN ] Stopping module WebUI. |
Si une exception Python a été remontée par le "modules-manager" lors de l’arrêt du module, un log apparaîtra en ERROR avec le nom du module et le message de l’exception Python.
[YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ SHUTDOWN ] Stopping module FAILED. The quit() function on module [ WebUI ] failed with error: EXCEPTION. |
Si le "modules-manager" a essayé de supprimer un module, mais qu'il ne la pas trouver dans sa liste de module en cours d’exécution alors un log en WARNING sera affiché.
[YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ SHUTDOWN ] Trying to remove the module WebUI but it is not found in the current running modules: LIST_CURRENT_RUNNING_MODULES |
Le "modules-manager" informe avec un log INFO qu'il à terminé d’arrêter tous les modules.
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ MODULES-MANAGER ] [ SHUTDOWN ] End of stopping all modules. |
Lorsqu'un module externe n'est plus en cours d’exécution et qu'il s'est éteint de façon inattendue, le "modules-manager" affichera un log en ERROR.
[YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ CRASH ] [ my_broker_module_name ] [ module-type=my_broker_module_type ] The external module my_broker_module goes down unexpectedly! |
Lorsqu'un ou plusieurs Worker(s) d'un module externe n'est ou ne sont plus en cours d’exécution et qu'il s'est ou qu'ils se sont éteint(s) de façon inattendue le "modules-manager" affichera un log en ERROR.
[YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ CRASH ] [ my_broker_module_name ] [ module-type=my_broker_module_type ] The module my_broker_module worker(s) goes down unexpectedly! |
Lorsqu'un module externe à une taille de liste d'attente (de commande interne ou de retour de commande interne) plus élevée que la taille maximale définie dans le fichier de configuration ini du démon ( max_queue_size ) un log sera affiché en ERROR.
QUEUE_SIZE = Taille ( en nombre d'éléments ) de la liste d'attente. Éléments possibles : Commande(s) ou retour de commande(s).
QUEUE_MAX_SIZE = Taille ( en nombre d'éléments ) maximale de la Queue définie dans le fichier ini du démon ( paramètre max queue size ).
[YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ CRASH ] [ my_broker_module ] [ module-type=my_broker_module ] The external module my_broker_module got a too high brok queue size (QUEUE_SIZE > QUEUE_MAX_SIZE)! |