Installation d’un Nagios Core

Qu’est-ce que Nagios ?

Nagios, ou Nagios Core est un logiciel ordonnanceur qui surveille les systèmes, les réseaux et l’infrastructure. Nagios offre des services de surveillance et d’alerte pour les serveurs, les commutateurs, les applications et les services. Il alerte les utilisateurs en cas d’incidents et les avertit une deuxième fois lorsque le problème a été résolu. Nagios a été conçu à l’origine pour fonctionner sous Linux, mais il fonctionne aussi bien sur d’autres variantes d’Unix.

Nagios a été le premier outil de monitoring IT open source à se positionner en 1999. Il se nommait alors NetSaint. Derrière le logiciel, une véritable communauté s’est créée avec plus d’un million d’utilisateurs à travers le monde.

Nagios permet :

  • La surveillance des équipements et systèmes cibles, à travers notamment des protocoles tels SMTP, POP3, HTTP, NNTP, ICMP, SNMP, SNMP, FTP, SSH ((scripts shell, C+++, Perl, Ruby, Python, PHP, C#, etc…).
  • La surveillance des réseaux, systèmes d’exploitation et tous types de matériel (comme les sondes de température, les alarmes, etc.) via des scripts communément appelé plugins de supervision.
  • L’alerte en cas de de dépassement de seuil ou panne via un système de notification qui prévient l’exploitant du SI ou l’administrateur.

Fort de son succès, le projet a été « forké » (reprise d’un code source projet pour développer un autre logiciel) à plusieurs reprises : Icinga, Shinken, Centreon-Engine, Naemon,..

1.1   Quelles sont les solutions de supervision de Nagios ?

Superviser permet d’indiquer et de commander l’état d’un appel, d’un système ou d’un réseau. Les informations techniques et fonctionnelles d’un SI peuvent ainsi être remontées.

A l’ère du Cloud et du Big Data, la supervision est essentielle afin de :

  • Garantir la disponibilité et les niveaux de service en cas de panne ou dégradation de performance
  • Prévenir les menaces et éviter une intervention

Nagios utilise deux types de supervision :

  • Supervision active : le moteur va chercher l’information. C’est le cas des protocoles tels NRPE, NSCLient++, WMI et CNP

NRPE

Nagios Remote Plugin Executor (NRPE) est un agent Nagios qui permet de surveiller le système à distance à l’aide de scripts hébergés sur les systèmes distants. Il permet de surveiller les ressources telles que l’utilisation du disque, la charge du système ou le nombre d’utilisateurs actuellement connectés. Nagios interroge périodiquement l’agent sur le système distant en utilisant le plugin check_nrpe.

NRPE vous permet d’exécuter à distance les plugins Nagios sur d’autres machines Linux/Unix. Cela vous permet de surveiller les paramètres de la machine à distance (utilisation du disque, charge du CPU, etc.). Le NRPE peut également communiquer avec certains des add-ons de l’agent Windows, ce qui vous permet d’exécuter des scripts et de vérifier les métriques sur les machines Windows distantes.

NSClient+++

Ce programme est principalement utilisé pour surveiller les machines Windows. En cours d’installation sur un système distant, NSClient+++ écoute le port TCP 12489. Le plugin Nagios utilisé pour collecter les informations de cet addon est appelé check_nt. Comme NRPE, NSClient+++ permet de surveiller les « services privés » (utilisation de la mémoire, charge CPU, utilisation du disque, processus en cours d’exécution, etc.) Nagios est un moniteur d’hôtes et de services qui est conçu pour vous informer des problèmes de réseau.

  • Supervision passive : les équipements envoient les informations aux moteurs de supervisions comme NSS par exemple.

1.2 Fonctionnalités clés de Nagios

Doté de fonctionnalités de surveillance avancées, Nagios permet aux administrateurs d’étendre facilement ses capacités grâce à des plugins, permettant ainsi une surveillance sur mesure de quasiment tous les aspects de leur infrastructure, que ce soit au niveau du trafic réseau, de l’état des serveurs web ou encore de la communication via le protocole SMTP.

Le tableau ci-dessous propose un récapitulatif des fonctionnalités clés de Nagios :

CatégorieFonctionnalité
🔍 SurveillanceSurveillance des hôtes et services (serveurs, routeurs, applications, etc.)
🔌 ExtensibilitéPrise en charge de plugins personnalisés pour étendre les capacités
📡 Protocoles réseauSurveillance de HTTP, SMTP, FTP, SSH, etc.
🧠 NotificationsAlertes par email, SMS (via script), ou autres systèmes externes
📊 Interface WebInterface utilisateur web pour visualiser l’état de l’infrastructure
📈 Rapports & historiquesJournaux d’événements, rapports de disponibilité, courbes de performances
🔁 Vérifications périodiquesExécute régulièrement les vérifications définies selon une planification précise
🔐 SécuritéAuthentification via mot de passe, contrôle d’accès via fichiers .htpasswd
🧩 Support multi-plateformeSurveillance possible sur Linux, Windows, UNIX, via NRPE, NSClient++, SNMP
👥 Gestion par groupeOrganisation des hôtes et services en groupes pour une meilleure lisibilité

1.3 Avantages de Nagios

L’adoption de Nagios par les entreprises du monde entier n’est pas fortuite. Cette plateforme apporte une série d’avantages significatifs qui améliorent la surveillance des infrastructures IT, la gestion des performances et la prévention des pannes. Le tableau ci-après permet de comprendre les avantages clés de Nagios qui en font une solution de choix pour les professionnels de l’IT.

AvantageDescription
Surveillance proactiveDétection rapide des anomalies avant qu’elles n’affectent les utilisateurs
🕒 Réduction du temps d’arrêtAvertissements et alertes permettant des interventions rapides
📈 Amélioration des performancesSuivi en temps réel pour optimiser l’utilisation des ressources
📊 Visibilité complèteInterface claire et rapports détaillés pour superviser toute l’infrastructure
🔌 ExtensibilitéAjout de plugins pour adapter la solution à tous types de besoins spécifiques
💰 Coût maîtriséVersion open-source gratuite, idéale pour PME et grandes entreprises
🔒 Sécurité renforcéeAccès restreint, authentification et configuration personnalisée
🔄 AutomatisationIntégration avec scripts et outils pour réagir automatiquement à certains événements
🌍 Communauté activeDocumentation riche, forums et nombreux plugins disponibles

2.  Environnement du LAB

Architecture de Base à Superviser

  1. HAProxy : 192.168.1.100 (répartition de charge)
  2. WEB1 :      192.168.1.101 (Apache + Virtual Hosts)
  3. WEB2 :      192.168.1.102 (Apache + Virtual Hosts)
  4. Nagios :    192.168.1.110
image Installation d'un Nagios Core

3.  Objectifs

3.1        Objetifs pour les 3 Serveurs de supervision.

  1. Installer et sécuriser le serveur de supervision.
  2. Installer agent/exporter sur WEB1, WEB2 et HAProxy.
  3. Définir les hôtes (hosts) dans l’outil de supervision.
  4. Configurer les services à surveiller : • Ping (ICMP) • Processus Apache (apache2) • Processus HAProxy (haproxy) • Charge CPU et mémoire
  5. Créer des alertes (mail ou webhook) en cas de panne ou charge élevée.
  6. Présenter un tableau de bord synthétique et un rapport de tests (arrêt simulé de WEB1, bascule vers WEB2, remontée des alertes).

3.2 Supervision avec Nagios Core

  1. Installer Nagios Core sur une VM dédiée (ex. 192.168.1.110).
    1. Installer NRPE sur WEB1, WEB2 et HAProxy.
    1. Configurer /etc/nagios/nrpe.cfg pour autoriser la VM Nagios (allowed_hosts).
    1. Créer les définitions d’hôtes dans /usr/local/nagios/etc/servers :
    1. web1.cfg, web2.cfg, haproxy.cfg.
    1. Définir des commandes NRPE pour check_ping, check_procs (apache2, haproxy) et check_load.
    1. Ajouter les services associés à chaque hôte dans les fichiers de configuration Nagios.
    1. Redémarrer NRPE et Nagios, tester les contrôles et générer des alertes mail.

4.  Build et compilation Nagios sur notre VM Linux

4.1 Update & Upgrade notre VM

Pour commencer faite un :

  • sudo apt update
image-1 Installation d'un Nagios Core

La je n’est pas d’update a faire, si c’est pas le cas pour vous que vous avez des update a faire faite un :

  • sudo apt upgrade -y
image-2 Installation d'un Nagios Core

4.2 Installation des paquets de dépendance requis pour Nagios

La commande ci-dessous installe le serveur Web Apache, PHP, et les progiciels de développement nécessaires requis par Nagios pour fonctionner sur le serveur.

Saisissez la commande :

  • sudo  apt  install  -y  apache2  php   libapache2-mod-php-gd  php-mysql  build-essential

Une fois l’installation faite, replacer vous sur votre répertoire de votre utilisateur.

  • Cd ~
image-3 Installation d'un Nagios Core

Maintenant on va créer un nouveau dossier « Nagios-temp » qui va nous permettre de stocker des fichiers Nagios.

Faite un :

  • Sudo mkdir  nagios-temp
image-4 Installation d'un Nagios Core

Ensuite nous allons entrer dans le dossier qu’on vient de créer.

  •  cd  nagios-temp
image-5 Installation d'un Nagios Core

Maintenant je vous conseille avant de continuer la suite de prendre le temps de vous rendre sur le site Github de Nagios pour voir la dernière version.

Lien :

https://github.com/NagiosEnterprises/nagioscore/releases

Voici la dernière version actuelle pour ma part Nagios 4.5.9

image-6 Installation d'un Nagios Core

Saisissez la commande pour téléchargez la dernière version de Nagios

  • Wget https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.5.9/nagios-4.5.9.tar.gz
image-7 Installation d'un Nagios Core

Extraire des fichiers de l’archive Nagios téléchargée.

  • sudo tar  xzf  nagios-4.5.9.tar.gz
image-8 Installation d'un Nagios Core

Faite un petit « ls » pour être sur que vous avez bien fait dans le répertoire nagios-temp

  • ls

Si tout va bien vous devriez voir ceci

  • nagios-4.5.9  nagios-4.5.9.tar.gz

Passage au répertoire du projet Nagios-4.5.9.

  • cd  nagios-4.5.9
image-9 Installation d'un Nagios Core

Maintenant on va pouvoir exécuter le script pour configurer l’hote dans l’annuaire apache2.

Saisissez cette commande pour exécuter le script :

  • – sudo ./configure –with-httpd-conf=/etc/apache2/sites-enabled

Toujours en restant dans le même dossier saisissez :

  • Sudo make all

5.  Installation Nagios sur Parrot

5.1        Création de groupe et utilisateur pour Nagios

Saisissez la commande suivante il va vous créez un utilisateur Nagios:

  • sudo make install-groups-users

Maintenant cette utilisateur Nagios on va le mettre dans le groupe www-data qui est utiliser par defaut par apache2.

  • sudo usermod -a -G nagios www-data

5.2        Installation de Nagios

Toujours dans le même répertoire on va installer Nagios ainsi que ses applications.

  • sudo make install
  • sudo make install-daemoninit
  • sudo make install-commandmode
  • sudo make install-config
  • sudo make install-webconf

Explication des commandes du dessus :

CommandeAction principale
make installInstalle Nagios Core (binaire + répertoires)
make install-daemoninitCrée le service pour démarrer Nagios automatiquement
make install-commandmodeConfigure les permissions pour les commandes web
make install-configInstalle les fichiers de config par défaut
make install-webconfConfigure Apache pour l’accès web à Nagios

5.3        Activation Rewrite et Cgi

Maintenant il nous reste à Activer par default notre rewrite et Cgi

  • sudo a2enmod rewrite
  • sudo a2enmod cgi

5.4        Création d’un utilisateur Admin pour Nagios

Nous allons créer un compte Admin pour Nagios pour avoir accès a notre tableau de bord pour la suite

  • sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Recommandations :

8 caractères minimum

1 majuscule

1 caractère spécial

Évitez les mots courants ou facilement devinables

6.  Installation des Plugins Nagios

Normalement vous êtes toujours dans le même dossier nagios-temp/nagios-4.5.9

image-10 Installation d'un Nagios Core

Faite un cd .. Pour revenir sur le dossier précèdent, vous voilà ici :

image-11 Installation d'un Nagios Core

Alors là comme pour la version de Nagios, il va falloir aller voir pour la dernière version des plugins Nagios

Voici le lien :

https://github.com/nagios-plugins/nagios-plugins/releases
image-12 Installation d'un Nagios Core

Donc pour le moment la dernière version des Plugins Nagios est la 2.4.12, donc on va entrer cette commande pour télécharger les plugins.

Voilà les plugins télécharger maintenant on va les extraire.

  • Sudo tar xzf nagios-plugins-2.4.12.tar.gz

Maintenant je vous invite à faire un « ls » pour être sûr que vous avez extrait au bon endroit.

  • Ls
image-13 Installation d'un Nagios Core

Si vous avez la même chose qu’au-dessus c’est que vous êtes bien.

Maintenant on va aller dans le dossier qu’on vient d’extraire

  • cd nagios-plugins-2.4.12
image-14 Installation d'un Nagios Core

On va exécuter le script ./configure

  • sudo ./configure

Ensuite on va compliler le plugin avec

  • sudo make

Et installer les plugins Nagios

  • sudo make install

6.1 Test de Nagios Core

Pour effectuer le test on va saisir cette commande

  • sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
image-15 Installation d'un Nagios Core
image-16 Installation d'un Nagios Core

On apercevoir beaucoup d’infos avec cette commande, on peut aussi voir les Warning et Errors, tout est ok pour moi.

Maintenant il nous reste plus qu’a start nos service

  • sudo systemctl start nagios
  • sudo systemctl enable nagios
  • sudo systemctl restart apache2

7.  Tableau de bord Nagios Core ( VM Nagios)

Pour cela ouvrer votre navigateur et il vous suffit de mettre votre adresse IP ou localhost

http://SERVER-IP/nagios

ou

http://localhost/nagios

il va vous demandez votre Username et Password

image-17 Installation d'un Nagios Core
image-18 Installation d'un Nagios Core

Une fois sur votre page Nagios il y aura sans doute du CRITICAL je vias vous expliquer comment régler tout ca.

Pour commencer on va installer les NRPE plugins :

  • sudo apt install nagios-nrpe-plugin

Pour le service SSH est installé et actif

  • sudo systemctl status ssh

Si ce n’est pas installé :

  • sudo apt update
  • sudo apt install openssh-server
  • sudo systemctl enable –now ssh

Pour le Ping ne pas oublier de mettre, qui permet de ping sans avoir à faire sudo :

sudo setcap cap_net_raw+ep /bin/ping

Pour un problème de localhost en rouge (DOWN) modifier le fichier commands.cfg

Faite un et modifier deux commands :

  • sudo nano /usr/local/nagios/etc/objects/commands.cfg

define command {

    command_name    check-host-alive

    command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 100.0,20% -c 500.0,60% -p 5

}

image-19 Installation d'un Nagios Core

Et beaucoup plus bas dans le même fichier on va modifier le check_ping et rajouter le check_nrpe:

define command {

    command_name    check_nrpe

    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}

image-20 Installation d'un Nagios Core

 

8.  Installation et configuration de NRPE sur WEB1, WEB2 et HAProxy

 

Les commandes sont à exécuter sur chaque serveur (WEB1,WEB2 et HAProxy)

8.1        Installer les plugins Nagios et NRPE

Sur chaque hôte distant (WEB1, WEB2, HAProxy), exécutez :

  • sudo apt update
  • sudo apt install -y nagios-plugins nagios-nrpe-server

8.2        Configurer le fichier /etc/nagios/nrpe.cfg :

Ouvrer la config nrpe.cf

  • Sudo nano /etc/nagios/nrpe.cfg
image-21 Installation d'un Nagios Core

Recherchez la ligne allowed_hosts et modifiez-la comme suit :

  • allowed_hosts=127.0.0.1,::1,192.168.1.110
image-22 Installation d'un Nagios Core

Je rajoute l’ip 192.168.1.110 car c’est l’IP de mon serveur Nagios

8.3 Définir les commandes NRPE.cfg

Ajoutez les lignes suivantes à la fin du fichier :

command[check_ping]=/usr/lib/nagios/plugins/check_ping -H 127.0.0.1 -w 100.0,20% -c 500.0,60% -p 5

command[check_procs_apache]=/usr/lib/nagios/plugins/check_procs -c 1: -a apache2

command[check_procs_haproxy]=/usr/lib/nagios/plugins/check_procs -w 1 -c 1 -C haproxy

command[check_load]=/usr/lib/nagios/plugins/check_load -w 5.0,4.0,3.0 -c 10.0,6.0,4.0

command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /

image-23 Installation d'un Nagios Core

Redémarrer le service NRPE

  • sudo systemctl restart nagios-nrpe-server
  • sudo setcap cap_net_raw+ep /bin/ping

9.  Configuration des hôtes et des services dans Nagios (Serveur Nagios)

9.1        Créer un répertoire pour les fichiers de configuration des hôtes :

  • sudo mkdir /usr/local/nagios/etc/servers

9.2        Inclure ce répertoire dans la configuration principale de Nagios

Éditez le fichier /usr/local/nagios/etc/nagios.cfg et ajoutez la ligne suivante :

  • cfg_dir=/usr/local/nagios/etc/servers
image-24 Installation d'un Nagios Core

9.3 Définir les hôtes :

Pour chaque hôte (WEB1, WEB2, HAProxy), créez un fichier de configuration dans /usr/local/nagios/etc/servers/ :

Exemple pour WEB1 (web1.cfg) :

define host {

    use         linux-server

    host_name   web1

    address     192.168.1.101

}

define service {

    use                 generic-service

    host_name           web1

    service_description CPU Load

    check_command       check_nrpe!check_load

}

define service {

    use                 generic-service

    host_name           web1  

    service_description Disk Root

    check_command       check_nrpe!check_disk

}

define service {

    use                 generic-service

    host_name           web1

    service_description Ping   

    check_command       check_nrpe!check_ping

}

define service {

    use                 generic-service

    host_name           web1   

    service_description Processus apache2

    check_command       check_nrpe!check_procs_apache

}

image-25 Installation d'un Nagios Core

Exemple pour WEB2 (web2.cfg) :

image-26 Installation d'un Nagios Core

Exemple pour HAProxy (haproxy.cfg) :

image-27 Installation d'un Nagios Core

9.3        Vérifier la configuration de Nagios

Saisissez cette commande pour vérifier s’il y a des erreurs :

  • sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
image-28 Installation d'un Nagios Core
image-29 Installation d'un Nagios Core

Tout est OK ! 4 host parfait

Redémarrer le system nagios

  • sudo systemctl restart nagios

10.       Résultats + test

Voila mon tableau de bord de mon Nagios :

image-30 Installation d'un Nagios Core

Il n’y a que le Swap Usage que je n’ai pas réussi à réglé. (Et nos PC portable nous permet pas de swap de la mémoire, trop peu de RAM).

Voila le tableau de bord de mon Haproxy :

image-31 Installation d'un Nagios Core

10.1    Test

Je vais stop mon service apache sur mon serveur WEB 1 :

image-32 Installation d'un Nagios Core

On peut voir sur mon Haproxy que mon serveur Web1 est down.

image-33 Installation d'un Nagios Core

Maintenant je vais regardé sur mon serveur de Supervision Nagios si on aperçois une erreur

image-34 Installation d'un Nagios Core

On peut voir plusieurs choses :

  • Mon Haproxy > Processus HAProxy est en Warning il a que 2 Processus avec le nom haprxy
  • Mon WEB1 > Processus Apache2 est en CRITICAL il y a 0 Processus Apache qui tourne sur mon serveur WEB1

Je redémarre mon Apache2 sur mon serveur WEB1

image-35 Installation d'un Nagios Core
image-36 Installation d'un Nagios Core

11 Recevoir un mail via Gmail, Mailutils et Msmtp

1. Installer msmtp et mailutils

– sudo apt update

– sudo apt install msmtp

– sudo apt install msmtp-mta

– sudo apt install mailutils

2.Créer un compte Gmail

Conditions requises avant de commencer :

Tu dois avoir un compte Gmail.

L’authentification à deux facteurs (2FA) doit être activée sur ce compte.

 Étapes pour créer le mot de passe d’application :

Activer la validation en deux étapes (si ce n’est pas encore fait)

Va ici : https://myaccount.google.com/security

Dans la section « Connexion à Google », active Validation en deux étapes

Suis les instructions (code par SMS, etc.)

Créer un mot de passe d’application

Une fois la 2FA activée, va ici :
https://myaccount.google.com/apppasswords

Il te demandera peut-être de te reconnecter.

Dans la page « Mots de passe d’application » :

Dans « Sélectionner l’application », choisis « Autre (personnalisé) »

Donne un nom (ex: Nagios)

Clique sur « Générer »

Google te donnera un mot de passe à 16 caractères (ex : abcd efgh ijkl mnop)

3.Création de la config msmtprc

Créer un fichier msmtprc dans /etc

  • sudo nano /etc/msmtprc

Colle exactement ceci (remplace bien l’adresse et le mot de passe) :

defaults

auth           on

tls            on

tls_trust_file /etc/ssl/certs/ca-certificates.crt

logfile        /var/log/msmtp.log

account        gmail

host           smtp.gmail.com

port           587

from           nicolas.gouvxxxxx@gmail.com ( Ton mail )

user           nicolas.gouvxxxxx@gmail.com ( Ton mail )

password       TON_MOT_DE_PASSE_D_APPLICATION

account default : gmail

Ajoute les permissions à ton fichier :

sudo chmod 644 /etc/msmtprc

sudo chown root:nagios /etc/msmtprc

4. Test du mail

Pour voir si tu reçois un mail fait cette commande (Met ton adresse mail)

echo « Test via sudo » | sudo -E mail -s « Test sudo msmtp » nicolas.gouvxxxxx@gmail.com

Et j’ai bien reçu le mail :

image-37 Installation d'un Nagios Core
image-38 Installation d'un Nagios Core

Share this content:

Je m'appelle Nicolas, j’ai 38 ans et je vis dans le département de l’Ain. Actuellement en reconversion professionnelle dans le domaine de l’informatique, je poursuis une formation de Technicien Systèmes et Réseaux (TSSR) afin de transformer ma passion en métier. L'informatique a toujours occupé une place importante dans ma vie, et aujourd'hui je m'investis pleinement pour en faire mon avenir professionnel. Mon objectif : devenir Administrateur Réseau, en obtenant plusieurs certifications reconnues dans le secteur. Ce site présente les projets réalisés dans le cadre de ma formation, et reflète mon engagement et ma progression dans ce domaine passionnant.

Laisser un commentaire