Nous allons étudier le fonctionnement du plugin apps::nsclient::restapi::plugin. Celui-ci va réaliser une connexion Rest API avec un agent NSClient. Nous verrons comment activer le mode web pour l'agent Linux et l'agent Windows. Ensuite nous passerons à la configuration du plugin Rest API sur un serveur Debian 8.
1 Activation du serveur Web NSClient
1.1 CentOS 7
L'agent NSClient est installé comme indiqué dans cet article chapitre 1. Activons le mode web.
nscp web install --password supervision Enabling WEB from (currently not supported): 172.16.209.80/24 HTTP(s) is enabled using /usr/share/nsclient//security/certificate.pem. Point your browser to https://localhost:8443 Point your browser to http://localhost:8443 Login using:supervision
Pour changer le mot de passe, utilisez cette commande
nscp web password --set monitoring Password updated successfully, please restart nsclient++ for changes to affect.
Redémarrez le service pour prendre en compte la nouvelle configuration.
systemctl restart nsclient.service
1.2 Windows
L'agent NSClient est installé comme indiqué dans cet article chapitre 2. Activons le mode web.
c:\Program Files\NSClient++>nscp web install Enabling WEB from (currently not supported): 127.0.0.1,192.168.0.35,192.168.0.174,192.168.0.174,192.168.0.250 HTTP(s) is enabled using c:\Program Files\NSClient++/security/certificate.pem. Point your browser to https://localhost:8443 Point your browser to http://localhost:8443 Login using:udrtsu0mLbg3cctY
Le mot de passe est celui donné lors de l'installation de l'agent. Pour le changer, lancer cette commande (attention, faire attention aux tirets) :
c:\Program Files\NSClient++>nscp web password -- -set monitoring Password updated successfully, please restart nsclient++ for changes to affect.
Redémarrez le service pour prendre en compte la nouvelle configuration.
net stop nscp net start nscp
2 Test du serveur Web NSClient
Connectez-vous à l'url https://<IP>:8443. Si vous avez des ennuis avec le certificat, lisez cet article : Gérer le certificat NSClient pour l'API Rest
Saisissez le mot de passe défini précédemment.
Sélectionnez le menu Queries
Cliquez par exemple sur check_uptime
Sélectionnez l'onglet Run
Cliquez sur le bouton vert Run pour exécuter le check.
Maintenant, nous allons utiliser le plugin Centreon pour utiliser le Rest API de NSClient.
3 Utilisation du plugin Centreon
Nous utiliserons un serveur Debian 8 avec la dernière version de Centreon. Pour l'installation de Centreon, consultez cette page Full Centreon 2.8.14 en téléchargeant les derniers paquets. Il est important de récupérer la dernière version de Centreon-Plugins. Télécharger le paquet nécessaire au fonctionnement du plugins.
Il est possible de vérifier le fonctionnement du Rest API avec curl. Installez le programme
apt-get install curl
Lancez la commande suivante
curl -k -H 'password: monitoring' 'https://172.16.209.168:8443/query/check_uptime'
Vous devriez avoir ce résulat :
{"header":{"source_id":""},"payload":[{"command":"check_uptime","lines":[{"message":"CRITICAL: uptime: 02:7h, boot: 2018-01-06 05:18:57 (UTC)","perf":[{"alias":"uptime_uptime","int_value":{"critical":86400,"value":7639,"warning":172800}}]}],"result":"CRITICAL"}]}
apt-get install liburi-encode-perl
Vérifions que nous avons la bonne version du plugin en lançant cette commande.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=apps::nsclient::restapi::plugin --mode=query --help | grep SSL_VERIFY_NONE
Le résultat de la commande doit vous retourner cette ligne, vous avez la bonne version du plugin.
--ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE").
3.1 CentOS 7
Supposons que nous avons une machine CentOS à superviser. Elle dispose d'un agent NSClient et est joignable à l'adresse 172.16.209.168. Le mot de passe pour la connexion Rest API est monitoring.
3.1a check_uptime
La première commande que nous utiliserons :
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=apps::nsclient::restapi::plugin --mode=query --legacy-password='monitoring' --hostname=172.16.209.168 --command='check_uptime' --ssl-opt='SSL_verify_mode => SSL_VERIFY_NONE'
La commande retournera le résultat suivant
CRITICAL: uptime: 04:29h, boot: 2018-01-06 05:18:56 (UTC) | 'uptime_uptime'=16163;172800;86400;0;0
3.1b check_memory
Voici une autre utilisation avec check_memory.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=apps::nsclient::restapi::plugin --mode=query --legacy-password='monitoring' --hostname=172.16.209.168 --command='check_memory' --ssl-opt='SSL_verify_mode => SSL_VERIFY_NONE' OK: physical = 1.297GB, cached = 1.238GB, swap = 0B | 'physical'=1.297GB;1.424;1.603;0.000;1.781 'physical %'=73.000%;80.000;90.000;0.000;100.000 'cached'=1.238GB;1.424;1.603;0.000;1.781 'cached %'=70.000%;80.000;90.000;0.000;100.000 'swap'=0.000GB;2.400;2.700;0.000;3.000 'swap %'=0.000%;80.000;90.000;0.000;100.000
3.2 Windows
Nous utiliserons cette fois-ci un serveur Windows ayant pour adresse 192.168.0.175.
3.2a check_drivesize
La première commande que nous utiliserons :
/usr/lib/centreon/plugins# /usr/lib/centreon/plugins/centreon_plugins.pl --plugin=apps::nsclient::restapi::plugin --mode=query --legacy-password='monitoring' --hostname=192.168.0.175 --command='check_drivesize' --ssl-opt='SSL_verify_mode => SSL_VERIFY_NONE'
La commande retournera le résultat suivant
OK All 4 drive(s) are ok | 'D:\ used'=1.444GB;78.047;87.803;0.000;97.559 'D:\ used %'=1.000%;80.000;90.000;0.000;100.000 'C:\ used'=24.389GB;160.346;180.389;0.000;200.433 'C:\ used %'=12.000%;80.000;90.000;0.000;100.000 'E:\ used'=0.000B;0.000;0.000;0.000;0.000 'F:\ used'=0.000B;0.000;0.000;0.000;0.000
3.2b check_cpu
Voici une autre utilisation avec check_cpu.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=apps::nsclient::restapi::plugin --mode=query --legacy-password='monitoring' --hostname=192.168.0.175 --command='check_cpu' --ssl-opt='SSL_verify_mode => SSL_VERIFY_NONE' OK: CPU load is ok. | 'total 5m'=0%;80;90;0;0 'total 1m'=0%;80;90;0;0 'total 5s'=9%;80;90;0;0
Les messages d'erreurs ne sont pas bloquant notre utilisation. C'est terminé pour aujourd'hui, nous verrons plus tard l'intégration de ce plugin dans l'interface de Centreon.