centreontrapd et systemd, suite et fin...
25/08/15 17:06 Classé dans: Techniques
![debian](debian.jpg)
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.
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