Installer l'outil de supervision distante NRPE sur Debian
Si vous utilisez Nagios pour superviser vos serveur, il est intéressant de mettre en place la supervision distante via NRPE pour vérifier la charge globale de chaque serveur.
Ce guide a été testé sur :
- Debian 5.0 Lenny
- Debian 6.0 Squeeze
- Debian 7.0 Wheezy
Prérequis
Ce guide nécessite:
- un serveur Nagios, tel que décrit par Installer Nagios sur Debian.
Paramètres
Renseignez l'adresse IP du serveur Nagios
NAGIOS_IP="xx.xx.xx.xx"
Installation
Préparation de l'environnement
Installez les plugins Nagios et le serveur NRPE :
command apt-get install nagios-plugins-basic nagios-nrpe-server
Désactivez les vérifications par défaut :
command sed -i -e 's/^command\[/#&/' '/etc/nagios/nrpe.cfg'
Créez le dossier de configuration modulaire :
command mkdir --parent '/etc/nagios/nrpe.d/'
Autorisez le serveur Nagios à interroger ce serveur NRPE :
echo "allowed_hosts=${NAGIOS_IP}" > '/etc/nagios/nrpe.d/allowed_hosts.cfg'
Configuration minimale
Ajoutez les configurations de vérifications basiques :
echo 'command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10' > '/etc/nagios/nrpe.d/check_users.cfg' echo 'command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20' > '/etc/nagios/nrpe.d/check_load.cfg' echo 'command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z' > '/etc/nagios/nrpe.d/check_zombie_procs.cfg' echo 'command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 250 -c 400 -s RSZDT' > '/etc/nagios/nrpe.d/check_total_procs.cfg' echo 'command[check_swap]=/usr/lib/nagios/plugins/check_swap -a -w 70% -c 50%' > '/etc/nagios/nrpe.d/check_swap.cfg' echo 'command[check_root]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /' > '/etc/nagios/nrpe.d/check_root.cfg' echo 'command[check_apt]=/usr/lib/nagios/plugins/check_apt' > '/etc/nagios/nrpe.d/check_apt.cfg'
Récupérez la liste des partitions de votre système :
PARTITIONS="$(command mount \ | command grep '^/dev' \ | command grep -v 'swap' \ | command grep -v ' / ' \ | command cut --delimiter=' ' --field=3)"
Ajoutez les configurations de vérifications des partitions supplémentaires
for PART in ${PARTITIONS}; do PART_CODE="$(echo "${PART}" | command sed -e 's|^/||' -e 's|/$||' -e 's|/|_|g')" echo "command[check_${PART_CODE}]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p ${PART}" > "/etc/nagios/nrpe.d/check_${PART_CODE}.cfg" done
Redémarrez le démon NRPE :
/etc/init.d/nagios-nrpe-server restart
Configuration du serveur Nagios
Renseignez le nom de l'hôte local (tel qu'il doit apparaître dans l'interface Nagios):
NAGIOS_HOSTNAME="$(command hostname --fqdn)"
Générez les commandes à exécuter sur l'hôte du serveur Nagios :
COMMANDS="command nagios-tools add-host '${NAGIOS_HOSTNAME}'
command nagios-tools add-service '${NAGIOS_HOSTNAME}' 'users' 'nrpe' 'check_users' 'Current Users' command nagios-tools add-service '${NAGIOS_HOSTNAME}' 'loads' 'nrpe' 'check_load' 'Current Load' command nagios-tools add-service '${NAGIOS_HOSTNAME}' 'procs' 'nrpe' 'check_zombie_procs' 'Zombie Processes' command nagios-tools add-service '${NAGIOS_HOSTNAME}' 'procs' 'nrpe' 'check_total_procs' 'Total Processes' command nagios-tools add-service '${NAGIOS_HOSTNAME}' 'swaps' 'nrpe' 'check_swap' 'Swap usage' command nagios-tools add-service '${NAGIOS_HOSTNAME}' 'disks' 'nrpe' 'check_root' 'Root Partition' #command nagios-tools add-service '${NAGIOS_HOSTNAME}' 'upgrades' 'nrpe' 'check_apt' 'Apt upgrades'" for PART in ${PARTITIONS}; do PART_NAME="$(echo "${PART}" | command sed -e 's|^/||' -e 's|/$||')" PART_CODE="$(echo "${PART_NAME}" | command sed -e 's|/|_|g')" COMMANDS="${COMMANDS} command nagios-tools add-service '${NAGIOS_HOSTNAME}' 'disks' 'nrpe' 'check_${PART_CODE}' '${PART_NAME} Partition'" done echo "${COMMANDS}"
Connectez-vous en SSH à l'hôte Nagios et lancez les commandes affichées par le code ci-dessus.
Remarque: Ces commandes utilisent l'outil nagios-tools mis en place par Installer Nagios sur Debian.
Pour aller plus loin
CHECK_NRPE: Error - Could not complete SSL handshake.
Si vous rencontrez cette erreur, vérifiez la valeur de "allowed_hosts" dans les fichiers de configuration de votre serveur NRPE.
Chaîner les serveurs NRPE
Il est possible de chaîner les serveurs NRPE, dans le cas où certains des hôtes surveillés sont inaccessibles directement par le serveur Nagios.
Par exemple dans le cas de DomU Xen: le Dom0 effectue les appels NRPE aux DomU qu'il héberge. Ainsi, pour vérifier l'espace disque de la partition racine du DomU "php5.domain.xen", ajoutez cette ligne à la configuration du serveur NRPE présent sur le Dom0:
command[php5.domain.xen-check_root]=/usr/lib/nagios/plugins/check_nrpe -H php5.domain.xen -c check_root
Ajustez cet exemple avec les commandes NRPE et les noms d'hôtes qui vous conviennent.
Attention : Si vous utilisez ce type de configuration, la valeur "allowed_hosts" sur le DomU "php5.domain.xen" doit correspondre à l'adresse IP du serveur NRPE où est ajoutée la ligne ci-dessus (c.a.d., celle du Dom0).
Remerciements
- Merci à l'auteur de l'article Monitorer les hôtes Linux (Debian) distant avec le serveur NRPE de Nagios.