Nagios – Création de checks personnalisés¶
Objectif¶
Mettre en place des checks personnalisés dans Nagios4 pour superviser des services ou des commandes spécifiques, en particulier via SSH quand aucun agent n’est installé.
Méthodes disponibles¶
- Plugins Nagios natifs (dans
/usr/lib/nagios/plugins/) check_ping,check_http,check_ssh, etc.-
Utilisation simple, peu personnalisable.
-
NRPE (Nagios Remote Plugin Executor)
- Exécute des plugins à distance.
-
Nécessite l’installation de
nagios-nrpe-servercôté client. -
Check via SSH
- Pas besoin d’agent.
- On utilise
check_by_sshpour lancer une commande distante. - Plus flexible mais un peu plus lourd en ressources.
Exemple : Check via SSH¶
Prérequis¶
- SSH sans mot de passe entre
nagios@nagios4(LXC 210) et l’hôte supervisé :
Définition d’un check Nagios¶
1. Commande¶
Fichier : /etc/nagios4/commands.cfg
define command{
command_name check_load_ssh
command_line /usr/lib/nagios/plugins/check_by_ssh -H $HOSTADDRESS$ -l nagios -C "/usr/lib/nagios/plugins/check_load -w 5,4,3 -c 10,6,4"
}
Ici :
$HOSTADDRESS$= IP de la machine superviséenagios= user distantcheck_load= plugin déjà présent sur l’hôte distant
2. Service¶
Fichier : /etc/nagios4/conf.d/services.cfg
define service{
use generic-service
host_name nextcloud
service_description Charge CPU (via SSH)
check_command check_load_ssh
}
Exemple : Check d’un process via SSH¶
define command{
command_name check_nginx_ssh
command_line /usr/lib/nagios/plugins/check_by_ssh -H $HOSTADDRESS$ -l nagios -C "pgrep -x nginx >/dev/null && echo OK || echo CRITICAL"
}
Service :
define service{
use generic-service
host_name webserver
service_description Process Nginx
check_command check_nginx_ssh
}
Bonnes pratiques¶
- Créer un utilisateur nagios dédié sur chaque hôte supervisé.
- Restreindre les droits SSH (
/etc/ssh/sshd_config) →AllowUsers nagios. - Ne pas donner
sudosauf si nécessaire. - Grouper tes commandes dans
/etc/nagios4/commands.d/pour plus de clarté. - Tester manuellement avant d’ajouter dans Nagios :