1. Gestion des machines virtuelles

====> Dom0 <====

Pour éviter d'engorger le serveur, nous allons désactiver les machines virtuelles qui ne sont plus utiles. Ces machines ne seront pas supprimées et pourront être relancée en cas de besoin

  1. Lister les machines virtuelles actuellement sur le serveur
    # xl list 
  2. Vérifier que les machines suivantes sont dans la liste :
    • Domaine0
    • vmDnsDhcp
    • mail
  3. Pour les autres machines présente dans la liste (vmPxe, vmCloud) :
    1. Fermer la machine virtuelle :
      # xl shutdown NOM_MACHINE
    2. Désactiver son lancement automatique :
      # rm /etc/xen/auto/NOM_MACHINE.pvlinux

Il n'y a donc plus que trois machines virtuelles activées : Domaine0, vmDnsDhcp et mail. Nous allons créer une machine virtuelle pour installer le serveur nagios

  1. A l'aide de la commande xen-create-image, créer une nouvelle machine virtuelle
    • hostname: vmNagios
    • ip: 10.0.x.105
  2. Créer un lien symbolique pour que vmNagios se lance avec le serveur :
    # ln -s /etc/xen/vmCloud.pvlinux /etc/xen/auto/vmCloud.pvlinux
  3. Lancer la machine :
    # xl create /etc/xen/vmCloud.pvlinux

2. Préparation de l'environnement

====> vmNagios <====

Avant de procéder à l'installation de Nagios il est nécessaire de préparer le terrain et d'installer les paquets suivant :

  1. Installation du serveur web (apache) :
    # apt-get installe apache2
  2. Vérifier qu'une page s'affiche sur l'url :
    http://10.0.x.105
  3. Installation du module php :
    # apt-get install libapache2-mod-php5
  4. Redémarrage de apache :
    # systemctl restart apache2
  5. Installation des utilitaires pour faire un "build" :
    # apt-get install build-essential
  6. Installation de la libraire de développement GD :
    # apt-get install libgd2-xpm-dev
  7. Installation de unzip :
    # apt-get install unzip

Il est maintenant nécessaire de créer un utilisateur et des groupes pour le fonctionnement de Nagios :

  1. Créeation d'un utilisateur "nagios" :
    # useradd -m -s /bin/bash nagios
  2. Configuration du password ("nagios") :
    # passwd nagios
  3. Création d'un nouveau groupe nagios command :
    # groupadd nagcmd 
  4. Ajout des utilisateurs nagios et apache au groupe :
    # usermod -a -G nagcmd www-data
    # usermod -a -G nagcmd nagios
    					

3. Installation de Nagios

====> vmNagios <====

Nagios est un logiciel open-source. Pour l'installation nous allons donc récupérer les sources du programme et les compiler.

  1. Créer un répertoire pour le téléchargement :
    # mkdir ~/downloads
    # cd ~/downloads
  2. Télécharger les sources de Nagios :
    # wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz --no-check-certificate
  3. Décompresser le fichier téléchargé :
    # tar xzf nagios-4.1.1.tar.gz
  4. Se rendre dans le répertoire décompressé :
    # cd nagios-4.1.1
  5. Lancer le script de configuration :
    # ./configure --with-command-group=nagcmd
  6. Réaliser la compilation de Nagios :
    # make all
  7. Installer les binaires, scripts, exemple de configuration, commandes :
    # make install
    # make install-init
    # make install-config
    # make install-commandmode

4. Configuration de Nagios

====> vmNagios <====
  1. Ouvrir le fichier de configuration :
    # nano /usr/local/nagios/etc/objects/contacts.cfg
  2. Dans "define contact" modifier l'email "nagios@localhost" :
    email                           votre_email       ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
  3. Configurer l'interface web :
    # mkdir -p /etc/httpd/conf.d/nagios.conf 
    # make install-webconf
  4. Créer l'utilisateur admin pour l'interface web (password : "postfo2016!" ) :
    # htpasswd -c /usr/local/nagios/etc/htpasswd.users postfo2016
  5. Ajouter le fichier de configuration pour le serveur web :
    # cp ~/download/nagios-4.1.1/sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf
    # ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/nagios.conf
  6. Activer la prise en charge des scripts cgi :
    # a2enmod cgi
    # a2enmod cgid
    					
  7. Redémarer le serveur web :
    # systemctl restart apache2

5. Compilation et installation des plugins

====> vmNagios <====
  1. Se rendre dans le repertoire download :
    # cd ~/downloads
  2. Télécharger les plugins :
    # wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
  3. Décompresser l'archive :
    # tar xzf nagios-plugins-2.1.1.tar.gz
  4. Se rendre dans le répertoire :
    # cd nagios-plugins-2.1.1
  5. Lancer le script de configuration :
    # ./configure --with-nagios-user=nagios --with-nagios-group=nagios
  6. Réaliser la compilation :
    # make 
  7. Installer :
    # make install

6. Démarrage de Nagios

====> vmNagios <====
  1. Configurer Nagios pour démarrer automatiquement :
    # ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
  2. Vérifier que les fichiers de configuration de Nagios sont correctes :
    # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  3. Lancer Nagios :
    # /etc/init.d/nagios start

Nagios devrait fonctionner a ce stade ("# /etc/init.d/nagios start"). Il semble pourtant il y avoir un problème entre la version de Debian et la version de Nagios emêchant son lancement ("nagios.serviceFailed to start nagios.service: Unit nagios.service failed to load: No such file or directory"). Il est alors nécessaire de procéder à quelques opérations supplémentaires :

  1. Créer un backup du fichier de lancement de nagios :
    # cp /etc/init.d/nagios /root/init.d.nagios.backup
  2. Remplacer le fichier nagios par le fichier skeleton :
    # cp /etc/init.d/skeleton /etc/init.d/nagios
  3. Editer le fichier :
    # nano /etc/init.d/nagios
  4. Supprimer les lignes :
     DESC="Description of the service"
    DAEMON=/usr/sbin/daemonexecutablename
  5. Ajouter en fin de fichier :
    DESC="Nagios"
    NAME=nagios
    DAEMON=/usr/local/nagios/bin/$NAME
    DAEMON_ARGS="-d /usr/local/nagios/etc/nagios.cfg"
    PIDFILE=/usr/local/nagios/var/$NAME.lock 
  6. Modifier les droits sur le fichier :
    # chmod +x /etc/init.d/nagios
  7. Lancer Nagios :
    # /etc/init.d/nagios start
  8. Se rendre sur l'interface web :
    http://10.0.x.105/nagios
    • Login: postfo2016
    • Password : postfo2016!

7. Monitorer le routeur

====> vmNagios <====
  1. Editer le fichier de configuration de Nagio :
    # nano /usr/local/nagios/etc/nagios.cfg
  2. Supprimer le caractère "#" au début de la ligne :
    #cfg_file=/usr/local/nagios/etc/objects/switch.cfg
  3. Editer le fichier de configuration des switch :
    # nano /usr/local/nagios/etc/objects/switch.cfg
  4. Dans la section "define host", modifier l'adresse :
     address         10.0.x.1               ; IP address of the switch
  5. Modifier le champ "alias" pour refleter le modele de votre routeur
  6. Vous pouvez modifier le champ "hostname" pour refleter le modele de votre routeur. Dans ce cas, il est nécessaire de modifier les "services definitions" pour utiliser ce nouveau hostname.
  7. Vérifier les fichiers de configuration :
    # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  8. Si il n'y a pas d'erreur dans les fichiers de configuration, relancer Nagios :
    # /etc/init.d/nagios restart
  9. Vérifier dans l'interface web que le routeur apparait et qu'il répond au ping

8. Installer le Daemon NRPE

====> Client <====

Pour pouvoir exécuter les différents plugins de Nagios sur les machines clientes, il est nécessaire d'installer le Daemon NRPE et les plugins Nagios.
Le daemon NRPE permettra au serveur Nagios d'exécuter les plugins installé sur la machine cliente

  1. Installer les utilitaires nécessaire à l'installation :
    #apt-get install build-essential libssl-dev
  2. Créer un utilisateur "nagios" avec le mot de passe "postfo2016!" :
    # useradd nagios
    # passwd nagios
  3. Se rendre dans le répretoire downloads :
    # mkdir ~/downloads
    # cd ~/downloads 
  4. Télécharger le plugin nrpe :
    # wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
  5. Décompresser :
    # tar xvf nagios-plugins-2.1.1.tar.gz
  6. Ouvrir le repertoire décompressé :
    # cd nagios-plugins-2.1.1
  7. Configurer l'installation :
    # ./configure
  8. Lancer la compilation :
    # make
  9. Installer les différents composants :
    # make install
  10. Modifier les permissions sur le répertoire de plugins :
    # chown nagios.nagios /usr/local/nagios
    # chown -R nagios.nagios /usr/local/nagios/libexec
  11. Installer xinetd :
    # apt-get install xinetd
  12. Télécharger le daemon nrpe :
    # cd ~/downloads
    # wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
  13. Décompresser :
    # tar xvf nrpe-2.15.tar.gz
  14. Ouvrir :
    # cd nrpe-2.15
  15. Configurer :
    # ./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu/
  16. Compiler:
    # make all
  17. Installer :
    # make install-plugin
    # make install-daemon
    # make install-daemon-config
    # make install-xinetd
  18. Ouvrir le fichier nrpe de xinetd :
    # nano  /etc/xinetd.d/nrpe 
  19. Ajouter l'url du serveur Nagios :
    only_from = 127.0.0.1 localhost 10.0.x.105
  20. Ouvrir le fichier de configuration des services :
    # nano /etc/services 
  21. Ajouter le daemon en fin de fichier :
    nrpe            5666/tcp                 NRPE
  22. Relancer xinetd :
    # systemctl restart xinetd 
  23. Vérifier localement si le daemon est activé :
    # netstat -at | grep nrpe
    tcp        0      0 *:nrpe                      *:*                         LISTEN
  24. Vérifier le bon fonctionnement du daemon :
    # /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
    NRPE v2.15
  25. Appeler un plugin Nagios :
    # /usr/local/nagios/libexec/check_nrpe -H localhost -c check_total_procs

9. Configuration du serveur Nagios pour utiliser NRPE

====> vmNagios <====
  1. Télécharger et décompresser nrpe :
    # cd /root/
    # wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
    # tar xzf nrpe-2.15.tar.gz
    # cd nrpe-2.15
  2. Installer libssl-dev :
    # apt-get install libssl-dev
  • Compiler et installer :
    # ./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu
    # make
    # make install-daemon
  • Vérifier le daemon NRPE à distance :
    #  /usr/local/nagios/libexec/check_nrpe -H 10.0.x.ip_client
    NRPE v2.15
  • Si check_nrpe n'est pas disponible :
    1. Installer le plugin nrpe :
      # apt-get install nagios-nrpe-plugin
    2. Vérifier la présence de nrpe :
      # cd /usr/lib/nagios/plugins/
      # ls
      Le fichier check_nrpe doit être présent
    3. Créer un lien symbolique pour ajouter le plugin a NOTRE installation de Nagios :
      # ln -s /usr/lib/nagios/plugins/check_nrpe /usr/local/nagios/libexec/check_nrpe
      									
    4. Retester :
      #  /usr/local/nagios/libexec/check_nrpe -H 10.0.x.ip_client
  • 10. Ajouter les clients sur le serveur Nagios

    ====> vmNagios <=====
    1. Créer les deux fichiers :
      # cd /usr/local/nagios/etc/
      # touch hosts.cfg
      # touch services.cfg
      							
    2. Ajouter ces fichiers a la configuration de Nagios :
      1. Editer le fichier de configuration:
        # nano /usr/local/nagios/etc/nagios.cfg
      2. Ajouter les deux lignes comme indiqué (après #You can specify...):
        # You can specify individual object config files as shown below:
        cfg_file=/usr/local/nagios/etc/hosts.cfg
        cfg_file=/usr/local/nagios/etc/services.cfg
    3. Ouvrir le fichier hosts.cfg :
      # nano /usr/local/nagios/etc/hosts.cfg
    4. Ecrire dans le fichier (remplacer host_name, alias et address) :
      ## Default Linux Host Template ##
      define host{
      name                            linux-box               ; Name of this template
      use                             generic-host            ; Inherit default values
      check_period                    24x7        
      check_interval                  5       
      retry_interval                  1       
      max_check_attempts              10      
      check_command                   check-host-alive
      notification_period             24x7    
      notification_interval           30      
      notification_options            d,r     
      contact_groups                  admins  
      register                        0                       ; DONT REGISTER THIS - ITS A TEMPLATE
      }
      
      ## Default
      define host{
      use                             linux-box               ; Inherit default values from a template
      host_name                       tecmint		             ; The name we're giving to this server
      alias                           Machine de ????          ; A longer name for the server
      address                         10.0.x.IP_CLIENT         ; IP address of Remote Linux host
      }
      
    5. Editer le fichier services.cfg :
      # nano  /usr/local/nagios/etc/services.cfg
    6. Ajouter le contenu suivant (remplacer "tecmint" par le host_name indiqué dans le fichier hosts.cfg) :
      define service{
              use                     generic-service
              host_name               tecmint
              service_description     CPU Load
              check_command           check_nrpe!check_load
              }
      
      define service{
              use                     generic-service
              host_name               tecmint
              service_description     Total Processes
              check_command           check_nrpe!check_total_procs
              }
      
      define service{
              use                     generic-service
              host_name               tecmint
              service_description     Current Users
              check_command           check_nrpe!check_users
              }
      
      define service{
              use                     generic-service
              host_name               tecmint
              service_description     SSH Monitoring
              check_command           check_nrpe!check_ssh
              }
      
      define service{
              use                     generic-service
              host_name               tecmint
              service_description     FTP Monitoring
              check_command           check_nrpe!check_ftp
              }
       
    7. Editer le fichier de command de NRPE :
      # nano /usr/local/nagios/etc/objects/commands.cfg
    8. Si elle n'est pas présente, ajouter la commande suivante en fin de fichier :
      
      define command{
              command_name check_nrpe
              command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
              }
    9. Vérifier qu'il n'y a pas d'erreurs dans les fichiers de configuration :
      # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
    10. Si il n'y a pas d'erreurs, redémarrer nagios :
      # systemctl restart nagios
    11. Se connecter à l'interface web pour voir les clients

    Monitorer Windows

    ===>VirtualBox Windows<===
    1. Depuis Windows, télécharger nscplus : http://sourceforge.net/projects/nscplus/
    2. Lancer l'installation :
      • Allowed hosts : 10.0.x.105
      • NSClient password : postfo2016!
      • Enable common check_plugin
      • Enable NRPE server

    Configurer Nagios pour gérer windows

    ====> vmNagios <=====
    1. Editer le fichier de configuration nagios windows :
      # nano /usr/local/nagios/etc/objects/windows.cfg
    2. Mettre à jour les champs "host_name","alias" et "address" pour l'ip de la machine virtuelle windows (10.0.x.x)
    3. Si vous avez modifier le "host_name", mettre à jour la définition des services pour utiliser le même host_name
    4. Editer le fichier de configuration de Nagios :
      # nano /usr/local/nagios/etc/nagios.cfg
    5. Décommenter la ligne (retirer le # en début de ligne ) pour obtenir le résultat :
      # Definitions for monitoring a Windows machine
      cfg_file=/usr/local/nagios/etc/objects/windows.cfg
    6. Vérifier la configuration de nagios :
      /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
    7. Si il n'y a pas d'erreur, relancer Nagios :
      systemctl restart nagios
    8. Se connecter à l'interface web et vérifier la présence de l'host

    Monitoring du serveur

    Relance la vmCloud. En t'inspirant du travail effectué pour monitorer les clients linux, réalise la configuration nécessaire pour monitorer vmCloud.