Supervision réseau - Shinken 1
Sommaire 1. Introduction :... 3 2. Présentation et cahier des charges :... 3 3. Pré requis :... 3 4. Installation de Shinken :... 4 5. Supervision du serveur local :... 5 6. Installation de SNMP :... 7 7. Supervision depuis l interface graphique :... 8 8. Supervision d un serveur sous Windows :... 9 8.1. Serveur Windows... 9 8.2. Serveur Debian... 11 9. Résolution des erreurs :... 11 2
1. Introduction : A travers ce tutoriel je vais vous présenter la supervision d un réseau informatique. Il existe deux principaux outils pour faire de la Supervision sous Linux : Les logiciels Nagios et Shinken. Pour un environnement Windows il y à le superviseur PRTG. Je vais détailler dans ce tutoriel l installation, la configuration et l utilisation du superviseur Shinken. Shinken est un logiciel qui fonctionne avec des plugins et des fichiers de configurations. Les plugins sont les mêmes que ce utilisés par Nagios. A l aide de cet outil il est possible de superviser des serveurs, des machines clientes et des périphériques (imprimantes, switchs, routeurs ). La supervision du parc se fait via une interface graphique qu il faudra installer après l installation de Shinken. 2. Présentation et cahier des charges : L installation de Shinken s effectuera sur une machine Debian 8. Dans ce tutoriel je vais détailler l installation de Shinken et les paquets nécessaires à son bon fonctionnement. Je vais ensuite rédiger et adapter les fichiers de configurations pour la supervision de mon serveur (Shinken) et d un serveur sous Windows. 3. Pré requis : Avant de se lancer dans l installation de Shinken, il y a plusieurs étapes : Tout d abord je mets à jour mon système Debian avec les 2 commandes suivantes : apt-get update apt-get upgrade Le système est à jour, je vais maintenant ajouter l utilisateur «shinken» qui appartiendra au groupe «shinken». adduser system shinken && addgroup system shinken && adduser shinken shinken La plupart des fichiers de configuration de Shinken sont codés en Python. Pour le bon fonctionnement de Shinken il faut donc installer les paquets suivants : apt-get install python-pip python-pycurl python-cherrypy3 3
apt-get install gawk L environnement est prés, les prés requis sont respectés et je vais pourvoir commencer l installation de Shinken. 4. Installation de Shinken : Je vais détailler l installation de Shinken. Précédemment j ai installé le paquet «python-pip», celui-ci va nous permettre d installer Shinken via la commande pip. Je commence l installation et j initialise Shinken pip install shinken shinken init Shinken installé, je vais ajouter 3 modules pour gérer la supervision du réseau via l interface graphique (interface graphique, base de données et module d authentification) : shinken install webui shinken install auto-cfg-password shinken install sqlitedb Les modules de Shinken installés sur notre machine sont visibles dans le fichier «var/lib/shinken/inventory». On peut également avoir un listing des modules installés via la commande suivante : shinken inventory Je vais déclarer les 3 modules installés ci-dessus en éditant un fichier pour que Shinken puisse les utiliser. J ouvre le fichier suivant et j ajoute comme ci-dessous le nom du module webui : nano /etc/shinken/brokers/broker-master.cfg Puis j ajoute l authentification et la base de données : nano /etc/shinken/modules/webui.cfg 4
L interface graphique est configurée, Shinken est donc près à fonctionner. Je vais lancer les services de Shinken via la commande suivante : service shinken start Les services de Shinken démarrés, on peut se connecter dans le navigateur à l interface graphique via l adresse «http://localhost:7767». Les id de connexions par défaut sont : ID : admin Pass : admin 5. Supervision du serveur local : Shinken installé, je vais superviser le serveur local grâce au protocole SNMP. Des fichiers de configurations ont été crées par défaut dans les dossiers «hosts» et «services». Je vais renommer ces deux fichiers et en recréer avec la configuration souhaitée pour superviser mon serveur local. Je renomme les fichiers par défaut : mv /etc/shinken/hosts/localhost.cfg /etc/shinken/hosts/localhosts.old.cfg mv /etc/shinken/services/localhost.cfg /etc/shinken/services/localhosts.old.cfg Je vais importer les commandes permettant de superviser le CPU et l espace disque pour commencer. Je télécharge sur le site de Nagios les plugins nécessaires et dézippe l archive apt-get install nagios-plugins tar xzf nagios-plugins-snmp-0.6.0.tgz 5
Je copie 2 commandes pour mes deux objectifs de supervision (snmp, disk, et load) vers les fichiers de configuration de Shinken. cp /usr/lib/nagios/plugins/check_snmp /var/lib/shinken/libexec cp /usr/lib/nagios/plugins/check_disk /var/lib/shinken/libexec cp /usr/lib/nagios/plugins/check_load /var/lib/shinken/libexec Les commandes importées dans le bon fichier, je vais préciser à Shinken comment utiliser ces commandes. Pour cela je crée un fichier (que je nomme «check_snmp.cfg») dans le dossier des commandes. nano /etc/shinken/commands/check_snmp.cfg Je définis mes commandes avec les paramètres et arguments dans le fichier crée Les commandes sont définies, je peux créer le fichier de configuration pour l hôte. Pour une meilleure gestion je crée un fichier par hôte. Je commence donc par mon serveur debian que je vais créer dans mon dossier «hosts». nano /etc/shinken/hosts/localhost.cfg Je définis mes paramètres dans ce fichier comme suit Le dernier paramètre (business_impact) défini l importance de l hôte. Maintenant il reste à définir les services utilisés pour l hôte. Je crée un fichier dans le dossier «services» qui portera le même nom que l hôte pour plus de visibilité, et je déclare mes deux services ciblés (CPU et Espace disque) : nano /etc/shinken/services/localhost.cfg Le fichier se configure de la façon suivante : 6
Les paramètres principaux de ce fichier sont : - le nom du service (use) - le nom de la machine (host_name) - le nom correspondant qui apparaitra sur l interface web (service_description) - la commande utilisés et ses arguments (check_command) Les fichiers sont maintenant configurés. 6. Installation de SNMP : Il reste maintenant à installer SNMP et SNMPD sur le serveur. Pour ce faire, je saisi dans le terminal les commandes suivantes : apt-get install snmp apt-get install snmpd Une fois installé, un fichier nommé «snmpd.conf» à été crée. Je vais l éditer et le modifier comme ceci : nano /etc/snmp/snmpd.conf Je modifie le fichier en intervertissant l agentaddress comme ci-dessous : Toujours dans ce fichier je modifie la «recommunity» en commentant une ligne et en en ajoutant une autre, pour arriver à la configuration suivante : 7
Pour terminer je redémarre les services snmpd et shinken pour que mes modifications soient prises en compte /etc/init.d/snmpd restart /etc/init.d/shinken restart Si tout fonctionne, le résultat doit être le suivant : 7. Supervision depuis l interface graphique : Les services démarrés, je me connecte à mon interface graphique. Depuis l onglet «All» je peux voir l ensemble des hôtes et de services supervisés. Pour mon cas, j ai mon serveur local, son cpu et son espace disque comme ceci : 8
On peut voir directement les problèmes via l onglet «IT problems». 8. Supervision d un serveur sous Windows : Je vais maintenant configurer des fichiers pour me permettre de superviser un serveur Windows 2008 R2. Pour ce faire, il y a des actions à faire sur le serveur Debian et sur le serveur qui va être supervisé. Je vais détailler les deux parties : 8.1. Serveur Windows Je me connecte sur mon serveur Windows 2008 R2. Je vais créer un utilisateur qui sera dédié à la communication entre le serveur Debian et mon serveur Windows. Je nomme l utilisateur «shinken». Pour que la supervision fonctionne entre les deux serveurs, je dois ajouter sur mon serveur Windows deux fonctionnalités : snmp et wmi. Les services ajoutés, il faut les paramétrer pour ajouter l utilisateur crée plus haut. Sur Windows il faut lancer la commande «services», se rendre sur le service SNMP, propriétés. Dans l onglet «Connexion», remplir les champs comme ci-dessous pour l utilisateur crée : 9
Onglet «sécurité», ajouter comme ci-dessous et cocher l option «Accepter les paquets SNMP provenant de n importe quel hôte Il faut ensuite redemarre le service SNMP et la configuration sur le serveur Windows est terminée. 10
8.2. Serveur Debian Sur mon serveur Debian, il faut commencer par télécharger le plugin «check_wmi_plus» et le copier dans le dossier des plugins. Télécharger également unzip, utilitaire pour dézipper : apt-get install unzip unzip check_wmi_plus.d-2015-10-23.zip cp /home/perso/téléchargements/check_wmi_plus.d/check_wmi_plus.ini /var/lib/shinken/libexec Il faut également installer les fichiers de configurations pour l hôte qui est sur Windows. Pour cela, on va installer le paquet suivant : shinken install windows On retourne dans le dossier «hosts» pour ajouter le serveur Windows nano /etc/shinken/hosts/windows2008r2.cfg Editer le fichier de configuration : Il reste à configurer le fichier pour communiquer avec le serveur Windows nano /etc/shinken/resource.d/active-directory.cfg Editer le fichier de configuration : Redémarrer shinken et retourner sur l interface graphique pour vérifier l hôte Windows server est supervisé. /etc/init.d/shinken restart 9. Résolution des erreurs : 11
Dans le meilleur des cas, l interface graphique renvoi les services et hôtes. Dans l autre cas, voici une erreur rencontré et sa résolution : Erreur : «perl : warning : Setting locale failed Sur le terminal, entrer les commandes suivantes : locale-gen en_us.utf-8 locale-gen fr_fr.utf-8 dpkg-reconfigure locales Une fenêtre s ouvre, il faut cocher «en_us.utf-8 UTF-8» comme ci-dessous Choisir l option suivante Redémarrer shinken /etc/init.d/shinken restart Retourner ensuite sur l interface graphique et le serveur Windows va apparaitre dans la liste des services supervisés. 12
13