Auteur:


Date:
17/10/2007

Catégories:
Open-source
Reseau

Tags:



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.

66 commentaires/références

    On parle de ce billet (ping back):

    Commentaires (de mes chers lecteurs):


  1. Mr Xhark, le 29/03/2010 (#7827)

    Petite coquille, il s’agit de nrpe.cfg et non de nrpe.conf ;)


  2. NicoLargo, le 29/03/2010 (#7828)

    @Mr Xhark: Corrigé ! thx


  3. Nico, le 16/04/2010 (#7967)

    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


    • TZ, le 4/03/2011 (#11623)

      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”.


  4. simon, le 14/06/2010 (#8400)

    salut
    je pourrais savoir la syntaxe du fichier services.cfg et merci


  5. Mickaël, le 14/06/2010 (#8402)

    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.


  6. julien, le 29/06/2010 (#8500)

    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.


    • NicoLargo, le 29/06/2010 (#8501)

      @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.


  7. Kevin Campion, le 29/12/2010 (#10874)

    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$
    }


  8. okiSeb, le 2/03/2011 (#11610)

    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


    • okiSeb, le 2/03/2011 (#11611)

      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 :)


  9. free, le 11/03/2011 (#11780)

    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


    • ano, le 28/04/2011 (#12150)

      try it :
      # iptables -I INPUT 10 -p tcp –dport 5666 -j ACCEPT


  10. Laurent, le 13/03/2012 (#15276)

    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


  11. amin, le 16/04/2012 (#15545)

    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


Vous avez un compte Twitter ?

Cliquer sur le bouton ci-dessous pour vous enregistrer sur le blog en l'utilisant.

Laisser un message

Les informations saisies resteront privées