Sections
Lancer des contrĂ´les distants via ssh
Une des fonctionalités intéressante de Nagios est de pouvoir lancer des contrôles distants sans installer d'agent.
Cela permet, dans le cadre d'un installation domotique, par exemple, de garder beaucoup de souplesse dans le déploiement, et de ne pas consommer de la mémoire sur les serveurs distants (raspberry ou autres).
Pour lancer des contrôles via ssh, il faut générer une clé ssh depuis le serveur Nagios.
su - nagios
Puis lancer la commande:
ssh-keygen
Puis de se rendre dans le répertoire dans lequel la clé a été générée
cd ~/.ssh
Puis lancer la copie de la clé sur le serveur que l'on veut superviser:
ssh-copy-id -i ~/.ssh/id_rsa.pub nagios@client_IP
Deux options s'offrent à vous.
- La méthode traditionnelle, qui consiste à créer un compte nagios sur chaque serveur à superviser, et d'installer le package nagios-plugins, afin de pouvoir lancer les scripts de supervision sur le serveur distant
- Modifier la commande check_by_ssh, pour spécifier le nom d'utilisateur et le port de connexion ssh, afin d'utiliser un compte utilisateur standard pour superviser. Il vous faudra alors copier les quelques scripts shell ou perl utilisés par Nagios, ou ceux que l'on peut trouver sur le site nagiosexchange et les déposer dans un répertoire sur le serveur distant. L'avantage de cette méthode étant plus de souplesse de supervision.
La méthode traditionnelle
Pour utiliser la méthode traditionnelle, c'est simple, il vous suffit d'utiliser le plugin check_by_ssh inclus de base dans les plugins nagios (via le package nagios-plugins).
Méthode via la modification de la déclaration du plugin check_by_ssh
Pour utiliser la seconde méthode, vous allez devoir créer une commande spécifique.
Pour cela, il faut ajouter la déclaration de la commande dans le fichier commands.cfg:
# 'check_by_ssh' command definition define command{ command_name check_by_ssh command_line $USER1$/check_by_ssh -H $HOSTADDRESS$ -l "$ARG1$" -p "$ARG2$" -C "$ARG3$" }
Puis dans le fichier de configuration de votre serveur, il faut ajouter la ligne:
define service{ use generic-service host_name domoticz service_description Load: Current check_command check_by_ssh!pi!22!/home/pi/Scripts/bin/nagios_check_cpu.sh -w 70 -c 80 check_interval 15 retry_interval 5 }
Via cette méthode, on ajoute deux paramètres au check, qui sont le nom d'utilisateur, et le port de connexion.