Le module receiver-module-generic-endpoint est un module qui est utile pour servir de base au développement d'un module:
| Il est important de noter que seul les éléments spécifiquement sélectionné par un template d'hôte dans la configuration du receiver seront gérés par ce receiver et ses modules |
Il faut un nom pour votre module. Le nom doit respecter:
Dans cette documentation on le nommera mon_module
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:
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: