Comment ajouter Linux distant au serveur Nagios à l’aide du plugin NRPE
Dans la première partie de l’article de la série Nagios, nous avons expliqué en détail comment installer et configurer la dernière version de Nagios Core et des plugins Nagios dans les distributions basées sur RHEL telles que CentOS Stream, Rocky Linux, AlmaLinux et Fedora.
Dans cet article, nous allons vous montrer comment ajouter une machine Linux distante et ses services à l’hôte Nagios Core Monitoring à l’aide de l’agent NRPE (Nagios Remote Plugin Executor).
Nous espérons que Nagios Core est déjà installé et fonctionne correctement. Si ce n’est pas le cas, utilisez le guide d’installation suivant pour l’installer sur le système.
Si vous envisagez d’ajouter un hôte Windows distant au serveur de surveillance Nagios, utilisez le guide suivant :
Une fois que vous l’avez installé, vous pouvez poursuivre l’installation de l’agent NRPE sur votre hôte Linux distant. Avant d’aller plus loin, permettez-nous de vous donner une brève description du NRPE.
Qu’est-ce que le NRPE ?
Le plugin NRPE (Nagios Remote Plugin Executor) vous permet de surveiller tous les services Linux/Unix distants, les périphériques réseau ou les ressources telles que la charge CPU, l’échange, l’utilisation de la mémoire, les utilisateurs en ligne, etc. sur des machines Linux locales/distantes.
Après tout, ces ressources locales ne sont pas principalement exposées à des machines externes, un agent NRPE doit être installé et configuré sur les machines distantes.
Remarque : L’addon NRPE nécessite que les plugins Nagios soient installés sur la machine Linux distante. Sans ceux-ci, le démon NRPE ne fonctionnera pas et ne surveillera rien.
Installation du plugin NRPE dans le serveur Nagios et l’hôte Linux distant
Pour utiliser le NRPE, vous devrez effectuer des tâches supplémentaires à la fois sur le serveur de surveillance Nagios et sur l’hôte Linux distant sur lequel le NRPE est installé. Nous couvrirons les deux parties d’installation séparément.
Installation des plugins Nagios et NRPE sur un hôte Linux distant
Veuillez utiliser les instructions ci-dessous pour installer les plugins Nagios et le démon NRPE sur l’hôte Linux distant.
Étape 1 : Installer les dépendances requises
Nous devons installer les bibliothèques requises comme gcc, glibc, glibc-common, et GD et ses bibliothèques de développement à l’aide du gestionnaire de paquets yum.
# yum install -y gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel tar wget
Étape 2 : Créer un utilisateur Nagios
Créez un nouveau compte utilisateur nagios et définissez un mot de passe.
# useradd nagios
passwd nagios
Étape 3 : Installer les plugins Nagios
Créez un répertoire pour l’installation du plugin nagios et tous ses téléchargements futurs.
# mkdir /root/nagios
cd /root/nagios
Téléchargez maintenant le dernier paquet Nagios Plugins avec la commande wget.
# wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
Étape 4 : Extraire les plugins Nagios
Exécutez la commande tar suivante pour extraire le code source tarball.
# tar -xvf nagios-plugins-2.3.3.tar.gz
Ensuite, l’extraction d’un nouveau dossier apparaîtra dans ce répertoire.
# ls -l
total 2724
drwxr-xr-x. 15 root root 4096 Mar 11 2020 nagios-plugins-2.3.3
-rw-r--r--. 1 root root 2782610 Mar 11 2020 nagios-plugins-2.3.3.tar.gz
Étape 5 : Compiler et installer les plugins Nagios
Ensuite, compilez et installez les plugins nagios à l’aide des commandes suivantes
# cd nagios-plugins-2.3.3
./configure
make
make install
Définissez les permissions sur le répertoire du plugin à l’aide de la commande chown.
# chown nagios.nagios /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios/libexec
Étape 6 : Installation du plugin NRPE
Pour installer le plug-in nrpe, téléchargez d’abord le dernier plug-in NRPE ou utilisez la commande wget suivante.
# cd /root/nagios
wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.2/nrpe-4.0.2.tar.gz
Décompressez l’archive du code source NRPE.
# tar xzf nrpe-4.0.2.tar.gz
cd nrpe-4.0.2
Compilez et installez l’addon NRPE.
# ./configure
make all
Remarque : Si vous obtenez l’erreur suivante lors de l’exécution de la commande « make all » :
In file included from ../include/common.h:34,
from ./nrpe.c:38:
/usr/include/openssl/err.h:413:15: note: declared here
413 | unsigned long ERR_get_error_line_data(const char **file, int *line,
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/ccWQBjHb.o: in function `init_ssl':
/root/nagios/nrpe-4.0.2/src/./nrpe.c:474: undefined reference to `get_dh2048'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:48: nrpe] Error 1
Ensuite, vous devez désactiver SSL pour la configuration nrpe avec l’indicateur ./configure --disable-ssl comme indiqué.
# ./configure --disable-ssl
make all
Ensuite, installez le démon du plug-in NRPE et des exemples de fichiers de configuration.
# make install-plugin
make install-daemon
make install-config
Installez le démon NRPE sous systemd en tant que service.
# make install-init
Étape 7 : Configuration du plugin NRPE
Ouvrez maintenant le fichier /usr/local/nagios/etc/nrpe.cfg et ajoutez l’hôte local et l’adresse IP du serveur de surveillance Nagios.
allowed_hosts=127.0.0.1,192.168.102
Ensuite, activez et redémarrez le service nrpe.
# systemctl enable nrpe
systemctl restart nrpe
Étape 8 : Ouvrez le port NRPE dans le pare-feu
Assurez-vous que le pare-feu de la machine locale permet d’accéder au démon NRPE à partir de serveurs distants. Pour ce faire, exécutez la commande iptables suivante.
# firewall-cmd --zone=public --add-port=5666/tcp
firewall-cmd --zone=public --add-port=5666/tcp --permanent
Étape 8 : Vérifier le démon NRPE localement
Exécutez la commande netstat suivante pour vérifier que le démon NRPE fonctionne correctement sous systemd.
# netstat -at | grep nrpe
OR
netstat -na | grep "5666"
tcp 0 0 0.0.0.0:nrpe 0.0.0.0:* LISTEN
tcp6 0 0 [::]:nrpe [::]:* LISTEN
Si vous obtenez une sortie similaire à celle ci-dessus, cela signifie qu’il fonctionne correctement. Si ce n’est pas le cas, assurez-vous de vérifier les points suivants.
- Assurez-vous de vérifier que l’entrée nrpe est correctement ajoutée dans le fichier /etc/services.
- Le allowed_hosts contient une entrée pour « nagios_ip_address » dans le fichier /usr/local/nagios/etc/nrpe.cfg.
- Vérifiez les erreurs dans les fichiers journaux système pour environ nrpe et corrigez ces problèmes.
Ensuite, vérifiez que le démon NRPE fonctionne correctement en exécutant la commande « check_nrpe » qui a été installée précédemment à des fins de test.
# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
Vous obtiendrez la chaîne suivante à l’écran, elle vous indique quelle version de NRPE est installée :
NRPE v4.0.2
Étape 9 : Personnaliser les commandes NRPE
Le fichier de configuration NRPE par défaut qui a été installé comporte plusieurs définitions de commandes qui seront utilisées pour surveiller cette machine. L’exemple de fichier de configuration se trouve à l’adresse.
# vi /usr/local/nagios/etc/nrpe.cfg
Voici les définitions de commande par défaut qui se trouvent au bas du fichier de configuration. Pour l’instant, nous supposons que vous utilisez ces commandes. Vous pouvez les vérifier à l’aide des commandes suivantes.
# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_users
USERS OK - 1 users currently logged in |users=1;5;10;0# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_load
OK - load average: 3.90, 4.37, 3.94|load1=3.900;15.000;30.000;0; load5=4.370;10.000;25.000;0; load15=3.940;5.000;20.000;0;# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_hda1
DISK OK - free space: /boot 154 MB (84% inode=99%);| /boot=29MB;154;173;0;193# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_total_procs
PROCS CRITICAL: 297 processes# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_zombie_procs
PROCS OK: 0 processes with STATE = ZVous pouvez modifier et ajouter de nouvelles définitions de commande en modifiant le fichier de configuration NRPE. Enfin, vous avez installé et configuré l’agent NRPE sur l’hôte Linux distant.
Il est maintenant temps d’installer un composant NRPE et d’ajouter quelques services à votre serveur de surveillance Nagios...
Installation de NRPE sur Nagios Monitoring Server
Connectez-vous maintenant à votre serveur de surveillance Nagios. Ici, vous devrez faire les choses suivantes :
- Installez le plug-in check_nrpe.
- Créez une définition de commande Nagios à l’aide du plug-in check_nrpe.
- Créez un hôte Nagios et ajoutez des définitions de service pour la surveillance de l’hôte Linux distant.
Étape 1 : Installer le plugin NRPE dans Nagios
Allez dans le répertoire de téléchargement nagios et téléchargez le dernier plugin NRPE ou utilisez la commande wget suivante.
# cd /root/nagios
wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.2/nrpe-4.0.2.tar.gzDécompressez l’archive du code source NRPE.
# tar xzf nrpe-4.0.2.tar.gz
cd nrpe-4.0.2
Compilez et installez l’addon NRPE.
# ./configure
make all
make install-plugin
make install-daemon
make install-init
Étape 2 : Vérifier le démon NRPE à distance
Assurez-vous que le plug-in check_nrpe peut communiquer avec le démon NRPE sur l’hôte Linux distant. Ajoutez l’adresse IP dans la commande ci-dessous avec l’adresse IP de votre hôte Linux distant.
# /usr/local/nagios/libexec/check_nrpe -H <remote_linux_ip_address>
Vous obtiendrez une chaîne qui vous montrera quelle version de NRPE est installée sur l’hôte distant, comme ceci :
NRPE v4.0.2Si vous recevez une erreur de délai d’expiration du plugin, vérifiez les points suivants.
- Assurez-vous que votre pare-feu ne bloque pas la communication entre l’hôte distant et l’hôte de surveillance.
- Assurez-vous que le démon NRPE est correctement installé sous systemd.
- Assurez-vous que les règles de pare-feu de l’hôte Linux distant empêchent le serveur de surveillance de communiquer avec le démon NRPE.
Ajout d’un hôte Linux distant au serveur de surveillance Nagios
Pour ajouter un hôte distant, vous devez créer deux nouveaux fichiers « hosts.cfg » et « services.cfg » sous l’emplacement « /usr/local/nagios/etc/ ».
Étape 1 : Création du fichier d’hôte et de services Nagios
# cd /usr/local/nagios/etc/
touch hosts.cfg
touch services.cfg
Ajoutez maintenant ces deux fichiers au fichier de configuration principal de Nagios. Ouvrez le fichier nagios.cfg avec n’importe quel éditeur.
# vi /usr/local/nagios/etc/nagios.cfg
Ajoutez maintenant les deux fichiers nouvellement créés comme indiqué ci-dessous.
# You can specify individual object config files as shown below:
cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg
Étape 2 : Configuration de l’hôte Nagios et du fichier de services
Ouvrez maintenant le fichier hosts.cfg et ajoutez le nom du modèle d’hôte par défaut et définissez les hôtes distants comme indiqué ci-dessous. Assurez-vous de remplacer host_name, alias et adresse par les détails de votre serveur hôte distant.
# vi /usr/local/nagios/etc/hosts.cfg## Default Linux Host Template ##
define host{
name linux-box ; Name of this template
use generic-host ; Inherit default values
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period 24x7
notification_interval 30
notification_options d,r
contact_groups admins
register 0 ; DONT REGISTER THIS - ITS A TEMPLATE
}
## Default
define host{
use linux-box ; Inherit default values from a template
host_name tecmint ; The name we're giving to this server
alias CentOS 6 ; A longer name for the server
address 5.175.142.66 ; IP address of Remote Linux host
}Ensuite, ouvrez le fichier services.cfg et ajoutez les services suivants à surveiller.
# vi /usr/local/nagios/etc/services.cfgdefine service{
use generic-service
host_name tecmint
service_description CPU Load
check_command check_nrpe!check_load
}
define service{
use generic-service
host_name tecmint
service_description Total Processes
check_command check_nrpe!check_total_procs
}
define service{
use generic-service
host_name tecmint
service_description Current Users
check_command check_nrpe!check_users
}
define service{
use generic-service
host_name tecmint
service_description SSH Monitoring
check_command check_nrpe!check_ssh
}
define service{
use generic-service
host_name tecmint
service_description FTP Monitoring
check_command check_nrpe!check_ftp
}Étape 3 : Configuration de la définition de commande NRPE
Maintenant, la définition de la commande NRPE doit être créée dans le fichier commands.cfg.
# vi /usr/local/nagios/etc/objects/commands.cfg
Ajoutez la définition de commande NRPE suivante au bas du fichier.
###############################################################################
NRPE CHECK COMMAND
#
Command to use NRPE to check remote host systems
###############################################################################
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}Enfin, vérifiez que les fichiers de configuration de Nagios ne contiennent pas d’erreurs.
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0
Total Errors: 0
Enfin, redémarrez Nagios pour appliquer les modifications de configuration récentes :
# systemctl restart nagios
Étape 4 : Surveillance de Linux à distance dans Nagios
Allez maintenant sur l’interface Web de Nagios Monitoring à « http://Your-server-IP-address/nagios » ou « http://FQDN/nagios » et fournissez le nom d’utilisateur « nagiosadmin » et le mot de passe. Vérifiez que l’hôte Linux distant a été ajouté et qu’il est surveillé.
Conclusion
Voilà! pour l’instant, dans mon prochain article, je vais vous montrer comment ajouter un hôte Windows à Nagios monitoring Server. Si vous rencontrez des difficultés lors de l’ajout de l’hôte distant à Nagios.
N’hésitez pas à commenter vos questions ou votre problème via la section des commentaires, d’ici là, restez à l’écoute pour linux-console.net pour plus d’articles aussi précieux.
