{{tag>sysadmin nagios monitoring supervision linux ssh}} ====== Nagios: Superviser via ssh des hôtes sous Gnu/Linux ====== Pour superviser des hôtes sous GNU/LINUX via ssh: * Créer un utilisateur nagios sur l'hôte à superviser; * Configurer une authentification ssh par clés; * Installer/copier les plugins Nagios sur l’hôte à superviser; Créer l'utilisateur nagios sur le système à superviser. Nous allons définir un mot de passe temporaire qui sera utilisé seulement le temps de copier la clé publique. On désactivera se mode de d'authentification par la suite: useradd --create-home nagios passwd nagios Pour pouvoir lire les métriques du système distant ou exécuter les scripts, le serveur Nagios doit s'authentifier auprès de l’hôte cible via l'utilisateur nagios et une paire de clés dédiées. Sur le serveur nagios Si l'utilisateur nagios exécutant le service ne possède pas de home: # générer le home utilisateur pour un utilisateur préexistant sudo mkhomedir_helper nagios Exécuter un shell en tant que nagios et générer une paire de clés: su - nagios cd /home/nagios mkdir .ssh cd .ssh ssh-keygen -t rsa -b 4096 -C nagios@mairie.local -f id_nagios_rsa Une fois la clé générée, on copie la clé publique sur l’hôte à superviser: ssh-copy-id -i id_nagios_rsa.pub nagios@hote-a-superviser.lan De nouveau sur l’hôte à superviser, on désactive l'authentification par mot de passe pour ssh en modifiant le fichier de configuration du service sshd **/etc/ssh/sshd_config** Match User nagios PasswordAuthentication no On teste la connexion par clés, si tout se passe bien on désactive l'authentification localement par mot de passe: usermod -L nagios ===== Test de la commande ===== Sur le serveur de supervision, tester la connexion SSH à l’hôte à surveiller en lançant directement la commande **check_by_ssh** par la suite le service Nagios: su - nagios cd /usr/lib/nagios/plugins ./check_by_ssh -l nagios -i /home/nagios/.ssh/id_nagios_rsa -H hostname.domain -C "uptime" Pour que les plugins soient disponibles sur l' hôte à superviser, deux possibilités: * Utiliser les paquets fournis par la distribution * Compiler les source Ici on installe les plugins à partir des paquets de la distribution: sudo apt-get install nagios-plugins Les scripts sont installés sur l’hôte à superviser dans le dossier **/usr/lib/nagios/plugins/**. Ils devront être appelés par le serveur de supervision: Le wiki Dans l'exemple ci-dessous, le serveur de supervision, sous le compte utilisateur nagios se connecte en ssh sur l’hôte à superviser et exécute le script distant **check_disk**: su - nagios cd /usr/lib/nagios/plugins ./check_by_ssh -l nagios -i /home/nagios/.ssh/id_nagios_rsa -H hostname.domain -C "/usr/lib/nagios/plugins/check_disk -w 10% -c 5% -p / -m" Créer une nouvelle commande dans le fichier de définition de vos commandes pour le serveur Nagios **/usr/local/nagios/etc/objects/commands**: define command{ command_name linux_check_disk_by_ssh command_line /usr/lib/nagios/plugins/check_by_ssh -l nagios -i /home/nagios/.ssh/id_nagios_rsa -H $HOSTADDRESS$ -C "/usrlib/nagios/plugins/check_disk $ARG1$" } La commande attend un argument (**$ARG1$**) qui sera spécifié lors de la définition du service a tester. On l'utilise dans la définition d'un service a tester ===== Références ===== * https://kifarunix.com/monitor-linux-hosts-using-nagios-check_by_ssh-plugin/ * https://www.monitoring-plugins.org/doc/man/check_disk.html