Le watchdog cbwd, le meilleur ami du broker
Nous étudierons le fonctionnement du programme cbwd. Sa principale mission est de gérer la bonne exécution des services du broker (généralement constitué de deux processus cbd) et de superviser en permanence le fonctionnement et de relancer le processus en cas de besoin (mécanisme watchdog).
Avant le watchdog…
Précédemment, le lancement du broker était confié à un service de type system V et associé à un fichier master.run. Celui-ci, en fonction de sa configuration, permettait de lancer deux processus cbd correspondant respectivement au broker central et au broker rrd. Mais ce procédé, n'étant pas adapté au nouveau systemd, les développeurs ont eu l'idée d'un système plus innovant et plus fiable.
Pour visualiser les processus cbd, lancez cette commande :
ps aux | grep cbd
vous devriez avoir ce résultat
centreo+ 508 0.1 1.3 820172 13876 ? Ssl 2017 194:33 /usr/sbin/cbd /etc/centreon-broker/central-broker.xml
centreo+ 510 0.1 1.2 506592 12328 ? Ssl 2017 136:17 /usr/sbin/cbd /etc/centreon-broker/central-rrd.xml
Le premier processus concernera toutes la partie gestion des pollers vers le Central et l'insertion des données en base et le deuxième processus concernera la gestion des RRD (graphique de performance).
Ce mécanisme n'a évidemment pas de garde-fou, si un processus s'arrête, il ne redémarre pas automatiquement.
Et le watchdog fut créé…
Donc depuis la version 2.8.x, Centreon-broker est équipé d'un système type chien de garde (watchdog) pour démarrer et surveiller les processus cbd. Lors du démarrage du service cbd, un programme cbwd se lance et lit la configuration d'un fichier /etc/centreon-broker/watchdog.xml. Nous verrons ultérieurement comment celui-ci se créer.
Le programme cbwd lit le fichier et lance les deux instances cbd. Une trace des actions est mémorisée dans le fichier de log /var/log/centreon-broker/watchdog.log.
Le programme cbwd lit le fichier et lance les deux instances cbd. Une trace des actions est mémorisée dans le fichier de log /var/log/centreon-broker/watchdog.log.
Pour visualiser les processus cbd, lancez cette commande :
ps aux | grep "cb[wd|d]"
vous devriez avoir ce résultat
496 11242 0.0 0.0 237492 812 ? Sl 2017 0:00 /usr/sbin/cbwd /etc/centreon-broker/watchdog.xml
496 11245 1.3 0.7 947400 7500 ? Sl 2017 846:16 /usr/sbin/cbd /etc/centreon-broker/central-broker.xml
496 11246 0.3 0.2 561848 2580 ? Sl 2017 229:12 /usr/sbin/cbd /etc/centreon-broker/central-rrd.xml
Le premier processus est le watchdog. les deux processus suivants sont les processus centreon-broker.
Vérification du watchdog
Maintenant, nous allons nous mettre dans la peau de l'administrateur fou ;) Nous allons killer (tuer un processus) le central-broker-master.
kill -9 11245
Le watchdog cbwd va détecter l'arrêt du processus central-broker-master comme le montre le fichier de log.
[1516806533] error: watchdog: process 'central-broker-master' terminated unexpectedly, restarting it in 1 seconds
[1516806534] info: watchdog: starting process 'central-broker-master'
[1516806534] info: watchdog: process 'central-broker-master' started (PID 27036)
Et automatiquement, cbwd va redémarrer le processus central-broker-master. On peut vérifier de nouveau les processus, le central-broker-master change de PID.
ps aux | grep cb
496 11242 0.0 0.1 237492 1372 ? Sl 2017 0:00 /usr/sbin/cbwd /etc/centreon-broker/watchdog.xml
496 11246 0.3 0.4 561848 4100 ? Sl 2017 229:12 /usr/sbin/cbd /etc/centreon-broker/central-rrd.xml
496 27036 3.5 1.2 926708 12660 ? Sl 16:08 0:00 /usr/sbin/cbd /etc/centreon-broker/central-broker.xml
Génération du fichier watchdog.xml
Maintenant, voyons comment ce fichier est-il créé ? Ce fichier est créé lors de la génération de la configuration. Vous trouverez une copie de ce fichier dans le dossier dédié à la génération de la configuration broker : /usr/share/centreon/filesGeneration/broker/. Le paramètre "Link to cbd service" va créer une entrée dans le fichier de configuration pour lier la configuration broker à un processus cbd. Ce système permet une grande souplesse d'utilisation du watchdog.
Vous avez découvert un aperçu de cet outil bien utile pour le fonctionnement optimal du broker.