Surveiller vos serveurs Linux avec Nagios et NRPE
Suite à l'introduction sur les greffons Nagios, voici une simple procédure pour mettre en place le monitoring de serveurs sous Linux (voir ce billet pour des serveurs BSD ou Mac OS X) à partir de Nagios en utilisant le plugin NRPE.

Sur votre serveur Nagios...
... il faut installer le plugin NRPE. Pour cela, le plus simple est de faire confiance à votre gestionnaire de paquets.
Sous Fedora, la commande suivante devrait suffire:
# sudo yum install nagios-plugins-nrpe
Sous Ubuntu/Debian:
# sudo apt-get install nagios-nrpe-plugin
Il faut également vérifier que la définition du plugin est bien présente dans le fichier de configuration des commandes (commands.cfg):
...
######
# NRPE
####### 'check_nrpe' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
...
Sur votre serveur Linux à surveiller...
La procédure est un peu plus longue. Il faut d'abord installer le daemon NRPE et les plugins Nagios (qui vont être lancés localement par le daemon NRPE):
Sous Fedora:
# sudo yum install nrpe
# sudo yum install nagios-plugins-all
Sous Ubuntu/Debien:
# sudo apt-get install nagios-nrpe-server
# sudo apt-get install nagios-plugins
Puis éditer le fichier /etc/nagios/nrpe.cfg pour modifier la ligne suivante:
...
allowed_hosts = Mettre ici l'adresse IP de votre serveur Nagios
...
On automatise le lancement du daemon au démarrage du serveur avec la commande:
# chkconfig --add nrpe
On ajoute une règle pour autoriser le Firewall IPtable à laisser passer les requêtes NRPE (à adapter selon vos règles):
# iptables -I RH-Firewall-1-INPUT 10 -p tcp --dport 5666 -j ACCEPT
Attention il faut mettre deux - (- -) avant l'option dport
Il ne reste plus qu'à lancer le daemon:
Sous Fedora:
# service nrpe start
Sous Ubuntu/Debien:
# /etc/init.d/nagios-nrpe-server start
On teste la communication...
Pour tester que la communication entre le serveur Nagios et le serveur à surveiller se passe bien, il suffit de se rendre dans le répertoire des plugins (/usr/lib/nagios/plugins) de Nagios et de tester le plugin NRPE:
# ./check_nrpe -H Adresse_IP_du_serveur_Linux
NRPE v2.7
Si tout est OK, cette commande devrait renvoyer la version du daemon NRPE.
Vous pouvez tester directement les plugins avec la commande suivante (exemple donnée pour un check de la charge):
# ./check_nrpe -H Adresse_IP_du_serveur_Linux -c check_load
On configure Nagios...
La dernière étape consiste à modifier les fichiers de configuration de Nagios pour intégrer le monitoring du/des serveur Linux. Il faut dans un premier temps éditer votre fichier de configuration des hosts (hosts.cfg par défaut) et y ajouter votre machine Linux:
define host {
use generic-host
host_name linus
alias Ma machine Linux
address 192.168.0.7
}
Puis ajouter les services offerts par NRPE (dans le fichier services.cfg), quelques exemples:
# Charge CPU
define service{
use generic-service
host_name remotehost
service_description CPU Load
check_command check_nrpe!check_load
}# Memoire
define service{
use generic-service
host_name remotehost
service_description Memory
check_command check_nrpe!check_mem
}
Pour ajouter des nouveaux plugins executable par NRPE, il faut éditer le fichier /etc/nagios/nrpe.cfg et ajouter une ligne par service:
...
command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /dev/hda
...
Ne pas oublier de relancer le daemon quand on change le fichier de configuration (nrpe.cfg):
# service nrpe restart
Il est bien entendu possible d'écrire son propre plugin Nagios et de le faire exécuter par NRPE.







Twitter:
Rss:
Commentaires (de mes chers lecteurs):
Petite coquille, il s’agit de nrpe.cfg et non de nrpe.conf
@Mr Xhark: Corrigé ! thx
Bonjour,
j’ai suivi le tuto pour l’installation de NRPE, impeccable, merci.
Par contre, juste un petit souci pour le lancement automatique du daemon.
Lorsque je tape “# chkconfig –add nrpe”, j’obtient :
nrpe unknown service
Merci
Si vous êtes sous Ubuntu ou Debian, il faut faire un “chkconfig –add nagios-nrpe-server”.
Il faut toujours se baser sur le script installé dans le “/etc/init.d” lors de l’installation par “apt-get”.
salut
je pourrais savoir la syntaxe du fichier services.cfg et merci
Bonjour,
Je voudrais savoir s’il était possible d’installer les plugins centreon en stand alone sur ma machine NRPE car je souhaiterais utiliser le plugin check_centreon_snmp_remote_storage.
J’ai essayé de le copier à partir de la machine centreon vers la machine NRPE dans le dossier /usr/lib/nagios/plugins mais j’ai le retour suivant:
Unable to read output.
Merci d’avance pour votre aide et à Nico pour ses tutoriels très bien faits.
Salut Nico,
j’ai installé nagios et centreon sur ma machine mais maintenant je voudrais que Nagios détecte toutes les machines présentes sur le réseaux, je suis dans une entreprise de plus de 200 pcs donc taper tous les Define host à la main ça serait trop long, aurait tu une idée de comment je peux faire, sachant que NSClient est installé sur toutes les machines.
Merci d’avance.
@Julien: le plus simple est de faire un script perl qui va scanner ton réseau avec des ping et générer la conf nagions. Tu dois pouvoir en trouver sur le net.
Sous Debian, il ne s’agit pas de commands.cfg mais de /etc/nagios-plugins/config/check_nrpe.cfg
Et son contenu est le suivant : # 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_1arg
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
J’ai installé Nagios en suivant tes tutos sur Ubuntu 10.10, j’ai installé NRPE coté serveur Nagios et client CentOS et la comandes check_load me retourne “code 127 :plugin may be missing” dans l’interface web.
Hors la commande “./check_nrpe -H Adresse_IP_du_serveur_CentOS” me retourne bien “NRPE v2.12″ et la commande “./check_nrpe -H Adresse_IP_du_serveur_CentOS -c check_load” me retourne “OK…”
Aurais-tu une idée ? Aurais-je loupé un détail ?
Merci
Bon en cherchant un peu j’ai finalement trouvé une solution, je en sais pas si c’est normal mais l’install des plugins via yum install ne se fait pas dans le même répertoire que l’install de Nagios décrite sur ton tuto, donc j’ai 2 dossiers de plugins :
“/usr/local/nagios/libexec” : reconnus par l’interface web
“/usr/lib/nagios/plugins” : executables uniquement à la mano…
Donc j’ai copié celui qui me manquant (check_nrpe) dans /usr/local/nagios/libexec/ et maintenant ça fonctionne nikel !
J’ai du coup également récupéré le script perl “check_memory.pl” (d’ailleurs ils ont changé l’url du coup ton lien n’est plus bon) installé Nagios::plugin sur le client et modifié le script pour qu’il retourne la mémoire totale et utilisée contre seulement la mémoire libre de base
bonjour ,
quand je fais :
# iptables -I RH-Firewall-1-INPUT 10 -p tcp –dport 5666 -j ACCEPT
un message d’erreur : iptables: no chain/target/match by that name
je ne comprend pas cette erreur
merci
try it :
# iptables -I INPUT 10 -p tcp –dport 5666 -j ACCEPT
Pour ma part j’avais un “CHECK_NRPE: Error – Could not complete SSL handshake.” qui a été résolu par allowed_hosts=IP_NAGIOS_SERVER,127.0.0.1
(je n’avais pas mis 127.0.0.1)
HTH
bonjour ,
s.v.p , j’ai un petit pblm !
lorsque je met au niveau de fichier de configuration de nagios3 :
define host {
use generic-host
..
address xx.xx.xx.xx
}
ça marche ,mais lorsque je met :
define host {
use linux-server
..
address xx.xx.xx.xx
} il n’est pas connue par nagios sachant que j’ai essayé d’installer nrpe