--- categories: monitoring title: Howto NRPE --- * Documentation : * Statut de cette page : test / bookworm NRPE (Nagios Remote PluginExecutor) permet d'exécuter de façon légère des commandes prédéfinies sur un serveur distant. Historiquement il est utilisé par NAGIOS pour des « checks » sur un serveur distant. Il peut également être utilisé par [Icinga](HowtoIcinga). Il supporte SSL/TLS ce qui permet d'avoir un minimum de sécurité. ## Installation ~~~ # apt install nagios-nrpe-server monitoring-plugins monitoring-plugins-basic monitoring-plugins-common monitoring-plugins-standard nagios-plugins-contrib $ /usr/sbin/nrpe --version NRPE - Nagios Remote Plugin Executor Version: 4.1.0 # systemctl status nagios-nrpe-server ● nagios-nrpe-server.service - Nagios Remote Plugin Executor Loaded: loaded (/lib/systemd/system/nagios-nrpe-server.service; enabled; preset: enabled) Active: active (running) since Fri 2023-07-28 15:55:54 CEST; 3 days ago Docs: http://www.nagios.org/documentation Main PID: 549 (nrpe) Tasks: 1 (limit: 2356) Memory: 1.7M CPU: 15ms CGroup: /system.slice/nagios-nrpe-server.service └─549 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -f ~~~ ## Configuration Nous utilisons le fichier `/etc/nagios/nrpe.d/evolix.cfg` pour surcharger la configuration par défaut. `/etc/nagios/nrpe.d/evolix.cfg` : ~~~ # Allowed IPs allowed_hosts=192.0.2.42,192.0.2.43 # System checks command[check_load]=/usr/lib/nagios/plugins/check_load --percpu --warning=0.7,0.6,0.5 --critical=0.9,0.8,0.7 command[check_swap]=/usr/lib/nagios/plugins/check_swap -a -w 30% -c 20% command[check_disk1]=/usr/lib/nagios/plugins/check_disk -e -w 10% -c 3% -W 10% -K 3% -C -w 5% -c 2% -W 5% -K 2% -p /home -x /lib/init/rw -x /dev -x /dev/shm -x /run -I '^/run/' -I '^/sys/' command[check_zombie_procs]=sudo /usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z command[check_total_procs]=sudo /usr/lib/nagios/plugins/check_procs -w 400 -c 600 command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10 # Generic services checks command[check_smtp]=/usr/lib/nagios/plugins/check_smtp -H localhost command[check_dns]=/usr/lib/nagios/plugins/check_dns -H evolix.net command[check_ntp]=/usr/lib/nagios/plugins/check_ntp -H ntp.evolix.net command[check_ssh]=/usr/lib/nagios/plugins/check_ssh localhost command[check_mailq]=/usr/lib/nagios/plugins/check_mailq -M postfix -w 10 -c 20 # Specific services checks command[check_pgsql]=/usr/lib/nagios/plugins/check_pgsql -H localhost -l nrpe -p 'PASSWORD' command[check_mysql]=/usr/lib/nagios/plugins/check_mysql -H localhost -f ~nagios/.my.cnf ... ~~~ > *Note* : dans des versions précédentes de Debian, il n'était pas vraiment possible de surcharger la configuration : des options en double provoquait une activation aléatoire d'une option ou d'une autre ! ## Principe Le principe est qu'un démon écoute sur le port TCP/5666 et qu'on peut ainsi exécuter une commande distante définie dans la configuration. ~~~ /usr/lib/nagios/plugins/check_nrpe -H 192.0.2.42 -c check_load OK - load average: 0.01, 0.01, 0.01|load1=0.012;0.700;0.900;0; load5=0.010;0.600;0.800;0; load15=0.010;0.500;0.700;0; ~~~ > *Note* : il faut savoir que le `check_load` lance simplement la commande définie dans la configuration. Cela peut-être un check, mais aussi n'importe quelle commande ou script de son choix ! ## checks Même si ce n'est pas directement lié à NRPE, listons quelques checks intéressants. ### check_load Vu l'utilisation massive de plusieurs CPUs, il est très intéressant d'utiliser l'option `--percpu` qui permet au check de s'adapter tout seul au nombre de CPUs : ~~~ $ /usr/lib/nagios/plugins/check_load --percpu --warning=0.7,0.6,0.5 --critical=0.9,0.8,0.7 ~~~ ### check_disk Plusieurs options sont intéressantes : * `-e` : check toutes les partitions mais en cas d'erreur, n'affiche que les partitions qui sont en erreur (WARN, CRIT ou UNKN) * `-x /run` : ignore une partition * `-I '^/run/' : ignore les partitions selon un pattern * `-C -w 5% -c 2% -W 5% -K 2% -p /home` : donne des seuils d'alertes différents pour une partition ### check_http Plusieurs options sont intéressantes : * `-S -H example.com -C 15,5` : vérifie que la validité d'un certificat SSL/TLS est inférieure à 15 jours (WARN) ou 5 jours (CRIT)