Lenny, Nagios 3 et NRPE 2
Aujourd’hui on va jouer au petit Nicolas et on va s’amuser à surveiller nos chères machines et surtout l’état de leurs services.
Au menu:
Du Nagios 3 très tendre, du NRPE 2 à point le tout servi sur un lit de Lenny.
Passons à table donc, comme à mon habitude je vais partir du principe que vous possédez une Debian (ici Lenny) fraichement installée.
Coté serveur:
Commençons donc par l’entrée et mettons en place le service Nagios et les dépendances qui vont bien:
# apt-get install nagios3
Ce qui devrait vous donner un bon gros plat d’un peu moins de 100Mo de paquets.
Aucun problème pour l’installation donc, une seule chose à faire, créer l’utilisateur nagiosadmin (qui possède le droit sur les cgi par défaut):
# cd /etc/nagios3 && htpasswd -c htpasswd.users nagiosadmin
Vous devriez pouvoir accéder à Nagios via http://ip.du.serveur/nagios3/ et tomber sur cette page:
Si vous vous rendez dans la section “service détail” vous pouvez constater que la configuration par défaut nous permet d’avoir notre machine (localhost) et la passerelle déjà pré-configurée.
Jusque la tout va bien, compliquons un peu l’affaire avec l’installation de NRPE coté serveur mais avant tout rappelons que NRPE est un plugin pour Nagios qui permet d’exécuter des check Nagios (en utilisant les plugins Nagios) sur des machines Unix/BSD*/Linux/OSx, un simple agent NRPE sur la machine cliente et le support NRPE coté serveur suffisent !
Bien entendu certains viendront me dire qu’il existe le check_by_ssh mais l’opération est bien plus lourde pour le serveur, d’ou l’utilisation de NRPE (qui passe par du SSL au passage).
Donc, revenons en à notre serveur et passons à l’installation du plugin NRPE:
# apt-get install nagios-nrpe-plugin
C’est maintenant que je devrais vous parler des fichiers de configuration…
Soyons fou:
Rendez vous dans /etc/nagios3 vous y trouverez les fichiers:
- commands.cfg : Qui permet d’ajouter/retirer de “nouvelles commandes”, nécessaire à certains plugins (comme NRPE fut un temps)
- nagios.cfg : Qui est le fichier de configuration principal et global de nagios, vous pourrez parametré un peu tout (les limites de temps par défaut, le formatage des dates, l’emplacement des logs, ce qui doit etre log ou non etc etc)
Rendez vous ensuite dans /etc/nagios3/conf.d et appréciez:
- contacts_nagios2.cfg : Assez explicite, c’est ici que vous définissez vos contact et groupes de contact (nécessaires aux alertes donc)
- extinfo_nagios2.cfg : Ici vous pouvez donner plus d’informations (notes, icônes, vrml, …) à vos host et groupes d’host.
- generic-host_nagios2.cfg : Un simple exemple de fichier host
- generic-service_nagios2.cfg : Un simple exemple de fichier service
- host-gateway_nagios3.cfg : C’est ici qu’on défini les routeurs (ou toute machine qui ne peut répondre qu’aux ping)
- hostgroups_nagios2.cfg : La c’est pour la définition des groupes machines
- localhost_nagios2.cfg : Fichier host/service de notre machine, donné plus à titre d’exemple qu’autre chose
- services_nagios2.cfg : Définition des services et attribution aux différents groupes de services et machines
- timeperiods_nagios2.cfg : Tout ce qui est fonctionnement dans le temps de nagios, c’est ici.
J’ai aussi personnellement rajouté un fichier de configuration spécialement créé pour séparer les services nagios des check nrpe (nrpeservices_nagios2.cfg) et un fichier hosts (hosts_nagios2.cfg, j’ai d’ailleurs trouvé étonnant de ne pas en trouver un par défaut) contenant les machines à monitorer:
# touch nrpeservices_nagios2.cfg hosts_nagios2.cfg
Je crois que nous avons fait le tour des fichiers de configuration, comme vous pouvez le constater, c’est en apparence bien complexe (on est loin des Web GUI fournies par Centreon) mais finalement très simple d’utilisation.
Coté client:
Passons au client !
# apt-get install nagios-nrpe-server
Puis éditez le fichier /etc/nagios/nrpe.cfg et éditez en particulier la ligne allowed_hosts= et mettez y l’adresse ip du serveur nagios.
allowed_hosts=192.168.1.183
Je vous invite à survoler le fichier, quelques options sont intéressantes (comme le fait de pouvoir bind NRPE à une seule interface).
De plus vous retrouverez en fin de fichier les commandes NRPE exécutables sur la machine et leur lien avec les commandes nagios, c’est ici qu’il faudra rajouter des commandes pour pouvoir les exécuter sur la machine cliente par défaut on retrouve la charge cpu, les utilisateurs connectés, l’occupation du disque, le nombre total de processus et de processus zombies.
Enfin démarrons le service:
# /etc/init.d/nagios-nrpe-server start
C’est tout pour la machine cliente (!).
Coté serveur:
Revenons sur le serveur et voyons si notre agent NRPE répond correctement à nos appels enflammés:
# /usr/lib/nagios/plugins/check_nrpe -H 192.168.1.174
NRPE v2.8.1
Tout va bien donc, passons un check histoire d’être certain:
# /usr/lib/nagios/plugins/check_nrpe -H 192.168.1.174 -c check_total_procs
PROCS OK: 61 processes
Assurez vous de bien avoir les lib ssl sur la machine faute de quoi vous aurez droit à une belle erreur, vous pouvez aussi argumenter avec -n afin de passer en clair et donc de ne pas utiliser SSL.
Bon maintenant que notre client est prêt à nous accueillir, revenons en à la configuration de Nagios.
Il vous faudra tout d’abord éditer le fichier qui contient la définition de la commande check_nrpe (/etc/nagios-plugins/config/check_nrpe.cfg) en effet la commande de base inclue 2 arguments alors que nous allons en utiliser (pour des configurations simples) qu’un seul.
Vous devriez avoir quelque chose comme ça après votre edit:
# this command runs a program $ARG1$ with arguments $ARG2$
#define command {
# command_name check_nrpe
# command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$
#}
#
# this command runs a program $ARG1$ with no arguments
define command {
command_name check_nrpe
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
N’oubliez pas de redémarrer Nagios:
# /etc/init.d/nagios3 restart
Nous allons maintenant ajouter quelques machines et gateway, voici donc quelques exemples de configurations (basiques) qui vous donneront quelque chose comme:
Commençons par la passerelle “DSLAM” (/etc/nagios3/conf.d/host-gateway_nagios3.cfg):
# a host definition for the gateway of the default route
define host {
host_name gateway
alias Default Gateway
address 192.168.1.1
use generic-host
}define host {
host_name DSLAM
alias DSLAM
parents gateway
address 90.9.15.1
use generic-host
}
Je pense qu’il n’y a rien à expliquer, petite précision la notion de parent permet, entre autre, d’organiser la status map, toujours avec le même exemple:
De la logique simple donc.
Ajoutons maintenant 2 nouveaux hosts à notre configuration, ca se passe dans /etc/nagios3/conf.d/hosts_nagios2.cfg:
define host {
use generic-host
host_name monitored
alias Monitored
address 192.168.1.174
}define host {
use generic-host
host_name srv1.fatrasie.com
alias srv1.fatrasie.com
address 91.121.181.91
parents DSLAM
}
Encore une fois, c’est assez explicite.
Maintenant ajoutons quelques services à monitorer sur ces machines, ouvre le fichier /etc/nagios3/conf.d/hostgroups_nagios2.cfg et ajoutez vos machines dans chaque groupe voulus (exemple non complet):
# A simple wildcard hostgroup
define hostgroup {
hostgroup_name all
alias All Servers
members *
}# A list of your Debian GNU/Linux servers
define hostgroup {
hostgroup_name debian-servers
alias Debian GNU/Linux Servers
members localhost, monitored, srv1.fatrasie.com
}# A list of your web servers
define hostgroup {
hostgroup_name http-servers
alias HTTP servers
members localhost, monitored, srv1.fatrasie.com
}
Vous pouvez créer de nouveaux services grâce au fichier services_nagios2.cfg mais ce n’est pas le sujet du post, je vous invite donc à lire la documentation de Nagios (voir fin de post).
Enfin nous allons créer des services nrpe et y ajouter des machines (ou hostgroup, mais je n’ai pas prit le temps d’en créer):
# Charge CPU
define service{
use generic-service
host_name monitored
service_description CPU Load
check_command check_nrpe!check_load
}# Utilisateurs
define service{
use generic-service
host_name monitored
service_description Current Users
check_command check_nrpe!check_users
}# Disques durs
define service{
use generic-service
host_name monitored
service_description Disk Space
check_command check_nrpe!check_hda1
}# Total processes
define service{
use generic-service
host_name monitored
service_description Total processes
check_command check_nrpe!check_total_procs
}
Voila, redémarrez le service nagios3 et roulez jeunesse.
Pour aller bien plus loin:
- Documentation officielle Nagios (Disponible en HTML/PDF)
- Le blog de NicoLargo (quelques post sympa sur Nagios, attention il compile généralement à partir des sources il vous faudra un peu d’adaptation pour appliquer à une Debian ou autre)
- Nagios-FR (Qui représente la communauté francophone de nagios et qui possède entre autre de bonnes traductions des documentations de nagios2 pour les anglophobes)
Et bien entendu votre meilleur ami reste Google.
En cas de problèmes avec ce post n’hésitez pas à poster vos questions en commentaire.
A bon entendeur !
Commentaires
4 Reponses à “Lenny, Nagios 3 et NRPE 2”
Laisser un commentaire




Très sympa ce petit tuto, merci!
Tu n’aurais pas oublier l’installation du plugin nagios sur le serveur NRPE?
# apt-get install nagios-nrpe-plugin
Pas que je sache
Un problème ?
Attention tout de même, en effet le nom des paquets peut être trompeur:
* nagios-nrpe-plugin correspond au plugin à installer sur votre serveur nagios.
* nagios-nrpe-server correspond au daemon nrpe à installer sur la machine à surveiller.