J'ai réussi à faire fonctionner la commande check_by_ssh sur nagios (commande qui permet de se connecter sur une machine linux distante et de monitorer 1 ou plusieurs hôtes). Et je voulais vous faire partager mon petit tuto pour ceux qui galère.
Supervision par la commande check_by_ssh :
check_by_ssh
Toutes les commandes ci-dessous se font sous l’utilisateur nagios :
Pour effectuer des check_by_ssh avec Nagios, il faut au préalable procéder à l'échange de clés entre le serveur nagios et l'hôte supervisé.
Sur le serveur nagios, se placer dans le répertoire de départ de Nagios et entrer la commande suivante
cd /usr/local/nagios
mkdir .ssh
ssh-keygen -b 2048 -t rsa ou ssh-keygen -b 1024 -t dsa
le terminal renvoie alors :
Generating public/private rsa key pair.
Enter file in which to save the key (/user/lcoal/nagios/.ssh/id_rsa):
Appuyer trois fois sur entrée pour valider la création de cette double clé publique privée(ne créer pas de passe phrase).
Sur le serveur distant :
- sur la machine distante, installez le paquet nagios-plugins
apt-get install nagios-plugins
- créer l’utilisateur nagios et son répertoire avec la commande suivante :
useradd –d /usr/local/nagios nagios : l’option –d va créer automatiquement le répertoire nagios qui aura pour racine /usr/local/nagios et ayant les droits nagios :
- Créer respectivement les répertoires nagios et libexec dans /usr/local/ et copier les commandes se trouvant /usr/lib/nagios/plugins dans /usr/local/nagios/libexec/
cp /usr/local/nagios/libexec/* /usr/local/nagios/libexec/
Attribuer récursivement l’user et le group nagios au répertoire /usr/local/ avec la commande suivante
chown –R nagios:nagios /usr/local/
Créer un mot de passe pour cet utilisateur en tapant la commande :
passwd nagios « attention cette commande et à taper en root, n’oublier de retourner à l’utilisateur nagios après cette opération ».
- créer un répertoire .ssh dans le répertoire /home/nagios/ de la machine distante si il n'existe pas.
cd /home/nagios/ mkdir .ssh ou ssh nagios@serveur_distant "mkdir .ssh; chmod 0700 .ssh
Enfin, envoyer la partie publique de la clé créée sur la machine locale avec
scp .ssh/id_rsa.pub user@machine_distante:.ssh/authorized_keys2
On va vous demander le mdp de nagios. Se sera la seule fois où on vous le demandera. Se mdp autorise le serveur local à se connecter et à déposer le fichier authorized_keys2 dans le dossier .ssh du serveur distant.
ATTENTION : Sous peine de se prendre des erreurs à la connexion, les autorisations sur les répertoires et fichiers doivent être strictement positionnés comme suit (à exécuter en tant que utilisateur nagios):
chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys2
Maintenant, l'utilisateur nagios peut se connecter à l'hôte à superviser sans mot de passe
Pour vérifier, tapez depuis la machine locale, la commande suivante :
ssh -l nagios ip de la machine distante ou ssh user@ip de la machine distante
Vous devriez vous connecter sans que l’on vous demande de mot de passe.
Si tel est le cas, passez à l’étape suivante, sinon revenez sur les explications ci-dessus.
$HOSTADDRESS$ = ip publique du serveur distant
127.0.0.1 = ip local du serveur distant (pour les autres machines appartenant au même segment LAN, il faut remplacer cette ip par l’ip de la machine à supervisé 192.168.xxx.xxx)
Dans hosts.cfg
define host{
use linux-server
host_name SERVEUR-ASTERISK
address xxx.xxx.xxx.xxx
}
Dans services.cfg
define service{
use local-service ; Name of service template to use
host_name SERVEUR-ASTERISK
service_description Espace disque hda1
check_command check_ssh_disk!20%!10%!/dev/hda1
notifications_enabled 0
}
Trouvez des réponses à vos questions sur les distributions, les commandes en ligne et la résolution de problèmes. Partagez vos connaissances et connectez-vous avec la communauté open source pour maîtriser ces systèmes d'exploitation.
20 janv. 2016 à 15:03