{{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