Vous êtes ici:

Menu

centreontrapd et systemd, suite et fin...

debian
Nous terminons la série systemd avec le service centreontrapd. 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. Cette mise au point de centreontrapd me permettra de vous proposer rapidement un dépôt Debian Jessie pour Centreon.
Le service centreontrapd gère les alertes des traps SNMP avec Centreon. Cette modification exige, de votre part, un minimum de compréhension du fonctionnement de Centreon et des traps SNMP.

Le service centreontrapd


Ce service est utilisé sur un serveur standalone Centreon, par exemple. Si vous installez ce service sur Debian Jessie avec l'installation de Centreon, celui-ci 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 centreontrapd
● centreontrapd.service - LSB: Start daemon centreontrapd at boot
Loaded: loaded (/etc/init.d/centreontrapd)
Active: active (running) since mar. 2015-08-25 17:16:36 CEST; 13h ago
Main PID: 742 (centreontrapd)
CGroup: /system.slice/centreontrapd.service
└─742 /usr/bin/perl /usr/share/centreon/bin/centreontrapd --logfile=/var/log/centreon/centreontrapd.log --severity=error --config=/etc/centreon/conf.pm

Maintenant que nous avons vu que notre service fonctionnait sous Jessie, nous allons nous intéresser à la migration sous systemd.

Désactivation du service


Commençons par arrêter le service et le désactiver.
service centreontrapd stop
update-rc.d centreontrapd remove

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

Création du service centreontrapd


Il nous reste à créer le service centreontrapd dans le dossier /lib/systemd/system. Nous le nommerons centreontrapd.service. Voici le contenu de ce fichier.
[Unit]
Description=Enable service provided CentreonTrapd : Manage SNMP Traps
After=syslog.target network.target
ConditionPathExists=/usr/share/centreon/bin/centreontrapd

[Service]
Type=simple
PIDFile=/var/run/centreon/centreontrapd.pid
EnvironmentFile=/etc/default/centreontrapd
User=centreon
ExecStart=/usr/share/centreon/bin/centreontrapd $OPTIONS
TimeoutSec=0

[Install]
WantedBy=multi-user.target

Comme vous le constatez, j'ai repris le fichier de configuration /etc/default/centreontrapd grâce à la variable EnvironmentFile. Il reste à faire prendre en compte ce service à systemd et le rendre automatique au démarrage.
systemctl daemon-reload
systemctl enable centreontrapd.service

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

Prise en compte du service centreontrapd 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 et cbd un stratagème pour duper le programme. Créons un script centreontrapd_init dans le dossier /usr/share/centreon/bin. Attention, ne nommez pas votre script centreontrapd sous peine de supprimer le script de Centreon.
#!/bin/sh

/bin/systemctl $1 centreontrapd.service

Le script lancera la bonne ligne de commande avec les paramètres start ou reload appropriés. Maintenant, modifions le fichier de configuration de sudo avec la commande visudo
# Centreontrapd restart
CENTREON ALL = NOPASSWD: /usr/share/centreon/bin/centreontrapd_init restart
# Centreontrapd reload
CENTREON ALL = NOPASSWD: /usr/share/centreon/bin/centreontrapd_init reload

Prise en compte du script centreontrapd_init par Centreon


Nous terminerons par la modification des paramètres dans l'interface web Centreon UI. Sélectionnez Configuration / Centreon et modifier chaque poller concerné comme ci-dessous.

script_centreontrapd_init

On modifiera le paramètre suivant

Centreontrapd init script path	/usr/share/centreon/bin/centtreontrapd_init

Sauvegardez et appliquez la configuration.

Finalisation


Terminons par la vérification du fonctionnement du service. Tout d'abord, on démarre le service.
systemctl start centreontrapd.service

Puis on vérifie si celui-ci est démarré.
systemctl status centreontrapd.service
● centreontrapd.service - Enable service provided CentreonTrapd : Manage SNMP Traps
Loaded: loaded (/lib/systemd/system/centreontrapd.service; enabled)
Active: active (running) since mer. 2015-08-26 07:16:43 CEST; 43s ago
Main PID: 22206 (centreontrapd)
CGroup: /system.slice/centreontrapd.service
└─22206 /usr/bin/perl /usr/share/centreon/bin/centreontrapd --logfile=/var/log/centreon/centreontrapd.log --severity=error --config=/etc/centreon/conf.pm

Ainsi se termine les modifications de Centreon avec systemd. Ceci va me permettre de vous proposer les packages Debian 8 pour Centreon.

blog comments powered by Disqus
 Vous êtes ici: