Vous êtes ici:

Menu

Adaptation du service cbd à systemd

debian
La série continue avec le service Centreon-Broker se nommant cbd. Pour ceux qui prennent le train en marche, je rappelle l'objectif, la migration des services SysV associé à Centreon par des services systemd nouvellement installé sur Debian Jessie. Je vous rappelle qu'il est fortement déconseillé d'effectuer la migration sur votre supervision de production avant d'avoir effectué tous les vérifications nécessaires.
Mais comme vous êtes sysadmin, vous connaissez les risques du métier Winking Nous allons continuer par la migration du service cbd. Ce service a la particularité, en mode standalone, de lancer deux daemons. Le premier est le service principal Centreon-Broker qui fait la liaison entre les pollers et l'interface Web tout en alimentant la base de données, le deuxième est le service Centreon-RRD permettant le traitement des données de performances. Cette migration exige, de votre part, un minimum de compréhension du fonctionnement de Centreon-Broker.

Le service cbd


Le service cbd a la particularité de lancer deux daemons en s'appuyant sur le fichier /etc/centreon-broker/master.run, de plus celui-ci doit être piloté par l'application Centreon via sudo. Lors de l'installation avec les binaires de Centreon sur votre distribution Debian Jessie, ce service sera de type init SysV. Le script sera copié dans /etc/init.d, Debian Jessie assurant la compatibilité avec init SysV, votre service sera complètement fonctionnel. En voici la preuve :
systemctl status cbd
● cbd.service - LSB: Start daemon cbd at boot
Loaded: loaded (/etc/init.d/cbd)
Active: active (running) since sam. 2015-07-11 10:07:13 CEST; 29s ago
Process: 10192 ExecStart=/etc/init.d/cbd start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/cbd.service
─10209 /usr/sbin/cbd /etc/centreon-broker/central-broker.xml
└─10222 /usr/sbin/cbd /etc/centreon-broker/central-rrd.xml

juil. 11 10:07:13 debian8 cbd[10192]: Starting cbd_central-broker: cbd.
juil. 11 10:07:13 debian8 cbd[10192]: Starting cbd_central-rrd: cbd.

On remarque les deux processus associés au service cbd. Maintenant que nous avons vu que notre service fonctionnait sous Jessie, nous allons nous intéresser à la migration sous systemd.

Création des services pour Centreon-Broker


Afin de minimiser le temps d'indisponibilité du serveur, nous avons créer en premier les deux services de centreon-broker dans le dossier /lib/systemd/system. Nous nommerons le premier service cbd_central-broker.service. Voici le contenu de ce fichier.
[Unit]
Description=Start and stop Centreon Broker
After=syslog.target network.target
ConditionPathExists=/usr/sbin/cbd

[Service]
Type=simple
PIDFile=/var/run/cbd_central-broker.pid
User=centreon-broker
ExecStart=/usr/sbin/cbd /etc/centreon-broker/central-broker.xml
ExecReload=/bin/kill -HUP $MAINPID
TimeoutSec=30

[Install]
WantedBy=multi-user.target

Et le deuxième service cbd_central-rrd.service
[Unit]
Description=Start and stop Centreon Broker rrd
After=syslog.target network.target
ConditionPathExists=/usr/sbin/cbd

[Service]
Type=simple
PIDFile=/var/run/cbd_central-rrd.pid
User=centreon-broker
ExecStart=/usr/sbin/cbd /etc/centreon-broker/central-rrd.xml
ExecReload=/bin/kill -HUP $MAINPID
TimeoutSec=30

[Install]
WantedBy=multi-user.target

Prise en compte des services broker par Centreon


Nous allons maintenant adapter le fichier de configuration de sudo pour permettre la prise en compte des changements de la configuration Centreon. Comme nous ne pouvons pas utiliser les commandes de systemd, ce qui nous obligerait à modifier le code source de l'interface UI de Centreon, nous utiliserons comme pour centengine un stratagème pour duper le programme. Créons un script cbd dans le dossier /usr/share/centreon/bin
#!/bin/sh

/bin/systemctl $1 cbd_central-broker.service
/bin/systemctl $1 cbd_central-rrd.service

Le script lancera les deux services avec les paramètres start ou reload appropriés. Maintenant, modifions le fichier de configuration de sudo avec la commande visudo
# Broker engine Restart
CENTREON ALL = NOPASSWD: /usr/share/centreon/bin/cbd restart
# Broker engine reload
CENTREON ALL = NOPASSWD: /usr/share/centreon/bin/cbd reload

Désactivation du service


Maintenant il faut effectuer l'interruption de service. Commençons par arrêter le service cbd et le désactiver.
service cbd stop
update-rc.d cbd remove

Cela ne suffit pas, comme nous avons la compatibilité avec systemd, supprimons le fichier /etc/init.d/cbd. Il ne faut pas oublier les changements à systemd.
rm /etc/init.d/cbd
systemctl daemon-reload

Les deux nouveaux services sont pris en charge grâce à la commande précédente. Il faut les rendre automatique au démarrage.
systemctl enable cbd_central-broker.service

La commande renvoie le résultat suivant.
Created symlink from /etc/systemd/system/multi-user.target.wants/cbd_central-broker.service to /lib/systemd/system/cbd_central-broker.service.

Faites de même pour le deuxième service.
systemctl enable cbd_central-rrd.service

Prise en compte du script cbd par Centreon


Nous terminerons par la modification des paramètres dans l'interface web Centreon UI. Sélectionnez Administration / Options / Monitoring et modifiez le paramètre Start script for broker daemon comme ci-dessous.

cbd_systemd01

On modifiera le paramètre suivant

Start script for broker daemon /usr/share/centreon/bin/cbd

Sauvegardez et appliquez la configuration.

Finalisation


Terminons par la vérification du fonctionnement du service. Tout d'abord, on démarre les services.
systemctl start cbd_central-broker.service
systemctl start cbd_central-rrd.service

Puis on vérifie si ceux-ci sont démarrés.
systemctl status cbd_central-broker.service
● cbd_central-broker.service - Start and stop Centreon Broker
Loaded: loaded (/lib/systemd/system/cbd_central-broker.service; enabled)
Active: active (running) since ven. 2015-07-10 07:47:06 CEST; 15s ago
Main PID: 7133 (cbd)
CGroup: /system.slice/cbd_central-broker.service
└─7133 /usr/sbin/cbd /etc/centreon-broker/central-broker.xml

juil. 10 07:47:07 debian8 cbd[7133]: [1436507227] config: log applier: applying 1 logging objects

systemctl status cbd_central-rrd.service
● cbd_central-rrd.service - Start and stop Centreon Broker rrd
Loaded: loaded (/lib/systemd/system/cbd_central-rrd.service; enabled)
Active: active (running) since ven. 2015-07-10 07:50:25 CEST; 9s ago
Main PID: 7249 (cbd)
CGroup: /system.slice/cbd_central-rrd.service
└─7249 /usr/sbin/cbd /etc/centreon-broker/central-rrd.xml

juil. 10 07:50:25 debian8 cbd[7249]: [1436507425] config: log applier: applying 1 logging objects


Il sera intéressant vérifier le bon fonctionnement des deux services en utilisant l'interface Web et l'option reload.

cbd_systemd02

Et voilà nos services centreon-broker opérationnels avec Debian Jessie et systemd. Il reste le dernier service centreontrapd, suite au prochain épisode Happy

blog comments powered by Disqus
 Vous êtes ici: