Shinken découvre votre réseau pour vous
Si vous avez mis en place un serveur de supervision sur votre réseau, vous devez savoir que cette phase est souvent longue, fastidieuse et source d'erreur de configuration. Heureusement, la dernière version (0.6) de Shinken (le fork compatible Nagios développé de main de maitre par Jean Gabes) intègre un mesure de découverte de votre réseau.
Nous allons dans ce billet détailler les étapes pour utiliser ce module. Nous partons sur l'hypothèse ou vous avez un serveur Shinken/Thruk opérationnel. Si ce n'est pas le cas, j'ai développé un petit script shell permettant de faire cette installation pour vous.
C'est quoi donc ce module ?
Shinken-discovery est un programme qui va scanner les machines de votre réseau puis en déduire les services à superviser pour ensuite générer les fichiers de configurations pour Shinken.
Installation
Le scan de votre réseau se base sur le bien connu programme nmap qui doit donc être présent sur votre système.
Sur Debian / Ubuntu:
sudo aptitude install nmap
Sur Fedora:
yum install nmap
Le reste des programmes est inclue dans la version 0.6 (et supérieure) de Shinken.
Configuration
Si vous avez bien suivi, il faut maintenant dire à Shinken quel est le ou les réseaux à scanner. Cette configuration permet non seulement de découvrir des machines sur votre réseau local mais également (sous réserve de règles de filtrages compatible dans vos firewalls/routeurs) sur des réseaux distants.
La liste des réseaux à scanner est à configurer dans le fichier /etc/shinken/resource.cfg dans la variable $NMAPTARGETS$ (en fin de fichier):
# sudo vi /etc/shinken/resource.cfg
$NMAPTARGETS$=192.168.0.0/24 blog.nicolargo.com
Dans l'exemple ci-dessus je vais donc scanner:
- 192.168.0.0/24: les 254 adresses de mon réseau local
- blog.nicolargo.com: un serveur sur Internet que je surveille de près
Lancement de la découverte
Il suffit de saisir la commande suivante:
sudo shinken-discovery -o /etc/shinken/objects/discovery -r nmap
Selon la taille de votre réseau, cette opération peut prendre plus ou moins de temps ("I'm launching nmap").
Comme on peut s'en douter, la configuration sera générée dans le répertoire /etc/shinken/objects/discovery. Le principal avantage est que l'on ne pert pas la configuration existante.
Note
Pour partir sur une nouvelle configuration basée uniquement sur le module de découverte (c'est à dire juste après une installation propre de Shinken), vous pouvez suivre la procédure suivante (au cas ou la configuration initiale est archivé dans /tmp/shinken-backup.tgz):
tar zcvf /tmp/shinken-backup.tgz /etc/shinken
sudo rm -f /etc/shinken/objects/hosts/*
sudo rm -f /etc/shinken/objects/services/*
sudo rm -f /etc/shinken/hostgroups.cfg
sudo touch /etc/shinken/hostgroups.cfg
sudo rm -f /etc/shinken/servicegroups.cfg
sudo touch /etc/shinken/servicegroups.cfg
/Note
On doit ensuite fixer les droits des fichiers générés:
sudo chown -R shinken:shinken /etc/shinken/objects/discovery
Prise en compte de la nouvelle configuration
Il suffit ensuite de redémarrer Shinken pour voir votre réseau:
sudo /etc/init.d/shinken restart
Si vous aviez déjà une configuration existante, il y a de forte chance pour que Shinken vous affiche un message d'erreur lors de la vérification de vos fichiers. Le résultat de la commande de check se trouve dans le fichier /tmp/shinken_checkconfig_result.
Par exemple, le module de découverte peut générer une entrée pour un host existant. Il faut alors éditer et ou supprimer le host en question pour que la configuration soit valide.
Conclusion
Ce billet n'est qu'une courte introduction à ce module qui peut être paramétré de manière beaucoup plus fine lors de la transformation du scan vers une configuration Shinken. J'aurai l'occasion de revenir prochainement sur ce vaste sujet.