
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égorie | Fonctionnalité |
🔍 Surveillance | Surveillance des hôtes et services (serveurs, routeurs, applications, etc.) |
🔌 Extensibilité | Prise en charge de plugins personnalisés pour étendre les capacités |
📡 Protocoles réseau | Surveillance de HTTP, SMTP, FTP, SSH, etc. |
🧠 Notifications | Alertes par email, SMS (via script), ou autres systèmes externes |
📊 Interface Web | Interface utilisateur web pour visualiser l’état de l’infrastructure |
📈 Rapports & historiques | Journaux d’événements, rapports de disponibilité, courbes de performances |
🔁 Vérifications périodiques | Exé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-plateforme | Surveillance possible sur Linux, Windows, UNIX, via NRPE, NSClient++, SNMP |
👥 Gestion par groupe | Organisation 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.
Avantage | Description |
✅ Surveillance proactive | Détection rapide des anomalies avant qu’elles n’affectent les utilisateurs |
🕒 Réduction du temps d’arrêt | Avertissements et alertes permettant des interventions rapides |
📈 Amélioration des performances | Suivi en temps réel pour optimiser l’utilisation des ressources |
📊 Visibilité complète | Interface 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ée | Accès restreint, authentification et configuration personnalisée |
🔄 Automatisation | Intégration avec scripts et outils pour réagir automatiquement à certains événements |
🌍 Communauté active | Documentation riche, forums et nombreux plugins disponibles |
2. Environnement du LAB
Architecture de Base à Superviser
- HAProxy : 192.168.1.100 (répartition de charge)
- WEB1 : 192.168.1.101 (Apache + Virtual Hosts)
- WEB2 : 192.168.1.102 (Apache + Virtual Hosts)
- Nagios : 192.168.1.110

3. Objectifs
3.1 Objetifs pour les 3 Serveurs de supervision.
- Installer et sécuriser le serveur de supervision.
- Installer agent/exporter sur WEB1, WEB2 et HAProxy.
- Définir les hôtes (hosts) dans l’outil de supervision.
- Configurer les services à surveiller : • Ping (ICMP) • Processus Apache (apache2) • Processus HAProxy (haproxy) • Charge CPU et mémoire
- Créer des alertes (mail ou webhook) en cas de panne ou charge élevée.
- 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
- Installer Nagios Core sur une VM dédiée (ex. 192.168.1.110).
- Installer NRPE sur WEB1, WEB2 et HAProxy.
- Configurer /etc/nagios/nrpe.cfg pour autoriser la VM Nagios (allowed_hosts).
- Créer les définitions d’hôtes dans /usr/local/nagios/etc/servers :
- web1.cfg, web2.cfg, haproxy.cfg.
- Définir des commandes NRPE pour check_ping, check_procs (apache2, haproxy) et check_load.
- Ajouter les services associés à chaque hôte dans les fichiers de configuration Nagios.
- 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

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

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 ~

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

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

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 :
Voici la dernière version actuelle pour ma part Nagios 4.5.9

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

Extraire des fichiers de l’archive Nagios téléchargée.
- sudo tar xzf nagios-4.5.9.tar.gz

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

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 :
Commande | Action principale |
make install | Installe Nagios Core (binaire + répertoires) |
make install-daemoninit | Crée le service pour démarrer Nagios automatiquement |
make install-commandmode | Configure les permissions pour les commandes web |
make install-config | Installe les fichiers de config par défaut |
make install-webconf | Configure 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

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

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

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

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

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


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
il va vous demandez votre Username et Password


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
}

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$
}

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

Recherchez la ligne allowed_hosts et modifiez-la comme suit :
- allowed_hosts=127.0.0.1,::1,192.168.1.110

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 /

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

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
}

Exemple pour WEB2 (web2.cfg) :

Exemple pour HAProxy (haproxy.cfg) :

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


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 :

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 :

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

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

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

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


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 :


Share this content:
Laisser un commentaire