![Stacks Image 36558](files/stacks-image-6509942.png)
Ce le mode à privilégier pour la supervision d'un serveur Windows.
1 Activation du module CheckSystem
Si vous avez suivi le tutoriel précédent L'agent NSClient ++, après l'installation de l'agent NSClient sur le serveur Windows., vous pouvez tester la connectivité mais aucune commande comme cet exemple ci-dessous :
[root@centreon1910 plugins]# /usr/lib/nagios/plugins/check_centreon_nrpe3 -H 192.168.1.22 -c check_uptime Unknown command(s): check_uptime
Si vous regardez le fichier de configuration nsclient.ini situé dans le dossier c:\Program Files\NSClient++, dans la section [/modules], aucun module n'est activé.
; in flight - TODO [/settings/default] ; Undocumented key password = monitoring ; Undocumented key allowed hosts = 127.0.0.1,192.168.1.250,192.168.1.99 ; in flight - TODO [/settings/NRPE/server] ; Undocumented key verify mode = none ; Undocumented key insecure = true ; in flight - TODO [/modules] ; Undocumented key CheckExternalScripts = disabled ; Undocumented key CheckHelpers = disabled ; Undocumented key CheckEventLog = disabled ; Undocumented key CheckNSCP = disabled ; Undocumented key CheckDisk = disabled ; Undocumented key CheckSystem = disabled ; Undocumented key NRPEServer = enabled
Nous allons commencer par activer le module CheckSystem. Mettre la valeur enabled à CheckSystem soit en éditant le fichier soit en ligne de commande comme ci-dessous.
nscp settings --path /modules --key "CheckSystem" --set "enabled"
N'oubliez pas de redémarrer le service. Vous avez plusieurs modes de supervision que vous pouvez tester sans paramètres. Voici la liste, entre parenthèses le nom Legacy. Seul le service check_pdh exige des paramètres, nous ne le traitons pas ici.
-
check_cpu (checkcpu)
- Vérification de la charge cpu, moyenne sur 5 minutes, 1 minutes et 5 secondes. Les valeurs par défaut sont Warning 80 % et Critical 90 %
/usr/lib/nagios/plugins/check_centreon_nrpe3 -H 192.168.1.22 -c check_cpu
OK: CPU load is ok.|'total 5m'=0%;80;90 'total 1m'=0%;80;90 'total 5s'=0%;80;90 -
check_memory (checkmem)
- Vérification de la mémoire libre et utilisée
/usr/lib/nagios/plugins/check_centreon_nrpe3 -H 192.168.1.22 -c check_memory
OK: committed = 1.092GB, physical = 1.181GB|'committed'=1.09206GB;4.29964;4.8371;0;5.37456 'committed %'=20%;80;90;0;100 'physical'=1.18132GB;3.19964;3.5996;0;3.99956 'physical %'=30%;80;90;0;100 -
check_network
- Superviser les interfaces réseaux
/usr/lib/nagios/plugins/check_centreon_nrpe3 -H 192.168.1.22 -c check_network
: Intel(R) PRO/1000 MT Desktop Adapter #2 >0 <0 bps, Intel(R) PRO/1000 MT Desktop Adapter >0 <0 bps|'Intel(R) PRO/1000 MT Desktop Adapter #2_total'=0;10000;100000 'Intel(R) PRO/1000 MT Desktop Adapter_total'=0;10000;100000
Autre exemple/usr/lib/nagios/plugins/check_centreon_nrpe3 -H 192.168.1.175 -c check_network
: Realtek PCIe GBE Family Controller >0 <0 bps|'Realtek PCIe GBE Family Controller_total'=0;10000;100000 -
check_os_version
- Vérifie la version Windows.
/usr/lib/nagios/plugins/check_centreon_nrpe3 -H 192.168.1.22 -c check_os_version
OK: Windows Server 2016 (10.0.14393)|'version'=100;50;50
autre résultat/usr/lib/nagios/plugins/check_centreon_nrpe3 -H 192.168.1.175 -c check_os_version
OK: Windows 2008R2 (6.1.7601)|'version'=61;50;50 -
check_pagefile
- Superviser la taille du fichier d'échange Windows
OK: \??\C:\pagefile.sys 29.801MB (1.375GB), total 29.801MB (1.375GB)|'\??\C:\pagefile.sys'=0.0291GB;0.82499;1.09999;0;1.375 '\??\C:\pagefile.sys %'=2%;60;80;0;100 'total'=0.0291GB;0.82499;1.09999;0;1.375 'total %'=2%;60;80;0;100
-
check_process (checkprocstate)
- Ce mode lister les processus Windows
/usr/lib/nagios/plugins/check_centreon_nrpe3 -H 192.168.1.22 -c check_process
OK: all processes are ok.|'winlogon.exe state'=1;0;0 'lsass.exe state'=1;0;0 'svchost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'dwm.exe state'=1;0;0 'svchost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'VBoxService.exe state'=1;0;0 'svchost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'spoolsv.exe state'=1;0;0 'svchost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'snmp.exe state'=1;0;0 'svchost.exe state'=1;0;0 'wlms.exe state'=1;0;0 'msdtc.exe state'=1;0;0 'svchost.exe state'=1;0;0 'MpCmdRun.exe state'=1;0;0 'RuntimeBroker.exe state'=1;0;0 'sihost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'taskhostw.exe state'=1;0;0 'Explorer.EXE state'=1;0;0 'ShellExperienceHost.exe state'=1;0;0 'SearchUI.exe state'=1;0;0 'VBoxTray.exe state'=1;0;0 'cmd.exe state'=1;0;0 'conhost.exe state'=1;0;0 'ApplicationFrameHost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'fontdrvhost.exe state'=1;0;0 'winlogon.exe state'=1;0;0 'LogonUI.exe state'=1;0;0 'dwm.ex
Vous remarquerez que le résultat est tronqué, nous verrons l'explication plus loin -
check_service (checkservicestate)
- Ce mode liste les services. Par défaut, vous afficher les services stoppés (compris les services automatique ayant un démarrage différé ou par seuil)
/usr/lib/nagios/plugins/check_centreon_nrpe3 -H 192.168.1.22 -c check_service
CRITICAL: RemoteRegistry=stopped (auto), WbioSrvc=stopped (auto), delayed (MapsBroker=stopped (delayed), sppsvc=stopped (delayed)) -
check_uptime (checkuptime)
- Vérifie le temp depuis le dernier redémarrage. Les valeurs par défaut sont seuil warning < 2 jours, critique < 1 jour
Exemple d'un serveur qui a redémarré depuis quelques heures./usr/lib/nagios/plugins/check_centreon_nrpe3 -H 192.168.1.22 -c check_uptime
CRITICAL: uptime: 05:40h, boot: 2019-12-17 10:57:40 (UTC)|'uptime'=20426s;172800;86400
Exemple d'un serveur qui fonctionne depuis quelques mois./usr/lib/nagios/plugins/check_centreon_nrpe3 -H 192.168.1.175 -c check_uptime
OK: uptime: 22w 1d 04:1h, boot: 2019-07-15 12:31:05 (UTC)|'uptime'=13406501s;172800;86400
2 Modification du buffer (Payload)
Si vous avez lu le paragraphe précédent sur l'explication du mode check_process, je vous explique que le résultat est tronqué. En fait, l'agent NSClient++ et le client NRPE ont un buffer de données limité à 1ko. Il est possible d'augmenter celui à 8ko, la limite du moteur de supervision Centreon (voir le guidelines Nagios). Pour cela, il faut procéder au paramètrage de l'agent et du client. Commençons par l'agent NSClient++ en modifiant son fichier de configuration. Dans la section [/settings/NRPE/server], ajoutez la ligne suivante
payload length = 8192
ou en ligne de commande
nscp settings --path /settings/NRPE/server --key "payload length" --set "8192"
L'avantage de la ligne de commande est l'ajout automatique d'un commentaire pour l'option. N'oubliez pas de redémarrez l'agent après chaque modification. Testons avec le client en ajoutant le paramètre adéquat pour obtenir le résultat suivant.
/usr/lib/nagios/plugins/check_centreon_nrpe3 -2 -P 8192 -H 192.168.1.22 -c check_process OK: all processes are ok.|'winlogon.exe state'=1;0;0 'lsass.exe state'=1;0;0 'svchost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'dwm.exe state'=1;0;0 'svchost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'VBoxService.exe state'=1;0;0 'svchost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'spoolsv.exe state'=1;0;0 'svchost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'snmp.exe state'=1;0;0 'svchost.exe state'=1;0;0 'wlms.exe state'=1;0;0 'msdtc.exe state'=1;0;0 'svchost.exe state'=1;0;0 'MpCmdRun.exe state'=1;0;0 'RuntimeBroker.exe state'=1;0;0 'sihost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'taskhostw.exe state'=1;0;0 'Explorer.EXE state'=1;0;0 'ShellExperienceHost.exe state'=1;0;0 'SearchUI.exe state'=1;0;0 'VBoxTray.exe state'=1;0;0 'cmd.exe state'=1;0;0 'conhost.exe state'=1;0;0 'ApplicationFrameHost.exe state'=1;0;0 'svchost.exe state'=1;0;0 'fontdrvhost.exe state'=1;0;0 'winlogon.exe state'=1;0;0 'LogonUI.exe state'=1;0;0 'dwm.exe state'=1;0;0 'rdpclip.exe state'=1;0;0 'rdpinput.EXE state'=1;0;0 'TabTip.exe state'=1;0;0 'TabTip32.exe state'=1;0;0 'notepad++.exe state'=1;0;0 'cmd.exe state'=1;0;0 'conhost.exe state'=1;0;0 'wmiprvse.exe state'=1;0;0 'wmiprvse.exe state'=1;0;0 'wmiprvse.exe state'=1;0;0 'ServerManager.exe state'=1;0;0 'mmc.exe state'=1;0;0 'nscp.exe state'=1;0;0 'count'=51;0;0
Si vous comparez ce résultat avec le résultat précédent dans la liste des check, vous constatez le plus grand nombre d'informations grâce à l'augmentation du buffer. Vous pouvez obtenir ce même résultat avec le client version 2 comme ceci.
/usr/lib/nagios/plugins/check_centreon_nrpe -m 8192 -H 192.168.1.22 -c check_process
Pour information, les messages d'erreurs à cause d'un mauvais paramètrage de buffer.
Payload à 8192 sur l'agent NSClient++
/usr/lib/nagios/plugins/check_centreon_nrpe -H 192.168.1.22 -c check_process CHECK_NRPE: Socket timeout after 10 seconds. /usr/lib/nagios/plugins/check_centreon_nrpe3 -H 192.168.1.22 -c check_process CHECK_NRPE STATE CRITICAL: Socket timeout after 10 seconds.Payload à 2048 sur l'agent NSClient++
/usr/lib/nagios/plugins/check_centreon_nrpe -m 8192 -H 192.168.1.22 -c check_process CHECK_NRPE: Response packet had invalid CRC32. /usr/lib/nagios/plugins/check_centreon_nrpe3 -2 -P 8192 -H 192.168.1.22 -c check_process CHECK_NRPE: Receive underflow - only 2050 bytes received (4 expected).
3 Activation des arguments
Maintenant que nous avons un agent NSClient++ fonctionnel, nous allons améliorer la supervision de notre serveur Windows en ajustant les modes avec des seuils. Par exemple, pour le mode cpu, nous ajoutons les paramètres suivants.
/usr/lib/nagios/plugins/check_centreon_nrpe3 -2 -P 8192 -H 192.168.1.22 -c check_cpu -a "warn=load > 60" "crit=load > 70" Exception processing request: Request contained arguments (not currently allowed, check the allow arguments option).
Nous avons un magnifique message d'erreur nous indiquant que les arguments ne sont pas autorisés. Nous devons activer cette option pour l'agent NSClient++. Ajoutons la commande suivante dans la section [/settings/NRPE/server]
allow arguments = true
Mais cela ne suffit pas, car les arguments contiennent des caractères spéciaux, comme le montre le message suivant.
/usr/lib/nagios/plugins/check_centreon_nrpe3 -2 -P 8192 -H 192.168.1.22 -c check_cpu -a "warn=load > 60" "crit=load > 70" Exception processing request: Request command contained illegal metachars!
Rajoutons la ligne suivante, toujours dans la section [/settings/NRPE/server]
allow nasty characters = true
Vous pouvez utilisez ces lignes de commande pour effectuer les opérations précédentes.
nscp settings --path /settings/NRPE/server --key "allow arguments" --set true nscp settings --path /settings/NRPE/server --key "allow nasty characters" --set true net stop nscp net start nscp
Votre commande fonctionnera avec les arguments.
/usr/lib/nagios/plugins/check_centreon_nrpe3 -2 -P 8192 -H 192.168.1.22 -c check_cpu -a "warn=load > 60" "crit=load > 70" OK: CPU load is ok.|'total 5m'=0%;60;70 'total 1m'=2%;60;70 'total 5s'=0%;60;70
4 Gestion des logs
Il est toujours instructif d'avoir des traces de fonctionnement d'un programmes. Par défaut, le fichier de log nsclient.log se créé dans le dossier de l'application lorsqu'il y a une erreur comme l'appel à un mode inexistant par exemple.
![Stacks Image 36703](files/stacks-image-fd527fa-800x98.jpg)
Ce logs indique un mode check_cpue inexistant. A ma connaissance, il existe quatre options pour les fichiers de log :
level : niveau de verbosité de log du moins verbeux au plus verbeux : error, warning, info, debug, trace
date format : modification de l'affichage date/heure
file name : emplacement du fichier de log
max size : Taille max du fichier de log en octets pour effectuer une rotation de log
Nous allons créer notre fichier de log dans le dossier log se trouvant dans le dossier de l'application avec un niveau info et un format de date JJ-MM-AAAA hh:mm:ss
level : niveau de verbosité de log du moins verbeux au plus verbeux : error, warning, info, debug, trace
date format : modification de l'affichage date/heure
file name : emplacement du fichier de log
max size : Taille max du fichier de log en octets pour effectuer une rotation de log
Nous allons créer notre fichier de log dans le dossier log se trouvant dans le dossier de l'application avec un niveau info et un format de date JJ-MM-AAAA hh:mm:ss
nscp settings --path /settings/log --key "level" --set "info" nscp settings --path /settings/log --key "date format" --set "%d-%m-%Y %H:%M:%S" nscp settings --path /settings/log --key "file name" --set "${exe-path}/log/nsclient.log" nscp settings --path /settings/log/file --key "max file" --set 2048000 net stop nscp net start nscp
Le dossier est automatiquement créé à la première écriture dans le fichier de log. Voici la configuration dans le fichier nsclient.ini
; LOG SECTION - Configure log properties. [/settings/log] ; LOG LEVEL - Log level to use. Available levels are error,warning,info,debug,trace level = info ; DATEMASK - The size of the buffer to use when getting messages this affects the speed and maximum size of messages you can recieve. date format = %d-%m-%Y %H:%M:%S ; FILENAME - The file to write log data to. Set this to none to disable log to file. file name = ${exe-path}/log/nsclient.log [/settings/log/file] ; Undocumented key max file = 2048000
4 Gestion des certificats
Sujet difficile à traiter, la gestion des certificats pour améliorer le chiffrement du flux entre le client NRPE et l'agent NSCLient++. Après avoir surfé sur la toile sur de nombreux articles sur le sujet, je suis arrivé à vous proposer cette solution. Il existe certainement d'autre solution.
4.1 Création du certificat
Je suis parti de la documentation Nagios pour créer un certificat auto-signé. Commençons par choisir l'emplacement du certificat et quelques ajustements
mkdir -p -m 750 /etc/centreon/certificat chown root.centreon-engine /etc/centreon/certificat cd /etc/centreon/certificat mkdir -m 750 ca centreon_server_certs client_certs chown root.centreon-engine ca chown root.centreon-engine centreon_server_certs client_certs touch /etc/pki/CA/index.txt echo '1000' > /etc/pki/CA/serial
Créons le certificat d'autorité
cd /etc/centreon/certificat/ca/ openssl req -x509 -newkey rsa:4096 -keyout ca_key.pem -out ca_cert.pem -utf8 -days 3650
Saisir un mot de passe, garder-le en lieu sûr. Il sera nécessaire pour la création des autres certificats.
Generating a 4096 bit RSA private key .............................++ ....................................++ writing new private key to 'ca_key.pem' Enter PEM pass phrase: Verifying - Enter PEM pass phrase: -----
Saisir vos informations en vous inspirant de mon exemple.
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:FR State or Province Name (full name) []:Sarthe Locality Name (eg, city) [Default City]:Le Mans Organization Name (eg, company) [Default Company Ltd]:Duchmol Organizational Unit Name (eg, section) []:Demo Common Name (eg, your name or your server's hostname) []:CA Email Address []:email@domain.local
Nous continuons avec le certificat du client NRPE
cd /etc/centreon/certificat/client_certs openssl req -new -newkey rsa:2048 -keyout client_cert.key -out client_cert.csr -nodes
Ne saisissez pas de mot de passe.
Generating a 2048 bit RSA private key ....................................+++ ..................................................+++ writing new private key to 'client_cert.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:FR State or Province Name (full name) []:Sarthe Locality Name (eg, city) [Default City]:Le Mans Organization Name (eg, company) [Default Company Ltd]:Duchmol Organizational Unit Name (eg, section) []:Demo Common Name (eg, your name or your server's hostname) []:NRPE_client Email Address []:email@domain.local Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Signez votre certificat avec le certificat d'autorité
cd /etc/centreon/certificat/ openssl ca -days 365 -notext -md sha256 -keyfile ca/ca_key.pem -cert ca/ca_cert.pem -in client_certs/client_cert.csr -out client_certs/client_cert.pem
Nous avons besoin du mot de passe défini précédemment. Acceptez la signature.
Using configuration from /etc/pki/tls/openssl.cnf Enter pass phrase for ca/ca_key.pem: Check that the request matches the signature Signature ok Certificate Details: Serial Number: 4097 (0x1001) Validity Not Before: Dec 20 08:27:29 2019 GMT Not After : Dec 19 08:27:29 2020 GMT Subject: countryName = FR stateOrProvinceName = Sarthe organizationName = Duchmol organizationalUnitName = Demo commonName = NRPE_client emailAddress = email@domain.local X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: D4:1D:77:2F:32:66:16:95:40:80:83:07:5C:1D:F8:99:8D:11:AE:6E X509v3 Authority Key Identifier: keyid:9F:66:FF:D9:B6:6B:A8:26:C6:5C:32:C8:4C:AF:06:5D:ED:4F:B7:C3 Certificate is to be certified until Dec 19 08:27:29 2020 GMT (365 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
Finalement, nous avons trois fichiers qui nous serviront à l'établissement de la connexion.
ls -lR .: total 0 drwxr-x--- 2 root centreon-engine 43 20 déc. 09:07 ca drwxr-x--- 2 root centreon-engine 6 20 déc. 09:04 centreon_server_certs drwxr-x--- 2 root centreon-engine 75 20 déc. 09:27 client_certs ./ca: total 8 -rw-r--r-- 1 root root 2086 20 déc. 09:07 ca_cert.pem -rw-r--r-- 1 root root 3406 20 déc. 09:07 ca_key.pem ./centreon_server_certs: total 0 ./client_certs: total 12 -rw-r--r-- 1 root root 1054 20 déc. 09:23 client_cert.csr -rw-r--r-- 1 root root 1704 20 déc. 09:23 client_cert.key -rw-r--r-- 1 root root 1773 20 déc. 09:27 client_cert.pem
Récupérez les fichiers ca_cert.pem, client_cert.key et client_cert.pem et les copiez dans le serveur Windows dans le dossier C:\Program Files\NSClient++\security
![Stacks Image 36787](files/stacks-image-cd353f7.jpg)
4.2 Configuration de l'Agent NSClient++
Il est temps de configurer votre agent NSClient++ pour n'accepter que le certificat que nous avons créé. Ajoutez les commandes suivantes :
nscp settings --path /settings/NRPE/server --key "verify mode" --set "peer-cert" nscp settings --path /settings/NRPE/server --key "insecure" --set false nscp settings --path /settings/NRPE/server --key "certificate" --set "${certificate-path}/client_cert.pem" nscp settings --path /settings/NRPE/server --key "ca" --set "${certificate-path}/ca_cert.pem" nscp settings --path /settings/NRPE/server --key "certificate key" --set "${certificate-path}/client_cert.key" nscp settings --path /settings/NRPE/server --key "allowed ciphers" --set "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH" nscp settings --path /settings/NRPE/server --key "ssl options" --set "no-sslv2,no-sslv3" nscp settings --path /settings/NRPE/server --key "dh" --set none net stop nscp net start nscp
Vous obtenez la modification du fichier ci-dessous
[/settings/NRPE/server] ; VERIFY MODE - Comma separated list of verification flags to set on the SSL socket. none The server will not send a client certificate request to the client, so the client will not send a certificate. peer The server sends a client certificate request to the client and the certificate returned (if any) is checked. fail-if-no-cert if the client did not return a certificate, the TLS/SSL handshake is immediately terminated. This flag must be used together with peer. peer-cert Alias for peer and fail-if-no-cert. workarounds Various bug workarounds. single Always create a new key when using tmp_dh parameters. client-once Only request a client certificate on the initial TLS/SSL handshake. This flag must be used together with verify-peer verify mode = peer-cert ; ALLOW INSECURE CHIPHERS and ENCRYPTION - Only enable this if you are using legacy check_nrpe client. insecure = false ; SSL CERTIFICATE - certificate = ${certificate-path}/client_cert.pem ; CA - ca = ${certificate-path}/ca_cert.pem ; SSL CERTIFICATE - certificate key = ${certificate-path}/client_cert.key ; ALLOWED CIPHERS - The chipers which are allowed to be used. The default here will differ is used in "insecure" mode or not. check_nrpe uses a very old chipers and should preferably not be used. For details of chipers please see the OPEN ssl documentation: https://www.openssl.org/docs/apps/ciphers.html allowed ciphers = ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH ; VERIFY MODE - Comma separated list of verification flags to set on the SSL socket. default-workarounds Various workarounds for what I understand to be broken ssl implementations no-sslv2 Do not use the SSLv2 protocol. no-sslv3 Do not use the SSLv3 protocol. no-tlsv1 Do not use the TLSv1 protocol. single-dh-use Always create a new key when using temporary/ephemeral DH parameters. This option must be used to prevent small subgroup attacks, when the DH parameters were not generated using "strong" primes (e.g. when using DSA-parameters). ssl options = no-sslv2,no-sslv3 ; DH KEY - dh = none ; in flight - TODO
Pour vous connecter à l'agent en tant que centreon-engine, utilisez cette ligne de commande
-bash-4.2$ /usr/lib/nagios/plugins/check_centreon_nrpe3 -A /etc/centreon/certificat/ca/ca_cert.pem -C /etc/centreon/certificat/client_certs/client_cert.pem -K /etc/centreon/certificat/client_certs/client_cert.key -2 -P 8192 -H 192.168.1.22 I (0.5.2.35 2018-01-28) seem to be doing fine...
Vérifions que notre agent NSClient++ n'accepte que les connexions avec certificat
-bash-4.2$ /usr/lib/nagios/plugins/check_centreon_nrpe3 -2 -P 8192 -H 192.168.1.22 CHECK_NRPE: Error - Could not connect to 192.168.1.22. Check system logs on 192.168.1.22
Et si nous utilisons un certificat différent
-bash-4.2$ /usr/lib/nagios/plugins/check_centreon_nrpe3 -A /root/ssl/ca/ca_cert.pem -C /root/ssl/client_certs/client_cert.pem -K /root/ssl/client_certs/client_cert.key -2 -P 8192 -H 192.168.1.22 CHECK_NRPE: (ssl_err != 5) Error - Could not complete SSL handshake with 192.168.1.22: 1
4.3 Intégration dans Centreon
Il nous reste a finaliser l'intégration dans Centreon en utilisant les modèles d'hôtes et de services. Commençons par la commande de vérification.
![Stacks Image 36816](files/stacks-image-04597cc-800x298.png)
Nom : check-os-windows-nrpe-cpu commande : $USER1$/$_HOSTNRPECLIENT$ -H $HOSTADDRESS$ -p $_HOSTNRPEPORT$ -t $_HOSTNRPETIMEOUT$ -A $_HOSTCA-CERT$ -C $_HOSTCLIENT-CERT$ -K $_HOSTKEY-FILE$ $_HOSTNRPEOPTIONS$ -c check_cpu -a "warning=$_SERVICEWARNING$" "critical=$_SERVICECRITICAL$" $_SERVICEOPTIONS$
Ensuite nous allons créer le modèle d'hôte htpl_os_windows_nrpe basé sur le modèle générique.
![Stacks Image 36732](files/stacks-image-b2bfcdd-800x536.png)
Liste des macros
NRPECLIENT : check_centreon_nrpe3 NRPEPORT : 5666 NRPETIMEOUT : 30 CA-CERT : /etc/centreon/certificat/ca/ca_cert.pem CLIENT-CERT : /etc/centreon/certificat/client_certs/client_cert.pem KEY-FILE : /etc/centreon/certificat/client_certs/client_cert.key NRPEOPTIONS : -2 -P 8192
![Stacks Image 36850](files/stacks-image-2782cd4-40x38.png)
Il est possible d'ajouter les arguments pour les certificats dans la macro EXTRAOPTIONS du modèle OS-Windows-NSClient-05-NRPE-custom
![plugin-pack-nrpe](files/plugin-pack-nrpe.jpg)
Modifiez les macros suivantes
NRPECLIENT : check_centreon_nrpe3
NRPEEXTRAOPTIONS : -u -2 -P 8192 -A /etc/centreon/certificat/ca/ca_cert.pem -C /etc/centreon/certificat/client_certs/client_cert.pem -K /etc/centreon/certificat/client_certs/client_cert.key
Nous terminerons par le modèle de service stpl_windows_nrpe_cpu basé sur le service générique.
![Stacks Image 36830](files/stacks-image-9efc48a-800x382.png)
Ne pas oublier la relation avec le template d'hôte.
![Stacks Image 36837](files/stacks-image-4ad5bb6-800x310.png)
Il reste à créer l'hôte.
![Stacks Image 36840](files/stacks-image-4d30135-800x586.png)
Et le superviser
![Stacks Image 36845](files/stacks-image-80372c8-800x108.png)
Dans l'état actuel du paramétrage, nous n'avons pas de données de performances, nous verrons dans un prochain article les bons arguments à mettre en place. Un script permettant de vérifier la date d'expiration se trouve sur cette page le plugin check_cert.sh.