Installation Nagios · 21 min read · Nov 09, 2025
Comment installer et configurer Nagios sur Rocky Linux 9

Nagios est un système de surveillance open-source populaire et l’un des plus puissants. Il surveille votre infrastructure informatique et maintient vos réseaux, serveurs, applications et processus en bon état de fonctionnement. Avec un système de surveillance, vous pouvez détecter les problèmes avant qu’ils ne surviennent et les résoudre rapidement pour économiser des coûts et du temps d’arrêt.
Ce tutoriel vous apprend à installer et configurer Nagios sur un serveur Rocky Linux 9. Nous ferons également quelques configurations de base et installerons le Nagios Remote Plugin Executor (NPRE), qui nous permet de surveiller des hôtes distants.
Prérequis
- Un serveur exécutant Rocky Linux 9.
- Un utilisateur non-sudo avec des privilèges root.
- SELinux est désactivé. Pour ce tutoriel, même si vous gardez SELinux activé, cela fonctionnerait sans aucun problème. Mais selon les moniteurs Nagios que vous utilisez, vous devrez soit configurer SELinux, soit il serait préférable de le garder désactivé.
- Un autre serveur exécutant Rocky Linux 9 que vous souhaitez surveiller.
- Assurez-vous que tout est à jour.
$ sudo dnf update
Étape 1 - Configurer le pare-feu
La première étape consiste à configurer le pare-feu. Le serveur Rocky Linux est livré avec le pare-feu Firewalld.
Vérifiez si le pare-feu est en cours d’exécution.
$ sudo firewall-cmd --state
Vous devriez obtenir la sortie suivante.
running
Vérifiez les services/ports actuellement autorisés.
$ sudo firewall-cmd --permanent --list-services
Cela devrait afficher la sortie suivante.
dhcpv6-client mdns ssh
Autorisez les ports HTTP et HTTPS.
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Vérifiez à nouveau l’état du pare-feu.
$ sudo firewall-cmd --permanent --list-services
Vous devriez voir une sortie similaire.
dhcpv6-client http https mdns ssh
Rechargez le pare-feu.
$ sudo firewall-cmd --reload
Étape 2 - Installer Apache et PHP
Pour exécuter Nagios, vous aurez besoin d’Apache ainsi que de PHP installé.
Installez et activez le service Apache.
$ sudo dnf install httpd
$ sudo systemctl enable httpd
Pour installer PHP, nous utiliserons le dépôt Remi. Installez le dépôt Remi et activez PHP 8.1.
$ sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.1 -y
Installez PHP et plusieurs modules PHP courants.
$ sudo dnf install -y php php-gd php-curl
Vérifiez l’installation de PHP.
$ php --version
PHP 8.1.16 (cli) (built: Feb 14 2023 18:59:41) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.16, Copyright (c) Zend Technologies
with Zend OPcache v8.1.16, Copyright (c), by Zend Technologies
Activez PHP et démarrez le service.
$ sudo systemctl enable --now php-fpm
Redémarrez le service Apache pour que le changement prenne effet.
$ sudo systemctl restart httpd
Vous pouvez vérifier l’installation d’Apache et de PHP en créant un fichier info.php dans le répertoire /var/www/html qui a été créé par l’installateur Apache.
$ sudo nano /var/www/html/info.php
Collez le code suivant dans l’éditeur.
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Ouvrez l’URL http:// dans votre navigateur et vous devriez être accueilli par la page suivante.

Étape 3 - Installer Nagios
La plupart de ce tutoriel nécessitera que vous installiez et travailliez sur votre serveur principal.
Installer les dépendances
Ce tutoriel nécessitera que Nagios et ses plugins soient construits à partir de la source. Par conséquent, vous devez d’abord installer quelques bibliothèques de développement. Nous avons également besoin du dépôt EPEL, mais il a été automatiquement installé avec le dépôt Remi à l’étape précédente, donc nous pouvons le sauter ici.
$ sudo dnf install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel unzip wget gettext autoconf net-snmp-utils postfix automake perl-Net-SNMP
Télécharger Nagios
Téléchargez la dernière version depuis la page des versions GitHub de Nagios. Au moment du tutoriel, 4.4.10 est la dernière version disponible. Modifiez la commande si vous souhaitez une version différente.
$ cd ~
$ sudo wget -O nagios.tar.gz https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.4.10/nagios-4.4.10.tar.gz
Extrayez le fichier tar.
$ sudo tar zxf nagios.tar.gz
Déplacez le répertoire extrait vers le répertoire /usr/src.
sudo mv nagios-4.4.10 /usr/src/nagios
Passez au répertoire /usr/src/nagios.
$ cd /usr/src/nagios
Compiler Nagios
L’étape suivante consiste à compiler Nagios à partir de ses fichiers sources. Exécutez le script configure pour effectuer des vérifications afin de vous assurer que toutes les dépendances sont présentes.
$ sudo ./configure
Vous devriez obtenir une sortie similaire après l’achèvement réussi du script.
* Résumé de la configuration pour nagios 4.4.10 2023-01-17 *:
Options générales :
-------------------------
Exécutable Nagios : nagios
Utilisateur/groupe Nagios : nagios,nagios
Utilisateur/groupe de commande : nagios,nagios
Broker d'événements : oui
Installer ${prefix} : /usr/local/nagios
Installer ${includedir} : /usr/local/nagios/include/nagios
Fichier de verrouillage : /run/nagios.lock
Répertoire des résultats de vérification : /usr/local/nagios/var/spool/checkresults
Répertoire d'initialisation : /lib/systemd/system
Répertoire conf.d d'Apache : /etc/httpd/conf.d
Programme de messagerie : /usr/sbin/sendmail
Système d'exploitation hôte : linux-gnu
Méthode IOBroker : epoll
Options de l'interface Web :
------------------------
URL HTML : http://localhost/nagios/
URL CGI : http://localhost/nagios/cgi-bin/
Traceroute (utilisé par WAP) :
Examinez les options ci-dessus pour leur exactitude. Si elles semblent correctes,
tapez 'make all' pour compiler le programme principal et les CGIs.
Commencez la compilation.
$ sudo make all
Créer un utilisateur et un groupe Nagios
Créez un nouvel utilisateur et un groupe qui exécuteront le processus Nagios.
$ sudo make install-groups-users
Vous devriez voir la sortie suivante.
groupadd -r nagios
useradd -g nagios nagios
Ajoutez l’utilisateur apache au groupe nagios.
$ sudo usermod -a -G nagios apache
Installer les binaires de Nagios
Exécutez la commande suivante pour installer les binaires de Nagios, les CGIs et les fichiers HTML.
$ sudo make install
Créer un répertoire de commandes externes
Nagios peut traiter des commandes d’applications externes et pour cela, il a besoin d’un répertoire à configurer.
$ sudo make install-commandmode
/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw
* Répertoire de commandes externes configuré *
Installer les fichiers de configuration de Nagios
Installez les fichiers de configuration d’exemple.
$ sudo make install-config
Installer les fichiers de configuration d’Apache
Exécutez la commande suivante pour installer les fichiers de configuration d’Apache.
$ sudo make install-webconf
Redémarrez le serveur Web pour activer la configuration.
$ sudo systemctl restart httpd
Créer un fichier de service Systemd
Exécutez la commande suivante pour installer un fichier d’unité systemd.
$ sudo make install-daemoninit
Activer l’authentification HTTP
Vous pouvez verrouiller l’interface Web de Nagios via l’authentification HTTP. Exécutez la commande suivante pour utiliser htpasswd pour créer l’utilisateur. Vous serez invité à entrer un mot de passe.
$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Nouveau mot de passe :
Ressaisissez le nouveau mot de passe :
Ajout du mot de passe pour l'utilisateur nagiosadmin
Le nom par défaut de l’utilisateur est nagiosadmin. Vous pouvez utiliser un autre nom d’utilisateur en remplaçant toutes les instances de nagiosadmin dans le fichier /usr/local/nagios/etc/cgi.cfg par le nom d’utilisateur préféré. Ou vous pouvez ajouter le nom d’utilisateur en utilisant une virgule comme suit.
authorized_for_system_information=nagiosadmin, username1
authorized_for_configuration_information=nagiosadmin, username1
authorized_for_system_commands=nagiosadmin, username1
authorized_for_all_services=nagiosadmin, username1
authorized_for_all_hosts=nagiosadmin, username1
authorized_for_all_service_commands=nagiosadmin, username1
authorized_for_all_host_commands=nagiosadmin, username1
Vous pouvez ajouter des utilisateurs avec un accès en lecture seule en activant la configuration suivante dans le fichier en supprimant le hachage (#) devant. Ensuite, exécutez htpasswd avec le nom d’utilisateur.
authorized_for_read_only=username2
Redémarrez le serveur pour que la configuration prenne effet.
$ sudo systemctl restart httpd
Étape 4 - Installer les plugins Nagios
Installez les prérequis nécessaires pour les plugins Nagios.
$ sudo dnf install epel-release
$ sudo dnf install -y gcc glibc glibc-common make gettext automake autoconf wget openssl-devel net-snmp net-snmp-utils postgresql-devel openldap-devel bind-utils samba-client fping openssh-clients lm_sensors perl-Net-SNMP
Téléchargez la dernière version depuis la page GitHub des plugins Nagios. Au moment du tutoriel, 2.4.3 est la dernière version disponible. Modifiez la commande si vous souhaitez une version différente.
$ cd ~
$ sudo wget -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.4.3/nagios-plugins-2.4.3.tar.gz
Extrayez le fichier tar.
$ sudo tar zxf nagios-plugins.tar.gz
Déplacez le répertoire extrait vers le répertoire /usr/src.
$ sudo mv nagios-plugins-2.4.3 /usr/src/nagios-plugins
Revenez au répertoire /usr/src/nagios-plugins.
$ cd /usr/src/nagios-plugins
Exécutez les commandes suivantes pour compiler et installer les plugins.
$ sudo ./configure
$ sudo make
$ sudo make install
Étape 5 - Installer le plugin check_nrpe
Téléchargez la dernière version depuis la page des versions GitHub de NRPE. Au moment de la rédaction de ce tutoriel, la dernière version disponible est 4.1.0. Modifiez la commande suivante si vous souhaitez une version différente.
$ cd ~
$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz
Extrayez l’archive.
$ tar zxf nrpe-*.tar.gz
Déplacez le répertoire extrait vers le répertoire /usr/src.
$ sudo mv nrpe-4.1.0 /usr/src/nrpe
Passez au répertoire /usr/src/nrpe.
$ cd /usr/src/nrpe
Configurez et installez le plugin.
$ sudo ./configure
$ sudo make check_nrpe
$ sudo make install-plugin
Cela placera le plugin check_nrpe dans le répertoire /usr/local/nagios/libexec/.
Étape 6 - Démarrer Nagios
Avec Nagios et les plugins installés, il est temps de démarrer le service Nagios.
$ sudo systemctl start nagios
Vérifiez l’état du service pour voir s’il fonctionne correctement.
$ sudo systemctl status nagios
Interface Web de Nagios
Ouvrez l’URL http:// dans votre navigateur. Vous devriez voir une invite de connexion.
Entrez les identifiants que vous avez créés lors de la méthode d’authentification HTTP et vous devriez être accueilli par l’écran suivant.

Étape 7 - Surveiller les hôtes
Pour surveiller un hôte, vous devez installer le démon NRPE et les plugins Nagios sur l’hôte. Nous allons surveiller un serveur Rocky Linux 9 depuis notre serveur Nagios.
Connectez-vous à votre hôte.
$ ssh user@monitored_server_ip
Installer les plugins Nagios
Installez les plugins Nagios en répétant l’étape 4 ci-dessus.
Installer NRPE
Installez les prérequis nécessaires pour le démon NRPE.
$ sudo dnf install -y gcc glibc glibc-common openssl openssl-devel perl wget
Téléchargez NRPE.
$ cd ~
$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz
Extrayez l’archive.
$ tar zxf nrpe-*.tar.gz
Déplacez le répertoire extrait vers le répertoire /usr/src.
$ sudo mv nrpe-4.1.0 /usr/src/nrpe
Changez pour le répertoire NRPE.
$ cd /usr/src/nrpe
Configurez et installez NRPE.
$ sudo ./configure --enable-command-args
$ sudo make all
Créez l’utilisateur et le groupe.
$ sudo make install-groups-users
Installez les binaires NRPE, le démon NRPE et le plugin check_npre.
$ sudo make install
Installez les fichiers de configuration.
$ sudo make install-config
Mettez à jour le fichier des services. Le fichier /etc/services est utilisé pour traduire les noms de services en numéros de port.
$ sudo sh -c "echo >> /etc/services"
$ sudo sh -c "sudo echo '# Services Nagios' >> /etc/services"
$ sudo sh -c "sudo echo 'nrpe 5666/tcp' >> /etc/services"
Installez le démon de service NPRE.
$ sudo make install-init
$ sudo systemctl enable nrpe
Vous devez mettre à jour le fichier de configuration NPRE situé à /usr/local/nagios/etc/nrpe.cfg.
Ouvrez le fichier pour l’éditer.
$ sudo nano /usr/local/nagios/etc/nrpe.cfg
Par défaut, NPRE écoute les demandes uniquement depuis le localhost (127.0.0.1). Vous devez ajouter l’adresse IP de votre serveur Nagios au fichier.
allowed_hosts=127.0.0.1,10.25.5.2
L’option suivante détermine si le démon NPRE autorisera ou non les clients à spécifier des arguments de commande. Autorisez l’option en entrant la valeur 1 qui active les configurations avancées de NPRE.
dont_blame_nrpe=1
Ensuite, en faisant défiler vers le bas, vous rencontrerez une liste de commandes NRPE avec leurs définitions. Toutes sont commentées. Vous devez les décommenter afin que Nagios puisse les utiliser.
Chaque commande peut recevoir des arguments. Certaines des commandes ont des arguments codés en dur devant elles, tandis que d’autres peuvent accepter des arguments de l’utilisateur. Chaque commande peut avoir les options de notification suivantes.
- W signifie états de service d’avertissement
- C signifie états de service critiques
- R signifie notifier lors de la récupération du service (états OK)
Ainsi, vous pouvez spécifier à quel niveau quel type de notification une commande peut envoyer. Nous ne plongerons pas dans la description détaillée et la fonction de chacune des commandes, car elles dépassent le cadre de ce tutoriel.
# Les exemples suivants utilisent des arguments de commande codés en dur...
# C'est de loin la méthode la plus sécurisée d'utilisation de NRPE
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -r -w .15,.10,.05 -c .30,.25,.20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
# Les exemples suivants permettent des arguments fournis par l'utilisateur et ne peuvent
# être utilisés que si le démon NRPE a été compilé avec le support pour
# les arguments de commande *ET* la directive dont_blame_nrpe dans ce
# fichier de configuration est définie sur '1'. Cela pose un risque de sécurité potentiel, donc
# assurez-vous de lire le fichier SECURITY avant de faire cela.
### MÉTRIQUES SYSTÈME MISC ###
command[check_users]=/usr/local/nagios/libexec/check_users $ARG1$
command[check_load]=/usr/local/nagios/libexec/check_load $ARG1$
command[check_disk]=/usr/local/nagios/libexec/check_disk $ARG1$
command[check_swap]=/usr/local/nagios/libexec/check_swap $ARG1$
command[check_cpu_stats]=/usr/local/nagios/libexec/check_cpu_stats.sh $ARG1$
command[check_mem]=/usr/local/nagios/libexec/custom_check_mem -n $ARG1$
### SERVICES GÉNÉRIQUES ###
command[check_init_service]=sudo /usr/local/nagios/libexec/check_init_service $ARG1$
command[check_services]=/usr/local/nagios/libexec/check_services -p $ARG1$
### MISE À JOUR DU SYSTÈME ###
command[check_yum]=/usr/local/nagios/libexec/check_yum
#command[check_apt]=/usr/local/nagios/libexec/check_apt
### PROCESSUS ###
command[check_all_procs]=/usr/local/nagios/libexec/custom_check_procs
command[check_procs]=/usr/local/nagios/libexec/check_procs $ARG1$
### FICHIERS OUVERTS ###
command[check_open_files]=/usr/local/nagios/libexec/check_open_files.pl $ARG1$
### CONNEXIONS RÉSEAU ###
command[check_netstat]=/usr/local/nagios/libexec/check_netstat.pl -p $ARG1$ $ARG2$
Décommentez les commandes ci-dessus en supprimant le symbole # devant elles. Vous pouvez décommenter autant de commandes que vous le souhaitez.
Ajoutez la commande suivante pour vérifier l’espace disque racine.
command[check_root]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /
Une fois que vous avez terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Autorisez le port 5666 qui est utilisé par le plugin NPRE.
$ sudo firewall-cmd --permanent --add-port=5666/tcp
Rechargez le pare-feu.
$ sudo firewall-cmd --reload
Démarrez NPRE.
$ sudo systemctl start nrpe
Toutes les commandes à partir de maintenant seront exécutées sur le serveur Nagios principal, sauf indication contraire.
Vérifiez si NRPE fonctionne en exécutant la commande suivante sur votre serveur Nagios principal.
$ /usr/local/nagios/libexec/check_nrpe -H monitored_server_ip
Vous devriez voir la sortie suivante.
NRPE v4.1.0
Pour surveiller les hôtes, vous devrez créer des fichiers de configuration pour chaque hôte que vous souhaitez surveiller. Ces hôtes deviendront alors accessibles via l’interface Web de Nagios.
Créez le répertoire pour stocker les fichiers de configuration et donnez-lui les permissions appropriées.
$ sudo mkdir /usr/local/nagios/etc/servers
$ sudo chown -R nagios:nagios /usr/local/nagios/etc/servers
$ sudo chmod g+w /usr/local/nagios/etc/servers
Ouvrez le fichier de configuration de Nagios /usr/local/nagios/etc/nagios.cfg pour l’éditer.
$ sudo nano /usr/local/nagios/etc/nagios.cfg
Trouvez le fichier suivant et décommentez-le en supprimant le # devant.
cfg_dir=/usr/local/nagios/etc/servers
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
L’étape suivante consiste à ajouter la commande check_nrpe au fichier /usr/local/nagios/etc/objects/commands.cfg afin qu’elle puisse être utilisée pour surveiller les hôtes.
Ouvrez le fichier /usr/local/nagios/etc/objects/commands.cfg pour l’éditer.
$ sudo nano /usr/local/nagios/etc/objects/commands.cfg
Collez le code suivant à la fin du fichier.
define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$ $ARG2$
}
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Créez un nouveau fichier de configuration pour l’hôte distant dans le répertoire /usr/local/nagios/etc/servers/.
$ sudo nano /usr/local/nagios/etc/servers/yourhost.cfg
Ajoutez le code suivant en remplaçant la valeur host_name par le nom d’hôte distant, la valeur alias par la description de votre hôte et la valeur address par l’adresse IP de votre hôte distant.
define host {
use linux-server
host_name monitored_server_host_name
alias Mon serveur client
address monitored_server_private_ip
max_check_attempts 5
check_period 24x7
notification_interval 30
notification_period 24x7
}
Avec cette configuration, Nagios vous informera lorsque l’hôte est en ligne ou hors ligne. Vous devrez ajouter plus de services pour surveiller d’autres éléments.
Ajoutez le bloc suivant pour vérifier les statistiques de connexion pour l’hôte.
define service {
use generic-service
host_name monitored_server_host_name
service_description PING
check_command check_ping!200.0,20%!400.0,90%
}
Ajoutez le bloc suivant pour surveiller la charge moyenne de votre serveur.
define service {
use generic-service
host_name monitored_server_host_name
service_description Charge moyenne
check_command check_nrpe!check_load!-a '-w 0.7,0.6,0.5 -c 0.9,0.8,0.7'
}
La directive use generic-service indique à Nagios d’hériter d’un modèle appelé generic-service prédéfini par Nagios.
Ensuite, ajoutez un bloc pour surveiller l’utilisation du disque. Modifiez la commande avec les étiquettes de disque appropriées.
define service {
use generic-service
host_name monitored_server_host_name
service_description /dev/vda1 espace libre
check_command check_nrpe!check_disk!-a '-w 20% -c 10% -p /dev/vda1'
}
Surveillez SSH en utilisant le bloc suivant. Le bloc suivant vérifiera le serveur SSH et génère une alerte si le serveur ne répond pas dans les 5 secondes.
define service {
use generic-service
host_name monitored_server_host_name
service_description Vérification de la version SSH
check_command check_ssh!-t 5
}
Vérifions le nombre total de processus en cours d’exécution.
define service{
use generic-service
host_name monitored_server_host_name
service_description Total des processus
check_command check_nrpe!check_total_procs
}
Vérifiez les utilisateurs actuellement connectés.
define service{
use generic-service
host_name monitored_server_host_name
service_description Utilisateurs actuels
check_command check_nrpe!check_users!-a '-w 5 -c 10'
}
Vérifiez l’utilisation du disque SWAP.
define service{
use generic-service
host_name monitored_server_host_name
service_description Utilisation de SWAP
check_command check_nrpe!check_swap!-a '-w 40% -c 20%'
}
Vérifiez la partition racine et son utilisation du disque.
define service{
use generic-service
host_name nagiosclient
service_description Racine / Partition
check_command check_nrpe!check_disk!-a '-w 20% -c 10% -p /'
}
Vérifiez si un serveur HTTP est installé.
define service {
use generic-service
host_name nagiosclient
service_description HTTP
check_command check_http
}
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Redémarrez Nagios.
$ sudo systemctl restart nagios
Vérifier les moniteurs
Ouvrez votre tableau de bord Nagios et cliquez sur l’option Hôtes dans la barre latérale gauche. Vous devriez voir l’hôte nouvellement configuré avec localhost sur la page.

Cliquez sur l’hôte nouvellement configuré (nagiosclient) et si tout est configuré correctement, vous devriez voir son statut. Cela prendra une minute ou deux pour que le statut apparaisse.

Pour voir les services ou les moniteurs que nous avons configurés, cliquez sur l’option Voir les détails de l’état pour cet hôte et vous devriez être accueilli par la page suivante.

Cela devrait vous donner une idée précise de la façon dont vos hôtes fonctionnent.
Étape 8 - Installer Nginx
Vous pouvez soit exécuter Nagios directement via l’IP du serveur, soit l’héberger sur votre nom de domaine. Nagios est déjà livré avec des fichiers de configuration Apache, mais nous allons utiliser Nginx pour l’exécuter. Nous utiliserons Nginx comme proxy inverse devant le serveur Web Apache.
Apache fonctionne déjà sur le port 80. Par conséquent, nous devons d’abord changer cela. Ensuite, nous pouvons exécuter Nginx en tant que proxy.
Ouvrez le fichier /etc/httpd/conf/httpd.conf pour l’éditer.
$ sudo nano /etc/httpd/conf/httpd.conf
Changez la ligne Listen 80 en Listen 8080. Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité. Puisque nous allons utiliser le nom de domaine pour accéder à Nagios, nous n’avons pas besoin d’ouvrir le port 8080 pour un accès public.
Redémarrez le serveur Apache.
$ sudo systemctl restart httpd
Ensuite, installez Nginx.
Rocky Linux 9 est livré avec une version plus ancienne de Nginx. Vous devez télécharger le dépôt officiel de Nginx pour installer la dernière version.
Créez et ouvrez le fichier /etc/yum.repos.d/nginx.repo pour créer le dépôt officiel de Nginx.
$ sudo nano /etc/yum.repos.d/nginx.repo
Collez le code suivant dedans.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Installez le serveur Nginx.
$ sudo dnf install nginx
Vérifiez l’installation.
$ nginx -v
nginx version: nginx/1.22.1
Activez et démarrez le serveur Nginx.
$ sudo systemctl enable nginx --now
Étape 9 - Installer et configurer SSL
Avant de configurer Nginx, nous allons mettre en place et configurer un certificat SSL pour le domaine que nous allons utiliser avec Nagios. Dans notre cas, nous allons utiliser http://nagios.example.com.
Nous allons utiliser l’installateur de paquets Snapd pour cela. Puisque Rocky Linux ne l’inclut pas, installez l’installateur Snapd. Il nécessite le dépôt EPEL pour fonctionner, que nous avons déjà installé plus tôt, donc nous pouvons le sauter.
Installez Snapd.
$ sudo dnf install -y snapd
Activez et démarrez le service Snap.
$ sudo systemctl enable snapd --now
Installez le paquet Snap core, et assurez-vous que votre version de Snapd est à jour.
$ sudo snap install core && sudo snap refresh core
Créez les liens nécessaires pour que Snapd fonctionne.
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Exécutez la commande suivante pour installer Certbot.
$ sudo snap install --classic certbot
Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Vérifiez l’installation.
$ certbot --version
certbot 2.3.0
Exécutez la commande suivante pour générer un certificat SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d nagios.example.com
La commande ci-dessus téléchargera un certificat dans le répertoire /etc/letsencrypt/live/nagios.example.com sur votre serveur.
Générez un certificat de groupe Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Faites un essai à sec du processus pour vérifier si le renouvellement SSL fonctionne correctement.
$ sudo certbot renew --dry-run
Si vous ne voyez aucune erreur, vous êtes prêt. Votre certificat se renouvellera automatiquement.
Étape 10 - Configurer Nginx
Avant de configurer Nginx, il y a un autre changement que nous devrions faire. Par défaut, Apache sert Nagios sur http://. Maintenant, nous pouvons configurer un proxy directement avec Nagios, mais il sera servi sur https://nagios.example.com/nagios. Nous pouvons faire une redirection sur Nginx vers l’URL racine, ce qui complique les choses. Pour cette raison, nous allons faire un changement directement sur Apache et Nagios.
Tout d’abord, ouvrez le fichier /usr/local/nagios/etc/cgi.cfg pour l’éditer.
$ sudo nano /usr/local/nagios/etc/cgi.cfg
Changez url_html_path=/nagios en url_html_path=/.
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Ensuite, ouvrez /etc/httpd/conf.d/nagios.conf pour l’éditer.
$ sudo nano /etc/httpd/conf.d/nagios.conf
Changez ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" en ScriptAlias /cgi-bin "/usr/local/nagios/sbin".
Commentez la ligne Alias /nagios "/usr/local/nagios/share" en la changeant comme suit.
#Alias /nagios "/usr/local/nagios/share"
Ajoutez la ligne suivante en dessous.
DocumentRoot /usr/local/nagios/share
Ajoutez la ligne suivante en haut du fichier.
Ajoutez la ligne suivante en bas du fichier.
Une fois que vous avez terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Et enfin, ouvrez le fichier /usr/local/nagios/share/config.inc.php pour l’éditer.
$ sudo nano /usr/local/nagios/share/config.inc.php
Changez $cfg['cgi_base_url']='/nagios/cgi-bin'; en $cfg['cgi_base_url']='/cgi-bin';.
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Redémarrez à la fois Apache et Nagios.
$ sudo systemctl restart httpd
$ sudo systemctl restart nagios
Pour confirmer que tout fonctionne correctement, ouvrez l’URL http:// dans votre navigateur et vous devriez voir Nagios fonctionner correctement. Assurez-vous également que les données des hôtes sont reçues.
Une fois que tout fonctionne, nous pouvons procéder à la création de notre fichier de configuration pour Nginx.
Créez un fichier de configuration pour Nagios dans le répertoire /etc/nginx/conf.d.
$ sudo nano /etc/nginx/conf.d/nagios.conf
Collez le code suivant dedans.
server {
listen 80; listen [::]:80;
server_name nagios.example.com;
return 301 https://$host$request_uri;
}
server {
server_name nagios.example.com;
listen 443 ssl http2;
listen [::]:443 ssl http2;
access_log /var/log/nginx/nagios.access.log;
error_log /var/log/nginx/nagios.error.log;
ssl_certificate /etc/letsencrypt/live/nagios.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nagios.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/nagios.example.com/chain.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Une fois que vous avez terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Validez le fichier de configuration.
$ sudo nginx -t
Si vous obtenez l’erreur suivante, vous devrez modifier le fichier /etc/nginx/nginx.conf pour ajouter/ajuster la taille de la variable server_names_hash_bucket_size.
nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size
Ouvrez le fichier /etc/nginx/nginx.conf pour l’éditer.
$ sudo nano /etc/nginx/nginx.conf
Ajoutez la ligne suivante avant
server_names_hash_bucket_size 64;
Une fois que vous avez terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité. Validez à nouveau Nginx.
Si vous ne voyez aucun problème, redémarrez le serveur Nginx.
$ sudo systemctl restart nginx
Configurer SELinux
Si vous avez gardé SELinux activé, exécutez la commande suivante pour permettre à Nginx de se connecter au réseau.
$ sudo setsebool -P httpd_can_network_connect on
Lancez le domaine https://nagios.example.com dans votre navigateur, et vous devriez être accueilli par la page d’accueil de Nagios.
Conclusion
Vous avez installé et configuré Nagios sur un serveur Rocky Linux 9 pour surveiller plusieurs services comme la charge, l’utilisation du disque/swap, les utilisateurs, le nombre total de processus, HTTP et SSH. Cela conclut notre tutoriel. Pour en savoir plus, vous devriez consulter la documentation officielle de Nagios couvrant la surveillance et diverses commandes en détail. Si vous avez des questions, postez-les dans les commentaires ci-dessous.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.