Créer le fichier à exécuter
Vous devez d’abord créer un script exécutable (vbs, exe, bat, etc).
Le script en question doit retourner un des codes suivants :
- 0: OK
- 1: WARNING
- 2: CRITICAL
- 3: UNKNOWN
Le script peut facultativement retourner aussi un message. Comme par exemple, dans un fichier .bat :
echo Erreur critique: raison quelconque
exit 2
Installation de nsclient++
Ensuite, sur le client à monitorer, il faut installer le logiciel nsclient++ que l’on peut trouver à l’adresse suivante :
http://nsclient.org/nscp/downloads
Une fois le téléchargement terminé, lancez l’installateur.
- Dans la fenêtre Choose Setup Type, cliquez sur le bouton Custom
- Dans la fenêtre NSClient++ Configuration
- entrez l’adresse du serveur Nagios dans Allowed hosts: (this is the IP…,
- laissez vide la zone NSClient password…
- cochez toutes les cases Modules to load
Toutes ces informations peuvent être changer plus tard.
Installation du script personnalisée
Une fois nsclient++ installé, copiez votre script dans le répertoire c:\Programmes\NsClient++\script
Configuration de nsclient++
- Ouvrez le fichier C:\Programmes\NSClient++\nsclient.ini dans votre éditeur texte préféré.
- Assurez-vous que le paramètre NRPEServer soit à 1 dans la section [/modules]
- Assurez-vous que le paramètre allowed hosts soit l’adresse de votre serveur Nagios
- Ajoutez la section suivante :
Exemple : check_runnning_process=scripts\check_running_process.bat
- Ajoutez la section suivante :
; COMMAND ARGUMENT PROCESSING – This option determines whether or not the we will allow clients to specify arguments to commands that are executed.
allow arguments = true
; COMMAND ALLOW NASTY META CHARS – This option determines whether or not the we will allow clients to specify nasty (as in |`&><‘”\[]{}) characters in arguments.
allow nasty characters = false
; ALLOWED HOSTS – A comaseparated list of allowed hosts. You can use netmasks (/ syntax) or * to create ranges. parent for this key is found under: /settings/default this is marked as advanced in favour of the parent.
allowed hosts = <adresse_du_server_nagios>/32
; PORT NUMBER – Port to use for NRPE.
port = 5666
Tester le script côté client
- Arrêter le service NSClient++ dans la liste des services.
- Démarrer une invite de commande.
- Rendez-vous dans le répertoire C:\Program Files\NSClient++
- Tapez la commande nscp.exe test
- Après vous avoir affiché un paquet de trucs, la fenêtre vous indique Enter command to inject or exit to terminate…, entrez le nom de la commande que vous avez défini un peu plus haut dans le fichier nsclient.ini
- Tapez exit pour sortir du mode test.
- Ajuster le script en conséquence et recommencez l’opération (si nécessaire).
- Une fois votre commande testée et prête, redémarrez le service NSClient++.
Ouvrir les ports dans le Firewall du client
Pour que le tout fonctionne, vous devez ouvrir les ports 12489 et 5666 en TCP sur dans le Firewall du client (règles NAT)
Appeler le script à partir du serveur Nagios
En SSH, tapez la commande /usr/lib64/nagios/plugins/check_nrpe -H <ip_du_client_nscp> -c <nom_de_la_commande>
En cas de CHECK_NRPE: Socket timeout after 10 seconds, assurez-vous que le service est démarré chez le client et que les ports soient ouverts dans le Firewall.
En cas de CHECK_NRPE: Error – Could not complete SSL handshake, assurez-vous de bien avoir défini l’adresse du serveur Nagios dans le paramètre allowed hosts dans la section [/settings/NRPE/server] dans le fichier nsclient.ini
Il ne vous reste plus qu’à définir le service dans NagiosQL en spécifiant check_nrpe dans Check command * et en spécifiant le <nom_de_la_commande> comme $ARG1$
Sources :
http://nsclient.org/nscp/wiki/guides/nagios/external_scripts