Supervision Exchange avec Centreon (NRPE/NSClient) Part 1

14

Dans ce chapitre, nous allons voir comment mettre en la supervision d’un serveur Exchange 2016 via le protocole NRPE. Nous allons commencer par installer et configurer NSClient++ sur notre serveur Exchange, puis nous verrons comment superviser fonctionne la supervision via le protocole NRPE depuis Centreon.

Ce qu’il vous faut :

Mais aussi :

Quelques sources Github sympa :

N’oubliez pas de superviser le serveur Windows lui même : supervision-exchange-server-2016-mode-actif/

Installation complète Exchange Server 2016

Supervision Exchange via NRPE

NSClient++ est un agent de supervision multiplateforme pour Windows. Conçu à l’origine pour Nagios, depuis, il a beaucoup évolué en un agent de monitoring complet qui peut être utilisé avec de nombreux outils de monitoring (Centreon, Icinga, Naemon, OP5, NetEye, Shinken…etc). Il supporte de nombreux protocoles de supervision :

  • NRPE : Nagios Remote plugin Executor : est un protocole centré Nagios pour collecter les métriques distantes.
  • NSCA : Nagios Service Check Acceptor : est un protocole centré Nagios pour la soumission des résultats.
  • REST est le protocole natif NSClient++ qui vous permet d’interagir avec NSClient++ sur le protocole http(s).
  • NRDP est un remplacement php pour NSCA développé par Nagios.
  • SMTP : permet d’envoyer des e-mails directement depuis NSClient+++.

source : https://docs.nsclient.org/

Installation NSClient++

Lancer l’installation de NSClient++ sur votre serveur Exchange.

Installation NSClient++ Exchange Server

  • Cliquez sur next
  • Choisir Generic
  • Choisir Typical
  • Allowed hosts : 127.0.0.1,172.16.1.6 Ajouter à la suite l’adresse IP de votre serveur Centreon
  • Choisir un mot de passe : Pour l’accès à l’interface Web NSClient.
  • Cochez les cases comme sur l’image ci-dessous :
    • Enable common check plugin
    • Enable nsclient server
    • Enable NRPE server
      • Safe mode
    • Enable NSCA client
    • Enable Web server

Remarque : il est possible de modifier ces informations après l’installation !

  • Cliquez sur next
  • Cliquez sur install
  • Cliquez sur finish
  • Redémarrer s’il le demande.

Configuration NSClient++

Le fichier de configuration se trouve dans : C:\Program Files\NSClient++\nsclient.ini. Voici les paramètres par défaut, j’ai supprimé les commentaires et les lignes vides pour y avoir clair :

Configuration file NSClient++ Exchange

Remarque : après chaque modification, vous devez redémarrer le service NSClient++

Interface Web NSClient++

Il est super simple de gérer les modules NSClient depuis l’interface Web. Pour se connecter à l’interface Web NSClient++ :

https://localhost:8443/
  • Sous Firefox:
    • Cliquez sur Avancé
    • Cliquez sur Ajouter une exception et confirmer
  • Sous IE :
    • Cliquez sur Poursuivre…
  • Mot de passe : PiXelabs c’est le mot de passe renseigné lors de l’installation.

 –  désinstaller le module  –    +  installer le module

Interface Web NSClient++

Remarque : à la première connexion, il se peut qu’une alerte (icône rouge) s’afficher à côté du menu Settings : il faut appliquer la configuration la première fois, suivre simplement l’icône rouge.

  • Cliquez sur Settings
  • Cliquez en suite sur Unsaved Changes ) droite puis sur Save Changes (save file)

Une fois la configuration appliquée, d’autres modules seront donc ajoutés dans le fichier de configuration nsclient.ini :

  • [/settings/external scripts/scripts]
  • [/settings/external scripts/alias]
  • [/settings/external scripts/wrappings]
  • [/settings/eventlog/real-time/filters]
  • [/settings/WEB/server]

Si vous avez déjà NSClient installé, mais sans l’interface Web, vous pouvez activer simplement le mode web :

  • Lancer une invite de commande (CMD)
  • Se positionner dans le répertoire NSClient++ et activer le mode web
C:\Users\Administrateur.PIXELABS#> cd "\Program Files\NSClient++"
...
C:\Program Files\NSClient++#> nscp web install
Enabling WEB from (currently not supported): 127.0.0.1,172.16.1.6
HTTP(s) is enabled using C:\Program Files\NSClient++/security/certificate.pem.
Point your browser to: 8443
...
...
C:\Program Files\NSClient++#> net stop nscp
Le service NSClient++ (x64) s’arrête..
Le service NSClient++ (x64) a été arrêté.
...
...
C:\Program Files\NSClient++#> net start nscp
Le service NSClient++ (x64) démarre.
Le service NSClient++ (x64) a démarré.
...
...
C:\Program Files\NSClient++>

Configuration Module NRPE

Nous allons maintenant passer à la configuration du module NRPE. Lancez une invite de commande (CMD) :

Se positionner sur le dossier NSClient++ :

C:\Users\Administrateur.PIXELABS#> cd "\Program Files\NSClient++"

Lancez les commandes suivantes l’une après l’autre :

C:\Program Files\NSClient++#> nscp settings --path /settings/NRPE/server --key insecure --set true
C:\Program Files\NSClient++>
C:\Program Files\NSClient++#> nscp settings --path /settings/NRPE/server --key "use ssl" --set true
C:\Program Files\NSClient++>
C:\Program Files\NSClient++#> nscp settings --path /settings/NRPE/server --key "ssl options" --set ""
C:\Program Files\NSClient++>
C:\Program Files\NSClient++#> nscp settings --path /settings/NRPE/server --key "verify mode" --set ""
C:\Program Files\NSClient++>

Vous pouvez maintenant visualiser/modifier ses paramètres depuis le fichier nsclient.ini :

Configuration NRPE NSClient Exchange Server

Voici l’état de mon fichier nsclient.ini : Télécharger. J’ai rien modifié d’autres dans ce fichier à part NRPE, le reste a été rajouté automatiquement après la première connexion à l’interface Web.

Remarque : Vous pouvez remplacer votre fichier nsclient.ini par le mien sans problème (modifier l’adresse IP et le mot de passe) puis redémarrer le service NSClient++.

Centreon Plugin NRPE

Nous allons utiliser le plugin Centreon suivant :

apps::protocols::nrpe::plugin

Pour tester la supervision, nous allons nous servir des alias déjà configurés automatiquement par NSClient dans le fichier nscNSClient.ini sous [/settings/external scripts/alias]

Alias et Scripts PowerShell NSClient Exchange 2016

Check-CPU

Supervision du CPU via le protocole NRPE :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::protocols::nrpe::plugin --mode=query --custommode=nrpe --hostname=serv-exchange --command=alias_cpu
OK CPU Load ok.|'5m'=3%;80;90 '1m'=2%;80;90 '30s'=3%;80;90
[root@centreon plugins]#

Check-Memory

Supervision de la mémoire RAM :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::protocols::nrpe::plugin --mode=query --custommode=nrpe --hostname=serv-exchange --command=alias_mem
OK: physical memory: Total: 63.9G - Used: 34.4G (53%) - Free: 29.5G (47%), virtual memory: Total: 128T - Used: 89.9M (0%) - Free: 128T (100%), paged bytes: Total: 73.4G - Used: 40.5G (55%) - Free: 32.9G (45%), page file: Total: 73.4G - Used: 40.5G (55%) - Free: 32.9G (45%)|'physical memory %'=53%;80;90 'physical memory'=34.36GB;51.12;57.52;0;63.91 'virtual memory %'=0%;80;90 'virtual memory'=89.91MB;107374182.3;120795955.09;0;134217727.88 'paged bytes %'=55%;80;90 'paged bytes'=40.47GB;58.72;66.07;0;73.41 'page file %'=55%;80;90 'page file'=40.47GB;58.72;66.07;0;73.41
[root@centreon plugins]#

Check-UpTime

Supervision du temps de fonctionnement du serveur :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::protocols::nrpe::plugin --mode=query --custommode=nrpe --hostname=serv-exchange --command=alias_up
OK all counters within bounds.|'uptime'=213319000;3600000;0
[root@centreon plugins]#

Check-Disk

Supervision des disques :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=apps::protocols::nrpe::plugin --mode=query --custommode=nrpe --hostname=serv-exchange --command=alias_disk
OK: All drives within bounds.|'C:\ %'=30%;10;5 'C:\'=194.45GB;27.68;13.84;0;276.83 'E:\ %'=44%;10;5 'E:\'=1189.59GB;208.89;104.44;0;2088.87 'F:\ %'=49%;10;5 'F:\'=1072.69GB;208.89;104.44;0;2088.87 'G:\ %'=52%;10;5 'G:\'=1012.53GB;208.89;104.44;0;2088.87 'H:\ %'=44%;10;5 'H:\'=1190.13GB;208.89;104.44;0;2088.87 'N:\ %'=93%;10;5 'N:\'=155.8GB;208.89;104.44;0;2088.87 'O:\ %'=81%;10;5 'O:\'=414.55GB;208.89;104.44;0;2088.87 'P:\ %'=100%;10;5 'P:\'=184.44MB;213900.59;106950.3;0;2139005.94 'Q:\ %'=100%;10;5 'Q:\'=184.25MB;213900.59;106950.3;0;2139005.94
[root@centreon plugins]#

Allez, je m’arrête ici les amis, je pensais terminer ce projet en une seule partie, mais c’est raté…

Nous verrons dans le prochain chapitre, la configuration des scripts PowerShell dans le fichier de configuration NSClient++

Bonne journée et à bientôt.

La rédaction de cette documentation demande beaucoup de temps, de motivation, mais surtout beaucoup de café 🙂
Vous aimez pixelabs ?
Offrez moi un petit café en cliquant sur la tasse ci-dessous.
pixelans_donation
Merci !

14 réponses

  1. nicolas nicolas dit :

    Bonjour ,

    Moi je n’est aucune donnée 🙁

    [root@localhost ~]# cpanm –uninstall Convert::Binary::C
    ! Convert::Binary::C is not found in the following directories and can’t be uninstalled.

    /root/perl5/lib/perl5/x86_64-linux-thread-multi
    /root/perl5/lib/perl5

    • sysadmin sysadmin dit :

      Salut,
      ça donne quoi depuis Centreon Web ? toujours le message ?

      • nicolas nicolas dit :

        Salut,

        Je ne l’ai pas tester depuis Centreon Web car impossible d’allez plus loin je ne peu pas utilisé le plugin NRPE, j’ai le même probléme que Jerome ci dessous mais en suivant les infos je ne peu pas allez plus loin 🙁

        • sysadmin sysadmin dit :

          Salut, je peux tenter de t’aider à distance si tu veux.
          Si c’est possible, envoie moi un mail : sysadmin[at]pixelabs.fr
          -sysadmin

          • sysadmin sysadmin dit :

            Problème résolu à distance : Installation des modules perl suivant :

            cpan -i Convert::Binary::C
            cpan -i Digest::CRC
            cpan -i IO::Socket::INET6

            J’ai ensuite copié les modules au bon endroit.
            -sysadmin.

  2. Jerome dit :

    Bonjour,
    j’ai le message d’erreur suivant quand je veux utiliser les nouveau plugins nrpe

    ./centreon_plugins.pl --plugin=apps::protocols::nrpe::plugin, 
    
    UNKNOWN: Cannot load module --custommode.
    Can't locate Convert/Binary/C.pm in @INC (@INC contains: /usr/lib/centreon/plugins /root/perl5/lib/perl5/5.16.3/x86_64-linux-thread-multi /root/perl5/lib/perl5/5.16.3 /root/perl5/lib/perl5/x86_64-linux-thread-multi /root/perl5/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/lib/centreon/plugins/centreon/plugins/nrpe.pm line 25.
    BEGIN failed--compilation aborted at /usr/lib/centreon/plugins/centreon/plugins/nrpe.pm line 25.
    Compilation failed in require at /usr/lib/centreon/plugins/apps/protocols/nrpe/custom/nrpe.pm line 27.
    BEGIN failed--compilation aborted at /usr/lib/centreon/plugins/apps/protocols/nrpe/custom/nrpe.pm line 27.
    Compilation failed in require at /usr/lib/centreon/plugins/centreon/plugins/misc.pm line 217.

    j’ai bien tout les répertoires mais seul l’utilisateur à les droits , comment faut-il les ajouter pour l’utilisateur centreon-engine

    Merci de votre aide.

    • sysadmin sysadmin dit :

      Salut,
      Il te manque des plugins perl, commence par installer celui la :

      cpan -i Convert::Binary::C

      Bonne journée,
      sysadmin.

      • Jerome dit :

        Merci de la réponse
        j’ai déjà installé le convert::binarry::c

        j’ai lu qu’il fallait désactive l’environnement perl au profil root?
        You need to unset perl environment variable for your root user –> https://github.com/centreon/centreon-plugins/issues/1637

        • sysadmin sysadmin dit :

          Salut Jerome,
          Tu as eu le même problème que moi. J’ai tout essayé et je n’ai pas pu malheureusement.
          Alors, j’ai copié les fichiers de ce module la ou centreon les voulait…
          C’est chiant mais ça marche, faut juste copier les fichiers respectivement dans les bon répertoire…
          Je n’ai pas centreon sous la main, si tu n’y arrives pas tu me le dis, je te montrerais ou tu dois copier les fichiers de ce module dès que possible.
          bonne journée.
          sysadmin

          • Jerome dit :

            Bonjour,

            je veux bien , car je n’ai pas trouvé ou copier les fichiers du module , et cela n’a pas marché en désactivant l’environnement perl du compte root.

          • sysadmin sysadmin dit :

            Salut,
            Commence par installer CPANM :

            [root@centreon ~]# perl -MCPAN -e shell
            cpan[1]> install App::cpanminus

            Une fois installé, affiche le répertoire d’installation du module :
            C’est ici que le module doit être installé. Du coup, tu dois avoir les chemins différents du mien.

            [root@centreon ~]# cpanm --uninstall Convert::Binary::C
            Convert::Binary::C contains the following files:
            
              /usr/local/bin/ccconfig
              /usr/local/lib64/perl5/Convert/Binary/C.pm
              /usr/local/lib64/perl5/Convert/Binary/C/Cached.pm
              /usr/local/lib64/perl5/auto/Convert/Binary/C/C.so
              /usr/local/share/man/man1/ccconfig.1
              /usr/local/share/man/man3/Convert::Binary::C.3pm
              /usr/local/share/man/man3/Convert::Binary::C::Cached.3pm
            
            Are you sure you want to uninstall Convert::Binary::C? [y] CTRL + C pour annuler

            Il faut maintenant copier les fichiers de ce module vers l’emplacement ci-dessus. Si un répertoire n’existe pas, tu peux le créer.

            Exemple : pour copier le fichier C.pm :

            cp /root/le_chemin_d'installation_chez_toi/Convert/Binary/C.pm /usr/local/lib64/perl5/Convert/Binary/

            Une fois terminé, Centreon risque de te demander un autre module : Digest::CRC
            tu dois faire de même.

            Bon courage.
            -sysadmin.

  3. sysadmin sysadmin dit :

    Mise à jour majeur 🙂
    Supervision avec Centreon Plugin Packs

    • jerome dit :

      Bonjour,

      merci pour ton retour .

      j’ai copié les fichiers, il me semble ne pas les avoir copié au bon endroit

      # cpanm –uninstall Convert::Binary::C
      Convert::Binary::C contains the following files:

      /root/perl5/bin/ccconfig
      /root/perl5/lib/perl5/x86_64-linux-thread-multi/Convert/Binary/C.pm
      /root/perl5/lib/perl5/x86_64-linux-thread-multi/Convert/Binary/C/Cached.pm
      /root/perl5/lib/perl5/x86_64-linux-thread-multi/auto/Convert/Binary/C/C.so
      /root/perl5/man/man1/ccconfig.1
      /root/perl5/man/man3/Convert::Binary::C.3pm
      /root/perl5/man/man3/Convert::Binary::C::Cached.3pm

      j’ai copié les fichiers comme ceci
      # cp /root/perl5/lib/perl5/x86_64-linux-thread-multi/Convert/Binary/C/Cached.pm /usr/local/lib64/perl5/Convert/Binary/
      # cp /root/perl5/lib/perl5/x86_64-linux-thread-multi/auto/Convert/Binary/C/C.so /usr/local/lib64/perl5/Convert/Binary/
      # cp /root/perl5/man/man1/ccconfig.1 /usr/local/lib64/perl5/Convert/Binary/
      # cp /root/perl5/man/man3/Convert::Binary::C.3pm /usr/local/lib64/perl5/Convert/Binary/
      # cp /root/perl5/man/man3/Convert::Binary::C::Cached.3pm /usr/local/lib64/perl5/Convert/Binary/

      # ll
      total 1992
      -r–r–r– 1 root root 10622 Oct 3 16:05 Cached.pm
      -r–r–r– 1 root root 13786 Oct 3 16:06 ccconfig.1
      -r–r–r– 1 root root 184774 Oct 3 16:06 Convert::Binary::C.3pm
      -r–r–r– 1 root root 6954 Oct 3 16:07 Convert::Binary::C::Cached.3pm
      -r–r–r– 1 root root 147620 Oct 3 16:04 C.pm
      -r-xr-xr-x 1 root root 1660776 Oct 3 16:05 C.so

      il me semble cependant qu’il doit me manquer quelque chose car j’ai voulu tester un autre plugin ./centreon_plugins.pl –plugin=database::mongodb::plugin et j’ai le même message
      Can’t locate MongoDB.pm in @INC

      Merci encore de votre aide.

      • sysadmin sysadmin dit :

        Salut,
        C’est très bien mais, attention, il te manque le dossier “C” et le reste ce n’est pas bon :

        # cp /root/perl5/lib/perl5/x86_64-linux-thread-multi/Convert/Binary/C/Cached.pm /usr/local/lib64/perl5/Convert/Binary/ /usr/local/lib64/perl5/Convert/Binary/C/

        # cp /root/perl5/lib/perl5/x86_64-linux-thread-multi/auto/Convert/Binary/C/C.so /usr/local/lib64/perl5/Convert/Binary/ /usr/local/lib64/perl5/auto/Convert/Binary/C/

        # cp /root/perl5/man/man1/ccconfig.1 /usr/local/lib64/perl5/Convert/Binary/ /usr/local/lib64/perl5/man/man1/

        # cp /root/perl5/man/man3/Convert::Binary::C.3pm /usr/local/lib64/perl5/Convert/Binary/ /usr/local/lib64/perl5/man/man3/

        # cp /root/perl5/man/man3/Convert::Binary::C::Cached.3pm /usr/local/lib64/perl5/Convert/Binary/ /usr/local/lib64/perl5/man/man3/

        Il te manque le module perl pour MongoDB :

        cpan -i MongoDB

        Bonne journée,
        -sysadmin.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *