Atelier B304 22/01/2026
Pitch de l’exercice 🧑‍🏫

📚 Ressources :
- Documentation Nagios https://www.nagios.org/projects/nagios-core/
Installation de Nagios Core
Au niveau des requirements, on a pas besoin d'une grosse machine, on va monter ça dans un container LXC Ubuntu 24.04 LTS en IP statique

On peut voir la documentation officielle pour l'installation sur Ubuntu ici : https://support.nagios.com/kb/article/nagios-core-installing-nagios-core-from-source-96.html#Ubuntu
Nagios Core nécessite plusieurs dépendances, y compris Apache, PHP, et des outils de compilation. Pour les installer on utilise la commande suivante :
apt update
apt upgrade -y
apt install -y build-essential libgd-dev openssl libssl-dev unzip apache2 php libapache2-mod-php libperl-dev libpng-dev
Pour continuer notre installation, nous allons maintenant télécharger l'archive source de Nagios Core depuis le site officiel :

cd /tmp
wget https://go.nagios.org/get-core/4-5-11
Une fois l'archive téléchargée, on la décompresse et on entre dans le dossier extrait :
tar -xvzf 4-5-11
ls
cd nagios-4.5.11
On va créer un utilisateur nagios et l'ajouter au groupe nagcmd. On va créer les utilisateurs et groupes nécessaires pour que Nagios fonctionne correctement avec les bonnes permissions.
useradd nagios
groupadd nagcmd
usermod -G nagcmd nagios
usermod -G nagcmd www-data
Maintenant on va compiler et installer Nagios Core
Configure
./configure --with-httpd-conf=/etc/apache2/sites-available --with-command-group=nagcmd

et Make make all, on peut voir la liste des commandes pour continuer l'installation. Enjoy !

On va continuer et installer Nagios et ses fichiers de configuration, en commençant par les groupes et users pour la gestion des droits (actualisation)
make install-groups-users
make install
make install-init
make install-daemoninit
make install-config
make install-commandmode
Maintenant on va installer l'interface web puis activer le module Apache nécessaire
make install-webconf
a2enmod cgi
a2ensite nagios
systemctl restart apache2

Pour accéder à l'interface web, on doit créer un utilisateur nagiosadmin et un mot de passe
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Il nous reste plus qu'a démarrer le Nachos !
systemctl start nagios
systemctl enable nagios
systemctl status nagios

Pour s'y connecter via le navigateur web : http://10.0.0.90/nagios , on entre l'user nagiosadmin et son mdp

L'installation n'est aps terminée on peut voir des erreurs de services

On installe les prérequis (certains sont déjà installés, c’est pas grave) :
apt install -y autoconf gcc libc6 libmcrypt-dev make libssl-dev wget bc gawk dc build-essential snmp libnet-snmp-perl gettext
Pour les installer, on télécharge la dernière version des plugins Nagios, on les dezip, on va dans le dossier, on configure, on make et on lance l’installation :
cd /tmp
wget -O nagios-plugins.tar.gz $(wget -q -O - https://api.github.com/repos/nagios-plugins/nagios-plugins/releases/latest | grep '"browser_download_url":' | grep -o 'https://[^"]*')
tar zxf nagios-plugins.tar.gz
cd /tmp/nagios-plugins-*/
./configure
make
make install
Une fois l'installation terminée, on peut vérifier si les plugins sont correctement installés :
ls -l /usr/local/nagios/libexec/

Si on a un pare-feu actif sur notre serveur, on peut autoriser l'accès à Apache avec la commande suivante :
ufw allow 'Apache Full'
De retour sur l'interface on peut voir que tout répond


Installation de l'Agent NCPA Windows sur un hĂ´te Windows

Il expose une API RESTful pour l'interrogation des données, et son installation est plus simple et plus flexible que NRPE.
On va télécharger l'agent sur le site officiel https://www.nagios.org/projects/ncpa/#downloads

On ajoute un token (un mot) qui sera utilisé pour les connexions à l'API de NCPA

Puis on termine l'install sans activer les checks passifs. On peut voir l'agent actif dans le Gestionnaire de Services

Pour être sûr de ne pas avoir de problème avec le pare-feu windows on peut ouvrir le port dans Powershell
New-NetFirewallRule -DisplayName "NCPA" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 5693
Et vérifier que le Ping est bien activé dans le pare-feu, sinon l'activer

On peut se connecter à l'interface web de l'agent via https://10.0.0.66:5693 avec le token créé pour s'y log

On peut voir les Data collectées en Live par l'agent

Configuration de l'Agent NCPA sur le serveur Nagios
De retour sur notre serveur en ligne de commande on accéde à la configuration dans /usr/local/nagios/etc/
On va créez un fichier de configuration pour notre serveur Windows dans le dossier servers (par exemple, windows_server.cfg)
cd /usr/local/nagios/etc/
mkdir servers
nano /usr/local/nagios/etc/servers/windows_server.cfg
On ajoute la configuration suivante (check est le plugin pour interroger l'agent,avec le token créé, et 2 services test pour surveiller le cpu et la memory) :
define host {
use generic-host
host_name windows_server
alias Windows Server
address 10.0.0.66
check_command check-host-alive
max_check_attempts 5
check_interval 1
retry_interval 1
check_period 24x7
notification_interval 30
notification_period 24x7
contacts nagiosadmin
}
define service {
use generic-service
host_name windows_server
service_description CPU Load
check_command check_ncpa!-t mytoken -M cpu/percent
normal_check_interval 5
retry_check_interval 1
notification_interval 30
}
define service {
use generic-service
host_name windows_server
service_description Memory Usage
check_command check_ncpa!-t mytoken -M memory/virtual
normal_check_interval 5
retry_check_interval 1
notification_interval 30
}
On save, quitte et on relance nagios systemctl restart nagios
Pour configurer correctement la surveillance NCPA, on doit ajouter une définition de commande spécifique dans le fichier de configuration du serveur Nagios. C'est à faire une seule fois.
On va modifier nano /usr/local/nagios/etc/objects/commands.cfg et ajoutez la configuration suivante qui permettra Ă Nagios d'interagir avec l'agent NCPA :
define command {
command_name check_ncpa
command_line $USER1$/check_ncpa.py -H $HOSTADDRESS$ $ARG1$
Une fois fait, on doit mettre à jour la configuration dans le fichier nano /usr/local/nagios/etc/nagios.cfg. Il faut décommenter la ligne #cfg_dir=/usr/local/nagios/etc/servers pour permettre la découverte des nouveaux serveurs. Sans cette étape, aucune vérification ni remontée d'information ne sera effectuée.

Pour tout prendre en compte on restart nagios systemctl reload nagios
Et on peut retourner sur notre interface web pour voir si l'hôte est bien remonté !


On peut voir que nos services ont un problème

Nagios n'arrive pas à trouver le script check_ncpa.py, on va donc le retélécharger et le rendre executable (droits), et on va aussi installer un paquet de compatibilité python/python3
cd /usr/local/nagios/libexec
wget https://raw.githubusercontent.com/NagiosEnterprises/ncpa/master/client/check_ncpa.py
chmod +x check_ncpa.py
chown nagios:nagios check_ncpa.py
sudo apt install -y python3 python-is-python3
C'est bon

On peut voir un Warn Jaune, load average: 2.76, 3.49, 3.56 correspond à la charge de du système sur 1 minute, 5 minutes et 15 minutes. Une charge de 1.0 signifie qu'un cœur de processeur est utilisé à 100%. On est à 2.76 sur les 4 cœurs du container Proxmox, c'est OK (~70% de charge).

Installation de l'Agent NCPA sur un hĂ´te Ubuntu
Pour Ubuntu on peut directement télécharger l'agent NCPA avec wget, ajouter les packages manquants, on update et on installe
Documentation : https://repo.nagios.com/?repo=deb-ubuntu
cd /tmp
wget https://assets.nagios.com/downloads/ncpa/ncpa-latest.amd64.deb
sudo apt install gnupg gnupg2 gnupg1
wget -qO - https://repo.nagios.com/GPG-KEY-NAGIOS-V3 | apt-key add -
sudo apt update
sudo apt install ./ncpa-latest.amd64.deb
systemctl status ncpa_listener
L'agent est maintenant installé, on peut le voir ici

On va maintenant configurer le NCPA sur l'hĂ´te Ubuntu
il faut définir un mot de passe sécurisé, on va modifier le fichier de configuration nano /usr/local/ncpa/etc/ncpa.cfg et remplacer la ligne : community_string = mytoken par notre mot de passe. Il servira pour l'accès à l'API
NCPA écoute par défaut sur le port 5693. Pour ouvrir le port sur UFW, on peut exécuter la commande suivante : ufw allow 5693/tcp
On peut maintenant se connecter Ă l'interface web https://10.0.0.50:5693 avec notre token

Configuration de l'Agent NCPA Ubuntu sur le serveur Nagios
Comme pour l'agent Windows on va créer un fichier de configuration

cd /usr/local/nagios/etc/servers/
ls
nano /usr/local/nagios/etc/servers/ubuntu_server.cfg
On va ajouter la configuration suivante
define host {
use generic-host
host_name ubuntu_server
alias Ubuntu Server
address 10.0.0.50
check_command check-host-alive
max_check_attempts 5
check_interval 1
retry_interval 1
check_period 24x7
notification_interval 30
notification_period 24x7
contacts nagiosadmin
}
define service {
use generic-service
host_name ubuntu_server
service_description CPU Load
check_command check_ncpa!-t mytoken -M cpu/percent
normal_check_interval 5
retry_check_interval 1
notification_interval 30
}
define service {
use generic-service
host_name ubuntu_server
service_description Memory Usage
check_command check_ncpa!-t mytoken -M memory/virtual
normal_check_interval 5
retry_check_interval 1
notification_interval 30
}
et on reload systemctl reload nagios et on va voir sur notre serveur nagios si tout est bon


Les nachos sont bien sous surveillance !
