SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement...

79
FAMEL Yoan 13/10/2015 PAYET Yoann BTS SIO – SISR SISR5 Supervision des réseaux Mise en place d'un outil de supervision – Première partie Table des matières Introduction.......................................................................................................................................... 2 Infrastructure réseau............................................................................................................................. 3 Mise en place de l'infrastructure...........................................................................................................4 Création des serveurs supervisés.................................................................................................... 4 Installation et configuration de srvweb3 sur le serveur ESXi....................................................5 Installation et configuration de winftp1 sur le serveur ESXi................................................... 14 Installation et configuration du serveur de supervision........................................................... 24 Mise en place du réseau et tests de la connectivité.......................................................................25 Mise en place du routeur.......................................................................................................... 25 Mise en place du commutateur................................................................................................ 27 Installation et configuration du serveur de supervision......................................................................29 Installation du serveur de supervision.......................................................................................... 29 Configuration de base du serveur de supervision......................................................................... 33 Utilisation de Shinken, premiers pas dans la supervision de serveurs Linux.....................................42 Découverte de l'interface.............................................................................................................. 42 Principe de fonctionnement des commandes................................................................................45 Utilisation du protocole SNMP.....................................................................................................49 Supervision de serveurs sous Linux................................................................................................... 61 Mise en place du serveur sur le réseau......................................................................................... 61 Raccordement du serveur Shinken à l'infrastructure du réseau.................................................... 65 Mise en place de contrôles (sondes) de supervision d'un service.................................................65 Mise en place de contrôles (sondes) de supervision d'un serveur sous Linux via SNMP............72 Mise en place de contrôles (sondes) de supervision d'un serveur sous Linux via SSH................75 Conclusion..........................................................................................................................................78 1 / 79

Transcript of SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement...

Page 1: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

FAMEL Yoan 13/10/2015PAYET YoannBTS SIO – SISR

SISR5Supervision des réseaux

Mise en place d'un outil de supervision – Première partie

Table des matièresIntroduction..........................................................................................................................................2Infrastructure réseau.............................................................................................................................3Mise en place de l'infrastructure...........................................................................................................4

Création des serveurs supervisés....................................................................................................4 Installation et configuration de srvweb3 sur le serveur ESXi....................................................5 Installation et configuration de winftp1 sur le serveur ESXi...................................................14 Installation et configuration du serveur de supervision...........................................................24

Mise en place du réseau et tests de la connectivité.......................................................................25 Mise en place du routeur..........................................................................................................25 Mise en place du commutateur................................................................................................27

Installation et configuration du serveur de supervision......................................................................29 Installation du serveur de supervision..........................................................................................29 Configuration de base du serveur de supervision.........................................................................33

Utilisation de Shinken, premiers pas dans la supervision de serveurs Linux.....................................42 Découverte de l'interface..............................................................................................................42 Principe de fonctionnement des commandes................................................................................45 Utilisation du protocole SNMP.....................................................................................................49

Supervision de serveurs sous Linux...................................................................................................61 Mise en place du serveur sur le réseau.........................................................................................61 Raccordement du serveur Shinken à l'infrastructure du réseau....................................................65 Mise en place de contrôles (sondes) de supervision d'un service.................................................65 Mise en place de contrôles (sondes) de supervision d'un serveur sous Linux via SNMP............72 Mise en place de contrôles (sondes) de supervision d'un serveur sous Linux via SSH................75

Conclusion..........................................................................................................................................78

1 / 79

Page 2: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Introduction

Dans ce TP nous allons nous intéresser à l'utilisation du service de supervision Shinken, cette application permet la surveillance système et réseau y compris les hôtes et les services spécifiés, évoluant sous une licence libre de type GNU AGPL (licence publique générale Afero) cette dernière est complètement compatible avec le logiciel Nagios.

« Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios sur les architectures distribuée, le programme a rapidement démontré des performances et une flexibilité bien plus importantes que son aîné Nagios. »

Source : https://fr.wikipedia.org/wiki/Shinken_(logiciel)

Nous nous placerons donc en contexte professionnel en supposant qu'une entreprise ai besoin de nos services afin d'effectuer une meilleure supervision de ses matériels, entre autre, deux serveurs virtualisés et les services qu'ils hébergent, une imprimante réseau, un serveur de virtualisation ainsi que des outils d'interconnexions tel qu'un routeur et un commutateur Cisco Systems.

2 / 79

Page 3: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Infrastructure réseau

Nous allons donc mettre le réseau suivant en place et nous ferons un rappel des différents adressages du matériel à la suite.

Adresse IP Masque Passerelle

RTR S0/0 FE0/0172.16.193.3 172.16.193.254

S0/0 FE0/0255.255.255.0 255.255.0.0

COMM (VLAN1) 172.16.193.253 255.255.0.0 172.16.193.254

ServeurShinken 172.16.193.1 255.255.0.0 172.16.193.254

SRV1-Linux 172.16.193.10 255.255.0.0 172.16.193.254

SRV2-W2012 172.16.193.40 255.255.0.0 172.16.193.254

3 / 79

Page 4: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Mise en place de l'infrastructure

Création des serveurs supervisés

Pour notre besoin nous importerons un master Debian 7 depuis la banque de données (datastore) d'ESXi que nous clonerons avec 1Go de mémoire vive, 20Go de disque dur alloué en Thin provisioning afin d'en créer deux ainsi qu'une image iso de Windows Server 2012.

L'interface de ESXi est la suivante :

Nous allons donc voir ensemble la façon dont il faut créer et configurer une machine sous ESXi afin de pouvoir par la suite la virtualiser et l'utiliser, nous préciserons que notre exemple s'applique de la même façon à n'importe quel cas de création de machine virtuelle sous le serveur ESXi, cet exemple étant greffé d'un autre d'utilisation, il reste cependant le même et peut s'appliquer à notre cas.

4 / 79

Page 5: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Installation et configuration de srvweb3 sur le serveur ESXi

Dans un premier temps, nous allons créer un répertoire pour notre future machine qui contiendra les données d’installation. Puis nous allons copier si possible l'image d'une machine modèle (Master) ayant l'extension .vmdk (cette dernière représente la décompression d'une image ISO), dans le répertoire créer précédemment (figure suivante),

Ainsi que comme indiqué dans l'exemple ci-dessous :

Dans cet exemple notre machine master Master-DB7.vmdk est copié dans le répertoire correspondant au cas (ici srvweb3) lui même compris dans le répertoire parent associé.

L'image à bien été copiée.

5 / 79

Page 6: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Maintenant que nous avons copié notre image .vmdk nous allons créer notre machine virtuelle qui sera en référence avec cette même image. Pour cela un clique droit sur notre pool de ressource nous le permet :

Après avoir effectué cette action nous aurons une interface qui nous accompagnera tout au long de la création de la machine. Nous choisissons une configuration personnalisée :

On y précise ensuite le nom de la machine virtuelle que l'on va créer, dans notre cas le nomcorrespondra au serveur Web :

6 / 79

Page 7: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

On sélectionne ensuite le stockage de destination dans lequel les fichiers de la machine seront enregistrés après modification. Dans notre cas, ce sera le datastore se trouvant à la racine du serveur :

Puis nous choisissons la version compatible avec Vmware et ESXI :

À l'étape suivante, nous devons renseigner la version ainsi que l'OS que notre serveur utilisera :

L'utilisateur peut à sa guise changer l'OS de la machine, du moment que celle-ci est en adéquation avec l'image qu'il aura sélectionné au préalable.

7 / 79

Page 8: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Tout dépend ensuite du nombre de CPU compris par l'hôte. Généralement on choisis 1 dans les deux cas (figure suivante) :

La configuration de la mémoire vive dépendra du ou des services que nous allouerons à notre serveur. Pour ma part 1 GO de RAM sera alloué car la virtualisation actuelle ne nous poussera pas à utiliser une grosse configuration :

On peut définir également le nombre de carte réseau que va utiliser notre machine virtuelle. Dans notre cas 1 NIC (Network interface communication) est suffisante car la machine est de type serveur et non routeur logiciel :

8 / 79

Page 9: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

On sélectionne le contrôleur SCSI par défaut :

En tenant compte qu'au début nous avons copié (si c'est le cas) notre image .vmdk, nous allons établir le lien avec cette dernière. Pour cela, il faut donc choisir, utiliser un disque virtuel existant.

On montre le chemin de l'image copié à l’assistance de création de machine virtuelle de ESXi :

9 / 79

Page 10: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Les étapes qui suivent sont à laisser par défaut, c'est donc après celle-ci que nous cliquons sur Terminer pour créer notre machine virtuelle.

Nous faisons bien évidemment la même manipulation pour chacun de nos deux serveurs s'appliquant à notre cas.

Une fois nos deux serveurs créés nous les démarrons :

Notre serveur srweb3 ayant bien été créé nous lui attribuons une configuration temporaireafin qu'il puisse rejoindre le réseau internet pour le futur téléchargement des paquets.

Nous lui implanterons donc le service apache2 destiné aux serveurs web en effectuant la commande suivante,

10 / 79

Page 11: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous adapterons ensuite l'affichage de la page d'accueil de notre site en ajoutant le nom enotre serveur en se déplaçant au sein du répertoire /var/www/ comme suit :

nano /var/www/index.html

Nous vérifierons son bon fonctionnement en tapant localhost dans la barre d'url de notre navigateur :

Nous installerons ensuite le package SNMP, le protocole requis pour la supervision du serveur grâce à la commande suivante :

11 / 79

Page 12: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Puis, nous installerons également le package ssh dédié à l'accès à distance sécurisé à notreserveur :

Nous créons un utilisateur shinken avec pour mot de passe shinken pour notre cas fictif (nous passerons le informations utilisateur) :

Nous terminerons en renommant notre serveur grâce aux deux fichiers ci dessous :

12 / 79

Page 13: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous vérifions ensuite au préalable la carte connectée du serveur :

Et nous lui attribuons enfin son adressage final, aucun téléchargement n'étant nécessaire à présent :

Nous éteindrons notre serveur désormais nommé SRV1-Linux afin d'éviter tout conflits d'adresse IP avec les autres groupes.

13 / 79

Page 14: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Ce dernier est placé sur le commutateur virtualisé de base d'ESXi :

Installation et configuration de winftp1 sur le serveur ESXi

Nous préciserons que cette installation est basé sur un modèle vierge de Windows server 2012.

Nous effectuerons donc son installation dans un premier temps sous ESXi avec l'image iso concernée.

Intéressons nous maintenant à son installation graphique.

14 / 79

Page 15: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous attribuerons une configuration IP semblable à SRV1-Linux de façon à ce que le serveur puisse obtenir une connexion internet et choisirons un mot mot de passe plus complexe tel que SIO2pass.

Nous allons donc suivre cette installation pas à pas :

Une fois arrivé sur l'écran suivant nous cliquons sur Install now.

15 / 79

Page 16: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous choisirons Server Core Installation.

Puis, Install Windows and keep files.

L'écran suivant nous notifie enfin l'installation du système :

16 / 79

Page 17: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Comme précisé précédemment nous attribuons le mot de passe SIO2pass au compte administrateur de la manière suivante :

Nous choisissons d'affecter un rôle à notre serveur avec Ajout des rôles et des fonctionnalités.

17 / 79

Page 18: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous choisissons ensuite le rôle du serveur web en sélectionnant serveur web IIS comme suit :

Nous ajoutons donc ces fonctionnalités puis nous sélectionnons les services de rôle en ajoutant la coche sur Serveur FTP :

18 / 79

Page 19: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous attendons ensuite la fin de l'installation après avoir confirmé notre sélection.

La confirmation de l'activation du service est bien affichée ci-dessous via la console Windows :

19 / 79

Page 20: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Il est ensuite impératif que nous redémarrions le serveur afin que le service FTP soit fonctionnel.

Dan le gestionnaire de serveur et dans le menu Outils nous sélectionnerons ensuite Gestionnaire des services Internet (IIS) et, dans ce même gestionnaire, nous cliquons de droite sur le dossier Sites dans la barre latérale gauche, puis Ajouter un site FTP.

Nous arrivons alors sur l'écran suivant où nous indiquons le nom du site FTP de l'entrepriseainsi que le chemin vers le dossier contenant les ressources accessible via ce même service (un dossier ftp-mediane sera donc créé à la racine du répertoire C:) :

20 / 79

Page 21: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Ensuite nous indiquons qu'il n'y a pas de certificat SSL :

Nous acceptons également l'authentification anonyme sur le service :

21 / 79

Page 22: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Le service FTP nous apparaît maintenant comme démarré :

Il s'agit ensuite de créer une règle de pare-feu pour les réponses aux commandes ping par Windows, pour cela, dans notre gestionnaire de serveur, une fois de plus dans le menu Outils nous sélectionnons Pare-feu Windows avec fonctions avancées de sécurité.

Dans Règle de trafic entrant nous cliquons sur Partage de fichiers et d'imprimantes (Demande d'écho – Trafic entrant ICMPv4) et nous activons la règle :

22 / 79

Page 23: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Bien veiller à ce que la coche Activé sois bien remplie comme ci-dessous :

Nous vérifions ensuite que cette règle est bien active :

On bloque ensuite les mises à jour.

23 / 79

Page 24: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Notre serveur sera à présent nommé SRV2-W2012.

Installation et configuration du serveur de supervision

Une fois sur notre serveur que nous avons au préalable créé à part (sur VirtualBox), et ce dernier évoluant sous Debian 7.5 nous vérifions que le système de paquets soit fonctionnelen faisant un apt-get update :

Nous renommons ensuite notre serveur avec les deux fichiers de configurations appropriéssoit, /etc/hostname et /etc/hosts :

Notre serveur de supervision est à présent nommé en tant que ServeurShinken.

Nous le redémarrons avec la commande reboot afin que les paramètres soit bien pris en compte.

24 / 79

Page 25: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Mise en place du réseau et tests de la connectivité

Nous allons dès à présent mettre en place les différents matériels et leur adressage respectifs dans notre réseau afin qu'ils puissent communiquer entre eux, nous ignorerons l'imprimante.

Mise en place du routeur

Notre routeur sera configuré de la manière suivante :

# Attribution du nom au routeur

Router#configure terminal Router(config)#hostname RTR RTR(config)#exit

# Attribution du mot de passe VTY et Console

RTR(config)#line con 0 RTR(config-line)#password admin RTR(config-line)#login RTR(config-line)#exit RTR(config)#line vty 0 15 RTR(config-line)#password class RTR(config-line)#login RTR(config-line)#exit

# Affectation des adresse IP aux interfaces Fa et Se

RTR(config)#interface fa0/0 RTR(config-if)#ip address 172.16.193.254 255.255.0.0 RTR(config-if)#no shutdown RTR(config-if)#exitRTR(config)#interface Se0/0 RTR(config-if)#ip address 192.16.193.3 255.255.255.0 RTR(config-if)#no shutdown RTR(config-if)#exit

Les interfaces ayant été activées et les adresses distribuées nous allons pouvoir faire un rapide tour de la configuration de notre routeur pour nous assurer que tout est bien paramétré grâce à la commande iOS show protocols comme suit,

25 / 79

Page 26: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

# Ensemble de la configuration RTR

Current configuration : 921 bytes ! version 12.4 service timestamps debug datetime msec service timestamps log datetime msec no service password-encryption ! hostname RTR ! boot-start-marker boot-end-marker ! no aaa new-model no network-clock-participate slot 1 no network-clock-participate wic 0 ip cef ! ip auth-proxy max-nodata-conns 3 ip admission max-nodata-conns 3 ! interface FastEthernet0/0 ip address 172.16.193.254 255.255.0.0 duplex auto speed auto ! interface Serial0/0 ip address 192.16.193.3 255.255.255.0 no fair-queue ! interface FastEthernet0/1 no ip address shutdown duplex auto speed auto ! interface Serial0/1 no ip address shutdown ! ip forward-protocol nd ! ip http server no ip http secure-server ! control-plane ! line con 0 password admin login line aux 0 line vty 0 4

26 / 79

Page 27: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

password class login line vty 5 15 password class login ! end

On constate ici clairement l'ensemble de notre configuration et les paramètres affectés plus tôt, rappelons donc le plan d'adressage sous sa forme de tableau :

Adresse IP Masque Passerelle

RTR S0/0 FE0/0172.16.193.3 172.16.193.254

S0/0 FE0/0255.255.255.0 255.255.0.0

COMM (VLAN1) 172.16.193.253 255.255.0.0 172.16.193.254

ServeurShinken 172.16.193.1 255.255.0.0 172.16.193.254

SRV1-Linux 172.16.193.10 255.255.0.0 172.16.193.254

SRV2-W2012 172.16.193.40 255.255.0.0 172.16.193.254

Tout à été correctement configuré sur le routeur.

Mise en place du commutateur

Nous allons également devoir configurer le commutateur sur lequel nos serveurs seront interconnectés entre eux de la manière suivante,

Switch>enable Switch#conf t Switch(config)#host COMM

# Définition de l'adressage du VLAN par défautCOMM(config)#interface vlan 1 COMM(config-if)#ip address 172.16.193.253 255.255.0.0 COMM(config-if)#no shutCOMM(config-if)#exCOMM(config)#ip default-gateway 172.16.193.254

Notre commutateur est maintenant prêt à l'emploi.

27 / 79

Page 28: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous attribuons également bien sûr l'adressge des différents serveurs que nous utiliserons que ce soit le serveur Windows ou le serveur Linux, nous n'adresserons pas le serveur Shinken pour le moment compte tenu des paquets que nous devrons installer.

Le serveur Windows sera quand à lui adressé de la manière suivante :

Adresse IP : 172.16.193.40

Masque de sous réseau : 255.255.0.0

Passerelle : 172.16.253.253

Nous placerons à présent notre serveur FTP et WEB dans un commutateur virtuel afin d'éviter tout conflit d'adressage avec les autres groupes.

28 / 79

Page 29: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Installation et configuration du serveur de supervision

Installation du serveur de supervision

Nous relions directement dans un premier temps notre serveur au réseau de l'établissement afin de pouvoir obtenir une connexion internet afin de pouvoir télécharger les paquets prérequis.

Shinken est un serveur basé sur du code en Python, il est donc nécessaire d'installer plusieurs paquets destinés à son bon fonctionnement comme suit,

Une fois le téléchargement et l'installation effectuée nous allons installer des plugins Nagios également nécessaire pour nous fournir des commandes de supervision, nous installons donc la libraire/bibliothèque de plugins utile :

On constate que le shell nous retourne que d'autres paquets seront installés automatiquement, nous laissons tourner.

Il faudra également régler un problème de référencement du module PERL utils.pm qui sera nécessaire au plugins Nagios avec les commandes suivantes :

29 / 79

Page 30: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous passons maintenant à l'installation du serveur Shinken en lui même.

Nous commençons donc par créer un utilisateur Shinken avec pour mot de passe également Shinken (il est fortement conseillé de le sécuriser en cas réel), nous passerons les informations concernant l'utilisateur implantés par défaut :

Nous installons ensuite Shinken avec la commande qui suit, san tenir compte des warnings pouvant s'afficher à l'écran :

Nous patientons jusqu'à la fin de l'installation, le but de la commande pip va être de récupérer le script d'installation de Shinken qui sera dans un premier exécuté puis configuré, le script aura ensuite vérifié ce dont il a besoin pour le fonctionnement du service.

30 / 79

Page 31: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous constatons alors que l'écran suivant l'installation nous retourne :

Ce qui signifie que l'installation est un succès.

Il est ensuite obligatoire de redémarrer le serveur avec un reboot.

AU redémarrage nous vérifions ensuite l'état des processus de Shinken qui sont normalement non lancés par défaut, on utilise donc la commande qui suit :

La couleur rouge nous l'indique clairement.

On va alors logiquement lancer les processus afin que le service Shinken puisse être fonctionnel pour la suite de notre TP.

31 / 79

Page 32: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Pour cela la commande suivante est requise :

Cette fois, la couleur verte indique que tout fonctionne bel et bien.

Dans notre navigateur nous allons maintenant vérifier le bon état du service :

Nous voyons ici qu'il nous faut préciser le port d'un des services de Shinken.

A ce moment même, les ports de 7768 à 7773 devraient fonctionner correctement.

32 / 79

Page 33: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Configuration de base du serveur de supervision

Lors de l'installation précédente, Shinken à été rendu fonctionnel, cependant il est encore trs incomplet, en effet l'interface graphique de l'application permettant d'analyser les machines monitorées est manquante. Des jeux de commandes en Python lui permettant desuperviser les systèmes, services et matériels sont également manquants tel que :

• Des commandes destinées aux systèmes d'exploitation

• Des commandes pour divers services tel que http, ssh, ftp, pop, smtp, etc...

• Des commandes pour les serveurs

• Des commandes pour les matériels tel que les imprimantes, routeurs, switch, etc...

Nous changeons maintenant d'utilisateur et nous plaçons dans son dossier personnel, puis initialisons la commande :

On constate alors qu'un fichier de configuration shinken.ini est créé.

Il va ensuite être utile de rechercher toutes les informations concernant Webui – l'interfacegraphique de shinken – afin de le trouver et installer le module par la suite.

Nous utiliserons donc la commande suivante afin de pouvoir le rechercher,

33 / 79

Page 34: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous voyons justement tout à la fin le module recherché, il va donc falloir l’installer commesuit :

Un dossier va alors être créé contenant les fichiers en Python de l'interface graphique ainsi que son visuel codé en HTML, il est possible d'y accéder à partir du chemin suivant :

/var/lib/shinken/modules/webui2

La configuration de l'interface quand à elle se fera à partir du fichier suivant :

/etc/shinken/modules/webui2.cfg

34 / 79

Page 35: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

A présent, il va falloir choisir une méthode d'authentification pour sécuriser l'accès à la console, la supervision est un sujet sensible il est donc fortement recommandé de la réserver aux personnes habilitées.

De la même manière que précédemment nous allons donc chercher un moyen de s'authentifier en recherchant un module, de la manière qui suit :

Les méthodes d'authentification sont alors listées.

Détaillons les :

Méthodes Fonctionnementauth-active-directory Basée sur l'annuaire active directory, permet une

authentification centralisée dans le cas où nous possédonsdéjà un tel serveur.

auth-cfg-password La plus simple, elle est basée sur les contacts de Shinken.auth-htpasswd Celle-ci est basé sur le fichier .htpasswd d'Apache.auth-pam Basée sur le mécanisme PAM (modules d'authentification

enfichables).auth-ws-glpi Utilise l'interface de GLPI pour s'authentifier.

Ici nous utiliserons la méthode auth-cfg-password la méthode la plus simple pour que nous nous identifions sur l'interface.

35 / 79

Page 36: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous installons donc cette méthode de la manière suivante :

Une base de données sera également requise pour pouvoir y stocker les informations et préférences utilisateurs de l'interface graphique, afin de simplifier cela nous utiliserons Mongodb nécessaire donc à l'interface Webui.

Nous repassons sur le profil destiné à l'utilisateur root puis nous installons les modules pyhons supplémentaires requis :

Le serveur de bases de données Mongodb peut maintenant être installé :

Nous nous déplaçons ensuite dans le dossier /etc/shinken et nous éditons le fichier de l'interface graphique en faisant :

nano modules/webui2.cfg

Nous allons maintenant nous intéresser au nom du module, aux interfaces accessibles ainsiqu'au port utilisé afin qu'en tant qu'utilisateur nous puissions accéder à l'interface.

36 / 79

Page 37: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

A l’intérieur du fichier nous remarquons donc le nom du module :

Les interfaces utilisées ainsi que son port, le 7767 :

Nous renommons dans un premier temps la phrase d'accueil de l'interface :

Puis, nous déclarons le module d'authentification choisit précédemment :

Nous enregistrons les configurations.

37 / 79

Page 38: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Le compte et mot de passe utilisés sont donc ceux du profil Shinken, situés dans le fichier/etc/shinken/contacts/admin.cfg ici l'identifiant et le mot de passe seront donc admin.

Il va falloir maintenant associer notre interface graphique avec un processus spécifique appartenant à Shinken et nommé Broker, sa fonction sera d'appeller et utiliser le module graphique, il est donc d'une importance capitale.

Nous éditons son fichier de configuration en faisant,

nano /etc/shinken/brokers/broker-master.cfg

Nous arrivons alors dans le fichier suivant :

On repère alors la comande modules et nous lui ajoutons le module de l'interface graphique :

38 / 79

Page 39: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

A partir de ce moment l'interface graphique de shinken est normalment accessible depuis un navigateur, si nous ouvrons donc le navigateur de notre machine physique hébergeant le serveur nous pouvons alors nous y connecter.

L'interface suivante s'affiche alors :

Nous nous connectons dons avec l'identifiant et le mot de passe cités plus haut.

Sur cette interface nous découvrons dans un premier temps ce que nous appellerons le dashboard (figure suivante) :

39 / 79

Page 40: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous voyons ici qu'un hôte est recensé, afin de pouvoir apercevoir notre serveur nous cliquons alors sur l'icône des hôtes représenté par trois petits serveurs dans la barre située en haut de l'interface.

La remontée de l'état peut être longue mais notre serveur devrait alors apparaître comme suit :

Shinken est maintenant fonctionnel, faisons donc un rappel de ses différents dossiers et fichiers :

Dossier Chemin d'accès

Dossier de base de shinken /etc/shinken

Dossier des modèles de supervision /etc/shinken/packs

Dossier de déclaration des hôtes /etc/shinken/hosts

Dossier des plugins (commandes python) /var/lib/shinken/libexec

Dossier des plugins Nagios (c.Python) /usr/lib/nagios/plugins

Dossier d'inventaire des modules installés /var/lib/shinken/inventoty

Dossier des logs /var/log/shinken

Nous allons également détailler le fonctionnement des différents proccessus composant le service Shinken sous forme de tableau.

40 / 79

Page 41: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Processus Fonctionarbiter Lit les fichiers de configuration qu'il distribue aux autres

processus.scheduler Ordonnance les contrôles, gère le travail des sondes.poller Lance les contrôles (sondes).reactionner Déclenche les actions en fonction du résultat des contrôles

(alerte, notifications, etc).broker Récupère les données pour les traiter (stockage).receiver Est optionnel, permet de recevoir des commandes externes.

Les contrôles s'effectuent donc à l'aide de sondes interagissant sur les matériels supervisés.

Ces processus se répartissent donc leur travail, et c'est là que se dégage toute la puissance de l'outil de supervision Shinken, pour décomposer :

1. On paramètre les fichiers de configurations

2. Ils sont lus par le processus arbiter qui les décompose

3. Ils sont répartis sur les processus reactionner, scheduler et poller

4. Poller vient chercher des contrôles à effectuer dans le processus scheduler

5. Le contrôle étant terminé il retourne le résultat à scheduler

6. Reactionner vient chercher les actions à effectuer sur scheduler suivant le cas

7. Il notifie les alertes, envoi les messages

8. Broker relève le statuts des contrôles dans scheduler et les stock dans sa base

9. Des graphiques sont construits à partir des données (par exemple).

41 / 79

Page 42: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Utilisation de Shinken, premiers pas dans la supervision de serveurs Linux

Découverte de l'interface

Toujours sur le navigateur de notre machine physique hébergeant notre serveur Shinken nous allons examiner l'interface que propose Shinken.

Les différents menus sont en fait des propositions de différentes vues possibles lors de la supervision des matériels.

La barre en haut permet de suivre notamment permet de suivre des hôtes et services que nous supervisons, d'afficher un dashboard graphique, d'activer ou non les sons et le rafraîchissement des éléments, la voici :

Le menu de gauche quand à lui, permet d'accéder aux fonctions détaillées du service :

42 / 79

Page 43: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Le dashboard est donc considéré comme un tableau de bord, des widgets peuvent être implémentés pour permettre une précision accrue au niveau de éléments que nous souhaitons superviser en particulier.

Le menu Problems répertorie les états des matériels supervisés, qu'ils soient CRITICAL ou bien UNKNOWN.

Le menu Groups and Tags s'occupe d'afficher tous les éléments supervisés selon leurs impact, leur géolocalisation.

Le menu System permet lui, d'afficher l'état des composants de Shinken.

Allons donc dans le menu Groups and tags :

Shinken supervise ici son propre serveur, Ainsi un seul voyant est au vert, le serveur est actif sur le réseau car répondant aux commandes ping.

43 / 79

Page 44: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Puis nous allons dans le menu Groups and tags>Services groups, dédié aux services :

Par défaut donc, Shinken ne surveille aucun service.

Nous faisons ensuite un tour dans le menu System>Status ressemblant à ceci :

44 / 79

Page 45: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Il existe donc aussi un dashboard graphique comme nous l'avions expliqué qui simplifiie d'une part la lisibilité des interfaces et peut être projeté ou affiché sur un écran en permanence dans une salle pour alerter les administrateurs :

Principe de fonctionnement des commandes

Le fonctionnement de Shinken est donc basé sur des fichiers de configurations en .cfg et est supervisé par une commande ping envoyé à intervalles régulières.

Pour notre exemple nous éditons donc le fichier de déclaration du serveur avec la commande suivante :

nano /etc/shinken/hosts/localhost.cfg

Ici nous changeons le nom en le remplaçant par Serveur Shinken.

45 / 79

Page 46: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous enregistrons nos modifications et nous relançons notre service :

En retournant dans l'interface graphique et en rafraîchissant on aperçoit alors dans le menu que le nom de notre serveur à bien changé :

Nous allons ensuite cliquer sur le nom de notre serveur Shinken :

46 / 79

Page 47: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

L'interface révèle à présent de nombreuses informations tel que le temps depuis que notre serveur est fonctionnel, quand le dernier contrôle à été lancé et quand sera la prochain, ce que retourne le contrôle lancé ainsi que la commande exécutée.

Il est possible en allant plus loin au sein même de Shinken de comprendre son fonctionnement, pour cela il suffit que nous affichions le modèle correspondant à generic-host.cfg :

cat /etc/shinken/templates/generic-hosts.cfg

A part le grand nombre de commandes déjà présentes, il est possible de retrouver la commande exécutée lorsque nous choisissons un monitoring de type generic-host.

On affiche alors la configuration de la commande :

cat /etc/shinken/commands/check_host_alive.cfg

Il est clairement indiqué ici qu'une commande référant un ping et situé dans le dossier des plugins Nagios est adressé à l'hôte avec différents paramètres.

47 / 79

Page 48: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

On repère alors le programme check_ping :

ls /usr/lib/nagios/plugins

Et enfin on teste directement la commande avec l'utilisateur shinken :

/usr/lib/nagios/plugins/ceck_ping -H localhost -w 1000,100 % -c 3000,100 % -p 1

Le résultat fonctionne, cependant cela était uniquement à titre d'exemple, l'interface graphique nous le simplifie.

Il est donc également possible grâce à l'interface graphique de connâitre les commandes lancées, pour cela il nous suffit de cliquer sur notre serveur,

48 / 79

Page 49: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Puis, de cliquer sur le lien de la commande check_host_alive plus bas, qui nous affiche alors :

Il est possible d'en savoir plus sur notre serveur, pour cela nous pouvons le monitorer grâce à SNMP.

Utilisation du protocole SNMP

Il va donc être nécessaire d'activer l'accès au service SNMP que nous devrons installer au préalable sur notre serveur, par défaut il nous sera impossible d'accéder aux informations recensées grâce à ce protocole.

Nous installons donc le package :

Puis nous éditons son fichier de configuration que voici :

49 / 79

Page 50: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Il nous faudra dé-commenter la ligne de boucle locale pour permette la réponse aux requêtes internes :

AgentAdress udp:127.0.0.1:161

Puis dé-commenter la ligne suivante qui nous permettra elle, de répondre aux requêtes extérieures :

# agentAddress udp:161,udp6:[::1]:161

Nous dé-commenterons également la ligne décernée au nom de la communauté SNMP locale :

Nous vérifions enfin l'état du service :

Ici il est en service nous le redémarrons donc avec un restart.

Puis nous changeons d'utilisateur afin de nous retrouver sur le profil de l'utilisateur Shinkenavec un su – shinken.

Nous installons ensuite le module SNMP relatif à Shinken comme suit :

Il serai simplifié alors d'avoir deux consoles afin de pouvoir à la fois gérer les deux profils en même temps.

50 / 79

Page 51: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous repassons alors à l'utilisateur root avec un su – root.

Nous revenons donc à notre fichier localhost.cfg que voici :

Nous lui rajouterons alors le monitorage SNMP en ajoutant ,linux-snmp à la ligne use du fichier de configuration, et nous enregistrons le fichier.

Nous relançons le serveur :

Puis nous retournons dans l'interface graphique de notre serveur pour constater les changements.

Nous cliquons sur notre serveur.

51 / 79

Page 52: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

On observe alors le résultat graphique suivant :

Il est possible de forcer le recheck en sélectionnant tout les hôtes et en cliquant sur recheck (à gauche) :

52 / 79

Page 53: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous cliquons sur l'icône des services pour en avoir la liste, que voici :

Certains résultats ne sont cependant pas rassurant notamment l'état CRITICAL qui persiste.

Nous allons donc tenter de découvrir et de comprendre les problèmes afin de les régler.

Nous cliquons alors sur Log_file_Health le résultat de la ligne output nous retourne alors le problème :

53 / 79

Page 54: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous vérifions ensuite nos journaux de log avec la commande qui suit :

ls /var/log

Nous remarquons alors que le log n'existe pas ce qui nous explique l'état UNKNOWN cetteerreur n'est pas très grave en sois.

Il est alors le possible de régler ce problème en créant sous root un dossier /var/log/rhosts sur notre serveur avec également un fichier remote-hosts.log à l'intérieur. Il faudra alors sûrement vérifier ses attributs.

Il faudra également changer le log qui est supervisé par Shinken situé dans le fichier logFiles_linux.conf lui même se trouvant dans l'arborescence /var/lib/shinken/libexec/ puis nous relancerons Shinken.

Nous retournons maintenant sur l'interface graphique en allant dans le menu services puis NetworkUsage nous survolons alors la ligne output :

54 / 79

Page 55: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Shinken nous indique maintenant que la commande check_netint.pl se trouvant elle même dans le répertoire /var/lib/shinken/libexec/

Cette erreur est courante, nous risquerons donc d'y remédier assez souvent compte tenu des nombreuses mises à jour de Shinken.

Pour cela, nous devons rechercher en ligne le code de la commande, la dernière version datant ici de 2013.

Nous rejoignons donc l'url suivante :

https://github.com/willixix/WL-NagiosPlugins/blob/master/check_netint

Nous copions l'adresse donné pour ensuite pouvoir lancer le téléchargement du programme.

55 / 79

Page 56: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous nous plaçons donc dans le dossier puis nous lançons le téléchargement avec un wget de l'url :

Nous changeons la propriété du programme ensuite, pour que Shinken puisse y accéder :

Puis on attribue les droits du fichier de manière à ce que l’exécution de celui-ci soit autorisée :

Puis nous patientons ou bien lançons un recheck forcé.

56 / 79

Page 57: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous cliquons ensuite sur TimeSync puis nous survolons le résultat de la ligne output :

Shinken nous notifie qu'il ne reçoit pas de réponse du serveur NTP (serveur de temps) Ce serice permettra aux matériels de se synchroniser à l'aide d'une horloge, ce qui peut être utile dans le cas où un service se doit d'être ponctuel.

Nous vérifions dans notre console l'absence du package avec la commande suivante puis installons le package requis :

Lorsque nous lançons alors le recheck nous pouvons observer le résultat sur notre interface.

57 / 79

Page 58: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous retournons sur notre serveur pour apercevoir la représentation graphique comme suit,

Puis nous cliquons sur Services de façon à n'avoir uniquement les services :

Nous comprenons ici que tout les services sont fonctionnels à part le TimeSync en relationavec le service NTP qui est persistant.

58 / 79

Page 59: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous cliquons ensuite sur ImpactGraph puis sur l'icône system du graphe de manière à obtenir une vue différente, une autre représentation :

Puis nous cliquons sur metrics afin d'obtenir les détails du fonctionnement des services :

59 / 79

Page 60: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Une autre vue est également disponible en allant dans Groups and Tags/Services Groups :

71,43 % des services sont donc fonctionnels dans notre cas et 14,29 % ne le sont pas (soit 1 service).

Le Dashboard nous résume également la situation :

60 / 79

Page 61: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Supervision de serveurs sous Linux

Mise en place du serveur sur le réseau

Avant toute mise en place du serveur sur notre réseau, nous allons devoir installer es modules que nous aurons besoin au préalable avant de ne plus avoir accès à internet.

Nous changeons d'utilisateur avec la commande su – shinken

Puis nous installons les modules qui suivent :

Nos modules sont maintenant correctement installés.

Nous vérifions cependant que nous les avons bel et bien.

61 / 79

Page 62: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous passons à l'utilisateur root en faisant su – root.

Et nous relançons le service :

Nous aurons également besoin du package autoconf et du client WMI :

62 / 79

Page 63: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Pour l'installation du client nous aurons besoin de la commande suivante (nous nous plaçons au préalable dans l'arborescence approprié) :

Cette archive nous servira plus tard dans la supervision de Windows avec le-dit client.

On se connecte ensuite à l'outil de gestion des librairies du langage Perl avec la commande :

On installera alors les librairies PERL nécessaires aux commandes WMI.

63 / 79

Page 64: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Cela et rendu possible grâce aux commandes suivantes :

cpan[]>install Number::Formatcpan[]>install Config::IniFilescpan[]>install DateTimecpan[]>install Config::IniFilescpan[]>quit

Par exemple :

Nous téléchargerons également le paquet d'installation de la commande qui sera nécessaire au monitorage des commutateurs et routeurs.

On vérifie le site de l'éditeur pour avoir la version actuelle du programme à télécharger à l'adresse suivante :

https://labs.consol.de/assets/downloads/nagios/check_nwc_health-4.6.1.tar.gz

On se placera ensuite dans le dossier suivant pour effectuer le téléchargement :

64 / 79

Page 65: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

/home/administrateur/Téléchargements

Cette archive sera utilisée plus tard dans la supervision des matériels réseaux.

Raccordement du serveur Shinken à l'infrastructure du réseau

Il nous suffit maintenant de raccorder la machine physique au commutateur COMM puis nous lui attribuerons son adressage définitif au serveur Shinken en nou basant par rapport au schéma de l'infrastructure :

Adresse IP Masque de sous réseau Passerelle

172.16.193.1 255.255.0.0 172.16.193.254

Mise en place de contrôles (sondes) de supervision d'un service

Comprenons le fonctionnement. Shinken est doté de plusieurs modules qui eux mêmes sont complétés par ceux de Nagios que nous avons installé plus tôt.

Les scripts en Python et en Perl sont chargés eux, d'effectuer des contrôles spécifiques sur les matériels composant le réseau.

Ces scripts peuvent être comparés à des sondes, chacune des sondes testera ainsi un état spécifique du matériel en question, par exemple le pourcentage d'occupation d'un CPU.

Nous ne sommes cependant pas obligés de connaître la syntaxe exacte des commandes relatives à Shinken, ce dernier possède de nombreux templates utilisables. Ces modèles sont complétés à chaque fois que nous lançons l'installation de modules.

65 / 79

Page 66: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous allons maintenant nous intéresser au bon fonctionnement de notre serveur SRV1-Linux. Shinken nous permettra alors de vérifier le service http.

Dans la console administrateur de Shinken, nous créons dans un premier temps le fichier de configuration de notre hôte à surveiller que nous éditons ensuite, on écris donc la commande suivante :

nano /etc/shinken/hosts/SRV1-Linux.cfg

Nous enregistrons et quittons le fichier.

Analysons ce dernier pour une meilleure compréhension de ses commandes :

Commandes Fonctionuse Indique quel modèle et/ou template nous souhaitons utiliserhost_name Indique le nom unique de l'hôtegeneric-host Vérifie l'état du serveurhttp Modèle vérifiant l'état du service web du serveuraddress Indique l'adresse IP du serveur

66 / 79

Page 67: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous relaçons à présent arbiter qui rappelons-le, permet de lire et répartir les fichiers de configurations :

Dans l'interface web on vérifie ensuite la présence de nos deux serveurs :

Notre serveur Linux est bien apparu, on constate qu'avec cette configuration, le service web de notre serveur est bien surveillé grâce au mot http figurant dans la colonne services.

Nous selectionnons le menu Groups and tags/Host Tags :

Cette vue nous permet d'obtenir une vue différente des types de supervision en cours.

67 / 79

Page 68: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Si nous arrêtons maintenant le service Apache2 pour simuler par exemple une panne de celui-ci on constate alors que l'état du service http passe en tant que CRITICAL :

service apache2 stop

Et inversement lorsque nous le relançons, il vire alors au vert en tant que OK.

Voici les différents états pouvant être générés :

HOTE SERVICE

UP OK

UNREACHABLE WARNING

DOWN CRITICAL

PENDING PENDING

UNKNOWN UNKNOWN

Nous allons aborder la notion d'impact lorsque notamment un service en dépend d'un autre ou d'un serveur.

On désactive donc notre carte réseau sur le même serveur web:

Ifdown eth0

Notre serveur est donc logiquement inaccessible.

68 / 79

Page 69: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Dans l'interface web nous affichons alors les différents serveurs :

Ici la panne à généré un impact.

Nous naviguons dans les menus jusqu'à Tactical views afin d'avoir la situation :

L'interface nous montre alors que le serveur n'est plus joignable (CRITICAL).

69 / 79

Page 70: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

On va maintenant s'intéresser au serveur Windows ainsi que son serveur FTP.

Dans la console administrateur de notre serveur Shinken nous allons définir un second hôte donc comme précédemment :

nano /etc/shinken/hosts/SRV2-Windows.cfg

Puis nous y déclarons notre serveur (ici le service change pour passer en ftp) :

Nous relançons arbiter :

Nous retournons alors l'interface graphique suivante :

Nos trois serveurs sont maintenant répertoriés.

70 / 79

Page 71: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Nous accédons une fois de plus au menu Groups and tags/Host Tags :

Pour constater alors qu'un nouveau service à bien été ajouté.

Puis au menu minmap pour avoir une synthèse des services :

Le modèle FTP détecte ici bien le modèle de serveur que nous utilisons que nous remarquons grâce à Microsoft FTP service :

71 / 79

Page 72: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Mise en place de contrôles (sondes) de supervision d'un serveur sous Linux via SNMP

Via notre sonde http nous allons compléter notre contrôle du service web par une série de contrôles sur le serveur lui-même. On va donc ici utiliser le module linux-snmp (ce moduleest déjà utilisé par le serveur lui même).

On déclare donc le modèle à 'iuntérieur du fichier suivant :

On enregistre et on quitte.

Hormis la commande ping qui atteint le serveur depuis l'extérieur les contrôles ont ine interaction avec le système, notre serveur se doit donc d'être au courant de cette interaction pour des raisons de sécurité, nos sondes utilisent donc le protocole SNMP que nous configurons à présent sur notre serveur.

Nous retournons sur notre serveur web, et nous éditons le fichier de configuration de SNMP :

Nano /etc/snmp/snmpd.conf

# On commente la ligne suivante# agentAddress udp:127.0.0.1:161

# Puis on décommente la ligne qui suitagentAddress udp:161,udp:[::1]:161

# On commente la ligne de la communauté SNMP par défaut# rocommunity public default -V systemonly

# Et on ajoute en dessous la ligne indquant la communauté du réseau nommé publicrocommunity public 172.16../16

72 / 79

Page 73: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

On redémarre ensuite le service SNMP avec la commande :

service snmpd restart

La communauté SNMP correspond donc au groupe de serveur de supervision qui peuvent accéder au service SNMP en question de notre serveur web.

La lecture est uniquement possible (roccomuinity = read only community), le nom par défaut de la communauté est public.

On vérifie donc sur notre serveur Shinken que le nom de notre communauté est bien public :

On lance ensuite un test de connexion au serveur SRV1-Linux avec la commande suivante :

snmpwalk -v 1 -c public 172.16.193.10

Une longue liste apparaît alors contenant différentes informations obtenues grâce à SNMP,notre serveur SRV1-Linux est donc prêt pour être supervisé.

On relance le processus arbiter :

73 / 79

Page 74: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Dans l'interface web on filtre ensuite l'affichage de manière à avoir uniquement le serveur web concerné :

Notre serveur est bien surveilé.

Lorsque tout les contrôles sont fonctionnels on utilisera une fois de plus le menu minmap pour en avoir une synthèse :

En survolant les services on obtient alors des détails.

74 / 79

Page 75: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Dans le menu Services nous pouvons obtenir les services actuellement surveillés de notre serveur :

Mise en place de contrôles (sondes) de supervision d'un serveur sous Linux via SSH

Shinken permet également la supervision par SSH cela permet de sécuriser l'accès au serveur supervisé en autorisant uniquement notre serveur Shinken à sonder sa cible.

Le service SSH étant déjà installé sur notre serveur SRV1-Linux nous allons créer un jeu declés publique/privée pour l'utilisateur Shinken se trouvant sur notre serveur de supervision.

Puis nous déclarerons notre clé publique sur notre serveur SRV1-Linux également à l'utilisateur Shinken.

75 / 79

Page 76: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

On change donc d'utilisateur sur notre serveur de supervision avec su – shinken.

Puis nous générons un jeu de clés sans passphrase :

Si, pour des raisons de sécurité on décide de rentre une passphrase nous la déclarerons dans le dossier /etc/shinken/resource.d/ssh.cfg de la manière suivante :

$Ssh_KEY_PASSPHRASE$='notre passphrase secrete'

Il faudra ensuite redémarrer le serveur de supervision.

76 / 79

Page 77: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

On copie ensuite notre clé sur notre serveur SRV1-Linux, le mot de passe de l'utilisateur Shinekn nous sera demandé, de la façon suivante :

On repasse en tant que root, su – root, puis on édite le fichier de configuration du serveur web en implantant le module SSH :

On enregistre puis on relanec arbiter.

Nous retournons alors une fois de plus dans l'interface web.

77 / 79

Page 78: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

On constate alors que le module SSH remonte beaucoup plus d'informations que le protocoles SNMP :

Conclusion

Je recommande donc l'utilisation de ce serveur de supervision qui permet de simplifier la reconnaissance de problèmes divers sur l'ensemble d'un parc administré de par son interface graphique intuitive.

Ainsi il est plus simple à un administrateur réseau de gérer ses matériels, de plus nous avons constaté qu'il existe de nombreux moyens de les sonder, libre alors à l'utilisateur de faire son choix.

78 / 79

Page 79: SISR5 - WordPress.com · « Elle a pour but d'apporter une supervision distribuée et hautement disponible facile à mettre en place. Démarrée comme une preuve de concept pour Nagios

Liens à titre indicatifs

http://shinkenlab.io/

https://mespotesgeek.fr/installation-de-shinken-2-0-sur-debian-wheezy

http://blogduyawx.madyanne.fr/installation-de-shinken.html

http://www.aurelien-froment.fr/installation-de-shinken-2-x-sur-debian-7-5/

https://www.monitoring-plugins.org/

http://computerz.solutions/installation-shinken/

http://www.samuelpoggioli.fr/shinken-2-installation-de-pnp4nagios/

79 / 79