Il n'est pas possible de superviser à travers un réseau un équipement informatique qui ne possède pas d'adresse IP, en tout cas pas avec les outils fournis en standard par Nagios. Cependant il peut être intéressant de configurer dans Nagios des hubs, des switchs de bas niveau et d'autres équipements qui ne possèdent pas d'adresse IP, pour obtenir au moins une représentation topographique correcte de son réseau (le fameux status map).
Nagios a besoin d'une adresse IP pour superviser un hôte (il procède par ping) mais également d'un service associé à cet hôte afin de l'afficher dans l'interface Web. L'article présente une des solutions à ce problème, testée et approuvée…
Pour la suite du tutoriel, il est supposé que Nagios est installé dans le répertoire /usr/local/nagios, sa configuration dans le sous-répertoire etc/, ses scripts dans le sous-répertoire libexec/ et ses binaires dans le sous-répertoire bin/.
Le nom de la machine sera hub, son groupe de machines sera reseau et le groupe de contact associé au groupe de machines sera admins-reseau. Se reporter à la documentation de Nagios pour obtenir des informations sur ces paramètres.
Il s'agit en fait d'un script shell basique que renvoie le statut Ok à chaque exécution.
Créer le fichier :
# cd /usr/local/nagios # vi libexec/check_null.sh
Remplir ce nouveau fichier avec les lignes suivantes :
#! /bin/sh echo "Impossible de determiner le statut" exit 0
Sauvegarder, fermer puis rendre le script exécutable :
# chmod 755 libexec/check_null.sh
Ajouter ce script aux commandes Nagios :
# vi etc/checkcommands.cfg
Insérer les lignes suivantes à la fin du fichier :
define command
command_name check_null
command_line $USER1$/check_null.sh
Sauvegarder puis fermer. La commande check_null est à présent disponible dans Nagios.
Comme Nagios a besoin d'une adresse IP pour enregistrer un hôte, il suffit de lui donner la valeur 127.0.0.1, qui correspond à l'interface locale, adresse qui répondra toujours au ping. Le reste de la configuration est classique :
# vi etc/hosts.cfg
Insérer les lignes suivantes à la fin du fichier :
define host
use generic-host
host_name hub
alias Hub salle de formation
address 127.0.0.1
check_command check-host-alive
max_check_attempts 10
notification_interval 120
notification_period 24x7
notification_options d,u,r
Sauvegarder puis fermer. La machine hub fait partie des machines supervisées dans Nagios, reste à l'insérer à un groupe :
# vi etc/hostgroups.cfg
Insérer les lignes suivantes à la fin du fichier ou ajouter la nouvelle machine à un groupe existant :
define hostgroup
hostgroup_name reseau
alias Elements du reseau
contact_groups admins-reseau
members routeur_adsl,hub
Sauvegarder et quitter. Il ne reste plus qu'à associer le service check_null à la nouvelle machine :
# vi etc/services.cfg
define service
use generic-service
host_name hub
service_description Null
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 3
retry_check_interval 1
contact_groups admins-reseau
notification_interval 120
notification_period 24x7
notification_options w,u,c,r
check_command check_null
Enregistrer et fermer le fichier.
Le service Null a été créé pour la machine hub.
Avant de redémarrer Nagios, s'assurer que la configuration est valide :
# bin/nagios -v etc/nagios.cfg
Si aucune erreur n'est détectée, redémarrer le service Nagios :
# /etc/init.d/nagios restart
La machine sans IP apparaît à présent dans les écrans Nagios et surtout dans le Status Map.