Dans ce tutorial, nous allons apprendre à implémenter la solution Nagios comme outil de supervision.





0x01. PRE-REQUIS


- Les sources I386 du serveur Windows
- Un client ssh (putty) sur le poste de travail
- L'application NSClient ++





0x02. INSTALLATION PARTIE SERVEUR


Il est impératif d'installer un soft coté serveur afin que le serveur de supervision puissent récupérer les informations du serveur windows.

Pour cela on installe l'application " NSClient ++ " :


1.   Ramener le dossier NSClient++ qui se trouve dans P:/SOFTWARE/Outils/Réseau/supervision
sur le serveur Windows dans D:/Sidetrade/STE/Supervision. Le dossier de configuration est déjà configuré,
il est n'est pas nécessaire de le modifié. 
2.   Ouvrir une fenêtre DOS et lancer l'exécutable : " NSClient++.exe /install " 
/files/tutoriels/nagios/admin_nagios_00.jpg




0x03. NSCLIENT++


3.   Ouvrir la console de services et lancer le service " Nsclientpp :  
/files/tutoriels/nagios/admin_nagios_01.jpg

Suite à l'installation de l'application, on peut vérifié que le service est démarré et est en attente de connexion sur le port 1248. Ouvrir une console MSDOS et lancer la commande : netstat -an | find " LISTENING "


/files/tutoriels/nagios/admin_nagios_02.jpg




0x04. SNMP


Il est nécessaire d'installer des nouveaux composant sur le serveur Windows afin que le serveur de supervision puisse récupérer les trappes snmp. Pour cela il faut se prémunir à l'avance des sources I386 du serveur.


1.   Aller dans panneau de configuration > ajout/suppression de programme 
> Ajouter des composant > Outils de gestion et d'analyse >SNMP 
/files/tutoriels/nagios/admin_nagios_03.jpg

Poursuivre la fin de l'installation en indiquant le chemin si demandé, des sources I386


2.   Ouvrir une console de services, et rechercher le service snmp. 
Puis faire un clic droit sur le services afin d'accéder aux propriétés du services. 
/files/tutoriels/nagios/admin_nagios_04.jpg

La configuration du service est la suivante :

- Onglet Général : le type de démarrage est automatique
- Onglet Connexion : L'ouverture de session se fait avec un compte système local. Le profil courant n'est pas à modifier
- Onglet Agent : il faut cocher toutes les cases. Cela permet de récupérer des trappes snmp aussi bien physique applicative â��
- Onglet Sécurité : La communauté doit être public et seulement en lecture seule. Les paquets peuvent être accepté de n'importe quel hôte



Le autres onglets ne sont pas à modifier, leur configuration est correct par rapport à l'utilisation que nous en faisons actuellement.

On peut vérifier que le service est lancé en vérifiant que le port 161 est bien écoute en UDP : (netstat â��an)


/files/tutoriels/nagios/admin_nagios_05.jpg




0x05. PARAMÉTRAGE DE NAGIOS SUR LE SERVEUR DE SUPERVISION


Avant de commencer la configuration de nagios pour notre nouveau serveur, vous devez préalablement récoltés quelques informations sur votre serveur. A savoir :

- Le nombre de disque dur
- Service web avec ou sans certificat

Sur votre poste client, lancer l'application " putty " ou votre client ssh favori. A travers cette documentation, j'utiliserais putty soft léger et gratuit.
Une fois installer lancer une connexion en root sur le serveur de supervision qui est STVISION (192.168.100.60). Les mots de passes sont fournis dans les documents STE.


/files/tutoriels/nagios/admin_nagios_06.jpg

login as: root
root@192.168.100.61's password:
Last login: Thu Jul  5 10:38:58 2007 from 192.168.200.60
Linux stvision 2.6.16-2-686 #1 Sat Jul 15 21:59:21 UTC 2006 i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
stvision:~# 

3.1 NAGIOS

Une fois connecté on peut passer à la modification de la configuration de nagios pour prendre en compte notre nouveau serveur.
Pour cela il faut aller dans le répertoire /etc/nagios/ :


stvision:~# cd /etc/nagios/
stvision:/etc/nagios# 

Ce dossier contient tous les fichiers de configuration nécessaire à la configuration de nagios :


stvision:/etc/nagios# ls -al 
total 344
drwxr-xr-x  5 nagios www-data   4096 2007-07-03 14:20 .
drwxr-xr-x 71 root   root       4096 2007-07-03 11:03 ..
-rw-r--r--  1 nagios www-data   1523 2006-11-16 00:05 apache.conf
-rw-------  1 nagios nagios     2407 2007-04-16 14:48 .bash_history
-rw-r--r--  1 root   root      11434 2007-04-17 11:46 cgi.cfg
-rw-r--r--  1 nagios www-data   3200 2007-06-06 16:51 checkcommands.cfg
-rw-r--r--  1 nagios www-data   1583 2007-04-18 09:07 contactgroups.cfg
-rw-r--r--  1 nagios www-data   1989 2007-04-17 14:41 contacts.cfg
-rw-r--r--  1 nagios www-data   1662 2006-11-16 00:08 dependencies.cfg
-rw-r--r--  1 nagios www-data   2256 2006-11-16 00:08 escalations.cfg
-rw-r--r--  1 root   root       6497 2007-06-06 18:09 hostextinfo.cfg
-rw-r--r--  1 nagios www-data   3213 2007-07-03 11:04 hostgroups.cfg
-rw-------  1 nagios www-data  20174 2007-07-03 11:03 hosts.cfg
-rw-r-----  1 nagios www-data     26 2006-12-08 11:40 htpasswd.users
drwxr-xr-x  2 root   root       4096 2007-03-09 15:48 image
-rw-r--r--  1 nagios www-data  13544 2006-11-16 00:08 minimal.cfg
-rw-r--r--  1 nagios www-data   5327 2006-11-16 00:08 misccommands.cfg
-rw-r--r--  1 nagios www-data  21437 2006-12-08 12:03 nagios.cfg
-rw-r-----  1 nagios www-data   3065 2006-11-16 00:08 resource.cfg
-rw-r--r--  1 root   root        141 2007-04-17 14:39 serviceextinfo.cfg
-rw-r--r--  1 nagios www-data 181491 2007-07-03 14:20 services.cfg
drwxr-xr-x  2 nagios www-data   4096 2007-03-30 15:32 .ssh
drwxr-xr-x  2 nagios www-data   4096 2006-12-08 12:03 stylesheets
-rw-r--r--  1 nagios www-data   1589 2007-04-13 12:11 timeperiods.cfg
-rw-------  1 nagios nagios     1924 2007-03-30 17:46 .viminfo
stvision:/etc/nagios# 

Les fichiers que nous allons modifiés sont les suivants :

- hosts.cfg
- hostgroups.cfg
- services.cfg

Commençons donc la modification de STVISION :





0x06. NAGIOS - HOSTS.CFG


On doit tout d'abord déclarer notre nouveau serveur. Pour cela nous allons éditer avec " vim " le fichier hosts.cfg :


stvision:/etc/nagios# vi hosts.cfg 

Aller à la fin du fichiers et copier le dernier bloc " define host " et le re-copier en dessous en modifiant le " host_name ", " l'alias " et " l'address ".


/files/tutoriels/nagios/admin_nagios_07.jpg

Dans notre exemple, on a copié la configuration de DEMOPROD pour déclarer TEST, notre nouveau serveur.
Une fois la configuration du fichier modifiée, on peut relancer le service nagios.


stvision:/etc/nagios# /etc/init.d/nagios stop; /etc/init.d/nagios start
Stopping nagios monitoring daemon: nagios.
Starting nagios monitoring daemon: nagios.
stvision:/etc/nagios#  

Si vous avez des erreurs après avoir lancé cette commande, c'est que la modification du fichier hosts c'est mal faite. Il faut alors analyser les erreurs renvoyées par nagios et re-modifier le fichier " hosts.cfg " en conséquence.

Si tout c'est bien passé, en allant sur l'url http://192.168.100.60/nagios et en cliquant sur " Host Detail ", vous devriez voir votre nouveau serveur qui en cours de monitoring :


/files/tutoriels/nagios/admin_nagios_08.jpg




0x07. NAGIOS - HOSTGROUP.CFG


Une fois notre machine déclarée au niveau de hosts.cfg, il faut la rajouter dans un groupe. Cette modification se fait au niveau du fichier " hostgroups.cfg ". De la même façon, il faut éditer le fichier " hostgroups.cfg "


define hostgroup{
        hostgroup_name  gateways
        alias           Routers and Gateways
        contact_groups  router-admins
        members         gw
        }

define hostgroup{
        hostgroup_name  FRONTAUX DRP
        alias           SERVEURS FRONTAUX
        contact_groups  router-admins
        membres         SRVF01,SRVF02,SRVF04,SRVF06,SRVF07,SRVF08,SRVF11,SRVF13,
            SRVF15,SRVF17,SRVF17,SRVF18,SRVF19,SRVF20,SRVF21,SRVF03,
            SRVF22,SRVF23,SRVF10,SRVF24, DEMOPROD 
        }

define hostgroup{
        hostgroup_name  DORSAUX DRP
        alias           SERVEURS DE BASES DE DONNEES
        contact_groups  router-admins
        members         SRVB05,SRVB06,SRVB07,SRVB08,BCKP01,SRVB09,SRVB10
        }

define hostgroup{
        hostgroup_name  FTP DRP
        alias           SERVEURS DE FICHIERS
        contact_groups  router-admins
        membres         FILE2,FILE3
        } 

Dans le cas présent notre serveur de test est un frontal. Il faut donc rajouter " TEST " à la suite de DEMOPROD .


        members         SRVF01,SRVF02,SRVF04,SRVF06,SRVF07,SRVF08,SRVF11,
                  SRVF13,SRVF15,SRVF17,SRVF17,SRVF18,SRVF19,SRVF20,
                  SRVF21,SRVF03,SRVF22,SRVF23,SRVF10,SRVF24, DEMOPROD ,TEST
        } 

Pareillement, on relance le service nagios.


stvision:/etc/nagios# /etc/init.d/nagios stop; /etc/init.d/nagios start
Stopping nagios monitoring daemon: nagios.
Starting nagios monitoring daemon: nagios.
stvision:/etc/nagios# 

On vérifie si il n'y a pas d'erreurs. Dans le cas contraire on revient sur notre fichier de configuration, sinon on peut vérifier que notre serveur, a bien était ajouté au groupe, en allant sur le site dans " Status Overview "


/files/tutoriels/nagios/admin_nagios_09.jpg




0x08. NAGIOS - SERVICES.CFG


On peut à présent passer à la configuration des services. Il faut éditer le fichier " services.cfg ".
En fonction du nombre de disque dur et de votre service web, vous devrez adapter votre bloc de configuration.

De la même manière que pour la modification du fichier " hosts.cfg ", il faut copier un bloc de configuration existant, et le recopier à la fin du fichier en modifiant le champ du " host-name "


Configuration standard d'un Windows 2000 serveur avec des services STNV3 :


define service{
        use                             generic-service         ; Name of service template to use

        host_name                        DEMOPROD 
        service_description             PING
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  router-admins
        notification_interval           240
        notification_period             24x7
        notification_options            c,r
        check_command                   check_ping!100.0,20%!500.0,60%
        }

define service{
       use                             generic-service         ; Name of service template to use

       host_name                        DEMOPROD 
       service_description              HTTP 
       is_volatile                     0
       check_period                    workhours
       max_check_attempts              3
       normal_check_interval           5
       retry_check_interval            1
       contact_groups                  router-admins
       notification_interval           120
       notification_period             24x7
       notification_options            w,u,c,r 
       check_command                   check_http
       }

define service{
        use                             generic-service         ; Name of service template to use

        host_name                        DEMOPROD 
        service_description             DISK C
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  router-admins
        notification_interval           240
        notification_period             24x7
        notification_options            c,r
        check_command                   check_disque_nt2!C!90!95
        }

define service{
        use                             generic-service         ; Name of service template to use

        host_name                        DEMOPROD 
        service_description             DISK D
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  router-admins
        notification_interval           240
        notification_period             24x7
        notification_options            c,r
        check_command                   check_disque_nt2!D!90!95
        }


define service{
        use                             generic-service         ; Name of service template to use

        host_name                        DEMOPROD 
        service_description             OUT_SCH
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  router-admins
        notification_interval           240
        notification_period             24x7
        notification_options            c,r
        check_command                   check_process_ntv2!out_sch.exe
        }


define service{
        use                             generic-service         ; Name of service template to use

        host_name                        DEMOPROD 
        service_description             OUT_MAIL_ENV
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  router-admins
        notification_interval           240
        notification_period             24x7
        notification_options            c,r
    check_command                   check_process_ntv2!OUT_MAIL_ENV.ex
        }


define service{
        use                             generic-service         ; Name of service template to use

        host_name                        DEMOPROD 
        service_description             OUT_LOG_DEMON
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  router-admins
        notification_interval           240
        notification_period             24x7
        notification_options            c,r
        check_command                   check_process_ntv2!OUT_LOG_DEMON.e
        }



define service{
        use                             generic-service         ; Name of service template to use

        host_name                        DEMOPROD 
        service_description             STF_ASYN
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  router-admins
        notification_interval           240
        notification_period             24x7
        notification_options            c,r
        check_command                   check_process_ntv2!STF_ASYN.exe
        }


define service{
        use                             generic-service         ; Name of service template to use

        host_name                        DEMOPROD 
        service_description             UPTIME
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  router-admins
        notification_interval           240
        notification_period             24x7
        check_command                   check_uptime_ntv2
        } 

Après avoir recopié la configuration à la fin de notre fichier, il faut modifié les champs qui apparaissent en gras et en italique plus haut. Dans notre exemple, on remplacera DEMPROD par TEST.
Il faut ensuite ajuster le nombre de disque. Dans le cas présent notre serveur possède 2 disques, C et D. Si votre serveur possède un disque E supplémentaire, vous devrez ajouter un bloc " define services " à la suite de votre bloc de disque D comme ceci :


define service{
        use                             generic-service         ; Name of service template to use

        host_name                       TEST
        service_description             DISK D
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  router-admins
        notification_interval           240
        notification_period             24x7
        notification_options            c,r
        check_command                   check_disque_nt2!D!90!95
        }
define service{
        use                             generic-service         ; Name of service template to use

        host_name                       TEST
        service_description             DISK E
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  router-admins
        notification_interval           240
        notification_period             24x7
        notification_options            c,r
        check_command                   check_disque_nt2!E!90!95
        } 

Il faut ensuite modifié notre bloc service pour le web. :
- Dans le cas d'un serveur web, on laissera " check_http ".
- Dans le cas d'un serveur web avec un certificat, on remplacera " check_http " par " check_http1 ". Et " HTTP " par " HTTPS " (Voir configuration de SRVF24)


define service{
       use                             generic-service         ; Name of service template to use

       host_name                       SRVF24
       service_description             HTTPS
       is_volatile                     0
       check_period                    workhours
       max_check_attempts              3
       normal_check_interval           5
       retry_check_interval            1
       contact_groups                  router-admins
       notification_interval           120
       notification_period             24x7
       notification_options            w,u,c,r
       check_command                   check_http1
       } 

Après avoir enregistré et fermé le fichier " services.cfg ". On relance le service nagios.


stvision:/etc/nagios# /etc/init.d/nagios stop; /etc/init.d/nagios start
Stopping nagios monitoring daemon: nagios.
Starting nagios monitoring daemon: nagios.
stvision:/etc/nagios# 

On vérifie si il n'y a pas d'erreurs. Dans le cas contraire on revient sur notre fichier de configuration, sinon on peut vérifier que notre serveur, a bien était ajouté au groupe, en allant sur le site dans " Service Detail "


/files/tutoriels/nagios/admin_nagios_10.jpg




0x09. PARAMÉTRAGE DE CACTI SUR LE SERVEUR DE SUPERVISION


La configuration de " Cacti " se fait sur le site à cette adresse à cette adresse http://192.168.100.61/cacti . Les comptes pour se connecter au site se trouvent dans les documents STE.
Pour configurer un nouveau serveur dans Cacti, vous devez préalablement installer le service snmp sur le serveur Windows.





0x010. CACTI - DÉCLARATION DE LA MACHINE


Une fois authentifié en administrateur, il faut :


1- Cliquer sur devices


/files/tutoriels/nagios/admin_nagios_11.jpg

2- Dans le type, choisir Windows 2000/XP Host


/files/tutoriels/nagios/admin_nagios_12.jpg

3- Puis cliquer sur Add


/files/tutoriels/nagios/admin_nagios_13.jpg

La configuration d'une nouvelle machine se présente comme ceci :


/files/tutoriels/nagios/admin_nagios_14.jpg

4- Terminer en cliquant sur " create "


/files/tutoriels/nagios/admin_nagios_15.jpg

Après avoir ajouter notre nouvelle machine, on peut vérifié que le serveur de supervision récupère bien des trappes snmp en vérifiant le message suivant :


/files/tutoriels/nagios/trappes_snmp.png

A cette étape, si tout c bien passé, notre machine est déclaré au niveau de Cacti. Il suffit maintenant de créer les graphes pour notre nouveau serveur.





0x011. CACTI - CRÉATION DES GRAPHES


1- Cliquer sur devices


/files/tutoriels/nagios/admin_nagios_17.jpg

2- Dans " description, choisir la machine ajouté


/files/tutoriels/nagios/admin_nagios_18.jpg

3- Puis, cliquez sur " Create Graphs for this Host "


/files/tutoriels/nagios/admin_nagios_19.jpg

Après avoir cliquer sur " create Graphs for this host ", la page suivante nous propose les différents éléments du serveur que nous pouvons monitorer (disque, cpu, carte réseaux, services)


4- Sélectionner les éléments à grapher


/files/tutoriels/nagios/admin_nagios_20.jpg

Après avoir ajouter notre nouvelle machine, on peut vérifié que le serveur de supervision récupère bien des trappes snmp en vérifiant le message suivant :


/files/tutoriels/nagios/trappes_snmp.png

5- Terminer en cliquant sur " create "


/files/tutoriels/nagios/admin_nagios_21.jpg

Après avoir valider en cliquant sur " create " l'invite vous demandera quels sont le couleurs que vous vous voulez pour chaque graphe :


/files/tutoriels/nagios/admin_nagios_22.jpg

Sélectionner la couleur pour votre graphe puis cliquer sur create. On peut vérifié que l'opération s'est bien effectué à travers le message :


/files/tutoriels/nagios/admin_nagios_23.jpg

Il faut ensuite cliquer en bas à droite sur " create "
A présent nos graphes sont créés. Le serveur de supervision va commencer à récupérer les trappes snmp sur notre serveur, afin de les stocker dans la base " mysql "et les restituer sur l'écran de monitoring. Il nous reste plus qu'à rajouter notre serveur dans le groupe de serveur déjà existant, afin de pouvoir visualiser nos graphes pour notre serveur " TEST ".





0x012. CACTI - INTRODUIRE LE SERVEUR DANS L'ARBRE DES GRAPHES


1- Cliquer sur " Graph Trees "


/files/tutoriels/nagios/admin_nagios_24.jpg

2- Choisir le groupe du nouveau serveur


/files/tutoriels/nagios/admin_nagios_25.jpg

3- Ajouter le nouveau serveur à la liste existante


/files/tutoriels/nagios/admin_nagios_26.jpg

4- Choisir " host " comme type


/files/tutoriels/nagios/admin_nagios_27.jpg

5- Dans le menu déroulant, sélectionner le serveur


/files/tutoriels/nagios/admin_nagios_28.jpg

6- Puis cliquer sur " create "


/files/tutoriels/nagios/admin_nagios_29.jpg

Voila, la configuration de notre outils Cacti est terminé. On peut vérifier que le nouveau serveur graphe bien :


/files/tutoriels/nagios/admin_nagios_30.jpg



   =>   Écrit par : Kayne, le 03 juillet 2015


 
Mots clés :  
  network 
  
  monitoring 
    >   Articles connexes :

GitVuln



HTTP Server, tell me who you are ?


Discuter avec un serveur web *apparement* muet ? Voici comment faire...

5209980