Shinken est en ensemble de démons travaillant de manière autonome pour collecter les statuts des équipements supervisés. Mais dans certain cas, Shinken ne peut pas accéder aux équipements.
Le receiver permet alors de recevoir des messages de l’extérieur et de les transmettre aux démons concernés.
Le module receiver-module-generic-endpoint est un module qui est utile pour servir de base au développement des modules:
Ce module applique un filtre sur les hôtes qui vont être autorisés à recevoir des messages de l'extérieur
Enfin, pour chaque hôte reçus aura a dans sa définition des données
Il faut un nom pour votre module. Le nom doit respecter:
Dans cette documentation on le nommera NOMduMODULE
Nous suivons maintenant pour tout nouveau module la convention suivante: NOMduDEMON_module_NOMduMODULE |
Le module est installé via deux actions:
Il faut donc:
| Il est important de renommer TOUTES les parties du module, si votre module a encore des classes ayant le même nom que le module generic, alors il y aura des problème d'import du code par le daemon et le résultat sera incorrect. |
Dans le code livré par défaut, le nom du module est MODULE_CODE_NAME.
Pour que le module s'active il faut:
Important: il faut que le module soit configuré pour recevoir les données d'inventaires des hôtes/clusters que sous souhaitez gérer via ce receiver. Pour cela il faut utiliser les paramètres suivants:
Il est important de bien lire les commentaires dans le code d'exemple avant toute modification.
Le code est divisés en deux parties:
Le code dans le module va être très limité, car la seule méthode que vous pouvez modifier/surcharger est get_raw_stats qui est utilisée pour les checks de supervision et le healthcheck.
Il est important de:
Le code dans le worker est celui où sera votre code métier ainsi que votre boucle principale d'actions.
Ici encore certaines règles s'appliquent afin s'assurer une stabilité dans le temps:
Les méthodes que vous pouvez surcharger sont multiples.
Méthodes surchargeables concernant le fonctionnement global du worker:
| ATTENTION: toutes les autres méthodes (exceptées init_worker_before_main qui est appelées avant le worker_main) sont faites dans des threads différents. Vous devez donc faire attention à l'accès concurrents de vos données. |
Les méthodes concernant l'inventaires des hôtes:
Dans le worker il est possible actuellement d'effectuer les actions suivantes:
Pour pousser un résultat d'hôte/cluster vers les schedulers il faut créer un objet PROCESS_HOST_CHECK_RESULT avec comme arguments:
Pour pousser un résultat de check vers les schedulers il faut créer un objet PROCESS_SERVICE_CHECK_RESULT avec comme arguments:
Pour créer une prise en compte d'élément hôte/cluster il faut créer un objet ACKNOWLEDGE_HOST_PROBLEM:
Pour créer une prise en compte d'élément check il faut créer un objet ACKNOWLEDGE_SVC_PROBLEM:
Pour créer une période de maintenance d'élément hôte/cluster il faut créer un objet SCHEDULE_HOST_DOWNTIME:
Pour créer une période de maintenance d'élément hôte/cluster il faut créer un objet SCHEDULE_SVC_DOWNTIME: