Comment installer Nagios 4 et surveiller vos serveurs sur CentOS 7

introduction

Dans ce tutoriel, nous aborderons l’installation de Nagios 4, un système de surveillance open source très populaire, sur CentOS 7 ou RHEL 7. Nous allons couvrir quelques configurations de base afin que vous puissiez surveiller les ressources de l’hôte via l’interface Web. Nous allons également utiliser le NRPE (Nagios Remote Plugin Executor), qui sera installé en tant qu’agent sur des hôtes distants, pour surveiller leurs ressources locales.

Nagios est utile pour garder un inventaire de vos serveurs et pour vous assurer que vos services critiques sont opérationnels. L’utilisation d’un système de surveillance, comme Nagios, est un outil essentiel pour tout environnement de serveur de production.

Conditions préalables

Pour suivre ce didacticiel, vous devez disposer des privilèges de superutilisateur sur le serveur CentOS 7 qui exécutera Nagios. Idéalement, vous utiliserez un utilisateur non root avec les privilèges de superutilisateur. Si vous avez besoin d’aide pour le configurer, suivez les étapes 1 à 3 de ce didacticiel: Présentation du serveur initial avec CentOS 7 .

Une pile de lampe est également requise. Suivez ce tutoriel si vous avez besoin de le configurer: How Installer la pile LAMP sur CentOS 7.

Ce tutoriel suppose que la mise en réseau privée de votre serveur est activée. Si ce n’est pas le cas, remplacez simplement toutes les références aux adresses IP privées par des adresses IP publiques.

Maintenant que les conditions préalables sont définies, passons à l’installation de Nagios 4.

Installez Nagios 4

Cette section explique comment installer Nagios 4 sur votre serveur de surveillance. Vous devez seulement remplir cette section une fois.

Installer les dépendances de construction

Comme nous construisons Nagios Core à partir des sources, nous devons installer quelques bibliothèques de développement qui nous permettront de terminer la construction.

Commencez par installer les packages requis:

sudo yum install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel xinetd unzip

Créer un utilisateur et un groupe Nagios

Nous devons créer un utilisateur et un groupe qui exécutera le processus Nagios. Créez un utilisateur “nagios” et un groupe “nagcmd”, puis ajoutez l’utilisateur au groupe avec les commandes suivantes:

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios

Nous allons maintenant installer Nagios.

Installez Nagios Core

Téléchargez le code source de la dernière version stable de Nagios Core. Allez à la page de téléchargements Nagios], puis cliquez sur le lien * Ignorer le téléchargement * sous le formulaire. Copiez l’adresse du lien de la dernière version stable pour pouvoir la télécharger sur votre serveur Nagios.

Au moment d’écrire ces lignes, la dernière version stable est Nagios 4.1.1. Téléchargez-le dans votre répertoire personnel avec curl:

cd ~
curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-.tar.gz

Extrayez l’archive Nagios avec cette commande:

tar xvf nagios-*.tar.gz

Ensuite, passez au répertoire extrait:

cd nagios-

Avant de construire Nagios, nous devons le configurer avec cette commande:

./configure --with-command-group=nagcmd

Maintenant, compilez Nagios avec cette commande:

make all

Nous pouvons maintenant exécuter ces commandes make pour installer Nagios, des scripts d’initialisation et des exemples de fichiers de configuration:

sudo make install
sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo make install-webconf

Pour pouvoir envoyer des commandes externes via l’interface Web à Nagios, nous devons ajouter l’utilisateur du serveur Web + apache + au groupe + nagcmd +:

sudo usermod -G nagcmd apache

Installer les plugins Nagios

Retrouvez la dernière version des plugins Nagios ici: http://nagios-plugins.org/download/?C=M;O=D#Nagios Plugins Download]. Copiez l’adresse du lien de la dernière version et copiez-la pour que vous puissiez la télécharger sur votre serveur Nagios.

Au moment d’écrire ces lignes, la dernière version est Nagios Plugins 2.1.1. Téléchargez-le dans votre répertoire personnel avec curl:

cd ~
curl -L -O http://nagios-plugins.org/download/nagios-plugins-.tar.gz

Extrayez l’archive des plugins Nagios avec cette commande:

tar xvf nagios-plugins-*.tar.gz

Ensuite, passez au répertoire extrait:

cd nagios-plugins-*

Avant de construire les plugins Nagios, nous devons le configurer. Utilisez cette commande:

./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl

Maintenant, compilez les plugins Nagios avec cette commande:

make

Puis installez-le avec cette commande:

sudo make install

Installer NRPE

Trouvez le code source de la dernière version stable de NRPE à la page NRPE]. Téléchargez la dernière version sur votre serveur Nagios.

Au moment d’écrire ces lignes, la dernière version est la 2.15. Téléchargez-le dans votre répertoire personnel avec curl:

cd ~
curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/.tar.gz

Extrayez l’archive NRPE avec cette commande:

tar xvf nrpe-*.tar.gz

Ensuite, passez au répertoire extrait:

cd nrpe-*

Configurez NRPE avec ces commandes:

./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu

Maintenant, construisez et installez NRPE et son script de démarrage xinetd avec les commandes suivantes:

make all
sudo make install
sudo make install-xinetd
sudo make install-daemon-config

Ouvrez le script de démarrage xinetd dans un éditeur:

sudo vi /etc/xinetd.d/nrpe

Modifiez la ligne + only_from + en ajoutant l’adresse IP privée de votre serveur Nagios à la fin (remplacez l’adresse IP réelle de votre serveur):

only_from = 127.0.0.1

Sauvegarder et quitter. Seul le serveur Nagios sera autorisé à communiquer avec NRPE.

Redémarrez le service xinetd pour démarrer NRPE:

sudo service xinetd restart

Maintenant que Nagios 4 est installé, nous devons le configurer.

Configurez Nagios

Maintenant, effectuons la configuration initiale de Nagios. Vous n’avez besoin d’exécuter cette section qu’une seule fois, sur votre serveur Nagios.

Organiser la configuration de Nagios

Ouvrez le fichier de configuration principal de Nagios dans votre éditeur de texte préféré. Nous allons utiliser vi pour éditer le fichier:

sudo vi /usr/local/nagios/etc/nagios.cfg

Maintenant, trouvez un commentaire sur cette ligne en supprimant le + # +:

#cfg_dir=/usr/local/nagios/etc/servers

Sauvegarder et quitter.

Créez maintenant le répertoire qui stockera le fichier de configuration pour chaque serveur à surveiller:

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

Configurer les contacts Nagios

Ouvrez la configuration des contacts Nagios dans votre éditeur de texte préféré. Nous allons utiliser vi pour éditer le fichier:

sudo vi /usr/local/nagios/etc/objects/contacts.cfg

Recherchez la directive email et remplacez sa valeur (la partie surlignée) par votre propre adresse email:

email                                   ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

Sauvegarder et quitter.

Configurer la commande check_nrpe

Ajoutons une nouvelle commande à notre configuration Nagios:

sudo vi /usr/local/nagios/etc/objects/commands.cfg

Ajoutez ce qui suit à la fin du fichier:

define command{
       command_name check_nrpe
       command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Sauvegarder et quitter. Cela vous permet d’utiliser la commande + check_nrpe + dans vos définitions de service Nagios.

Configurer Apache

Utilisez htpasswd pour créer un utilisateur admin, appelé «nagiosadmin», pouvant accéder à l’interface Web de Nagios:

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

Entrez un mot de passe à l’invite. N’oubliez pas cette connexion, car vous en aurez besoin pour accéder à l’interface Web de Nagios.

Nagios est prêt à être lancé. Faisons-le et redémarrez Apache:

sudo systemctl daemon-reload
sudo systemctl start nagios.service
sudo systemctl restart httpd.service

Pour permettre à Nagios de démarrer au démarrage du serveur, exécutez la commande suivante:

sudo chkconfig nagios on
Facultatif: restreindre l’accès par adresse IP

Si vous souhaitez restreindre les adresses IP pouvant accéder à l’interface Web de Nagios, vous souhaitez éditer le fichier de configuration Apache:

sudo vi /etc/httpd/conf.d/nagios.conf

Recherchez et commentez les deux lignes suivantes en ajoutant les symboles + # + devant elles:

Order allow,deny
Allow from all

Puis décommentez les lignes suivantes en supprimant les symboles + # + et ajoutez les adresses IP ou les plages (délimitées par des espaces) que vous souhaitez autoriser dans la ligne + Autoriser à partir de +:

#  Order deny,allow
#  Deny from all
#  Allow from 127.0.0.1

Comme ces lignes apparaîtront deux fois dans le fichier de configuration, vous devrez donc exécuter ces étapes encore une fois.

Sauvegarder et quitter.

Maintenant, lancez Nagios et redémarrez Apache pour que les modifications prennent effet:

sudo systemctl restart nagios.service
sudo systemctl restart httpd.service

Nagios est en cours d’exécution, essayons donc de vous connecter.

Accéder à l’interface Web de Nagios

Ouvrez votre navigateur Web préféré et allez sur votre serveur Nagios (remplacez l’adresse IP ou le nom d’hôte par la partie en surbrillance):

http:///nagios

Comme nous avons configuré Apache pour utiliser htpasswd, vous devez entrer les informations de connexion que vous avez créées précédemment. Nous avons utilisé «nagiosadmin» comme nom d’utilisateur:

image: https: //assets.digitalocean.com/articles/nagios/htpasswd_prompt.png [Invite d’authentification htaccess]

Après authentification, vous verrez la page d’accueil par défaut de Nagios. Cliquez sur le lien * Hôtes *, dans la barre de navigation de gauche, pour voir les hôtes surveillés par Nagios:

image: https: //assets.digitalocean.com/articles/nagios/hosts_link.png [Page hôtes Nagios]

Comme vous pouvez le constater, Nagios ne surveille que «localhost» ou lui-même.

Surveillons un autre hôte avec Nagios!

Surveiller un hôte CentOS 7 avec NRPE

Dans cette section, nous allons vous montrer comment ajouter un nouvel hôte à Nagios afin de le surveiller. Répétez cette section pour chaque serveur CentOS ou RHEL que vous souhaitez surveiller.

Sur un serveur que vous souhaitez surveiller, installez le référentiel EPEL:

sudo yum install epel-release

Maintenant, installez les plugins Nagios et NRPE:

sudo yum install nrpe nagios-plugins-all

Maintenant, mettons à jour le fichier de configuration NRPE. Ouvrez-le dans votre éditeur préféré (nous utilisons vi):

sudo vi /etc/nagios/nrpe.cfg

Recherchez la directive + allowed_hosts + et ajoutez l’adresse IP privée de votre serveur Nagios à la liste délimitée par des virgules (remplacez-la par l’exemple mis en évidence):

allowed_hosts=127.0.0.1

Sauvegarder et quitter. Cela configure NRPE pour accepter les demandes de votre serveur Nagios, via son adresse IP privée.

Redémarrez NRPE pour que le changement prenne effet:

sudo systemctl start nrpe.service
sudo systemctl enable nrpe.service

Une fois que vous avez terminé l’installation et la configuration de NRPE sur les hôtes que vous souhaitez surveiller, vous devrez ajouter ces hôtes à la configuration de votre serveur Nagios avant qu’il ne commence à les surveiller.

Ajouter un hôte à la configuration de Nagios

Sur votre serveur Nagios, créez un nouveau fichier de configuration pour chacun des hôtes distants que vous souhaitez surveiller dans + / usr / local / nagios / etc / servers / +. Remplacez le mot en surbrillance "yourhost" par le nom de votre hôte:

sudo vi /usr/local/nagios/etc/servers/.cfg

Ajoutez dans la définition d’hôte suivante, en remplaçant la valeur + nom_hôte + par votre nom d’hôte distant («web-1» dans l’exemple), la valeur + alias + par une description de l’hôte et la valeur + adresse + par l’adresse IP privée de l’hôte distant:

define host {
       use                             linux-server
       host_name
       alias
       address
       max_check_attempts              5
       check_period                    24x7
       notification_interval           30
       notification_period             24x7
}

Avec le fichier de configuration ci-dessus, Nagios ne surveillera que si l’hôte est actif ou inactif. Si cela vous suffit, enregistrez et quittez puis redémarrez Nagios. Si vous souhaitez surveiller des services particuliers, lisez la suite.

Ajoutez l’un de ces blocs de service pour les services que vous souhaitez surveiller. Notez que la valeur de check_command détermine ce qui sera surveillé, y compris les valeurs de seuil d’état. Voici quelques exemples que vous pouvez ajouter au fichier de configuration de votre hôte:

Ping:

define service {
       use                             generic-service
       host_name
       service_description             PING
       check_command                   check_ping!100.0,20%!500.0,60%
}

SSH (notifications_enabled défini sur 0 désactive les notifications pour un service):

define service {
       use                             generic-service
       host_name
       service_description             SSH
       check_command                   check_ssh
       notifications_enabled           0
}

Si vous n’êtes pas sûr de ce que signifie + utiliser le service générique +, il hérite simplement des valeurs d’un modèle de service appelé «service générique» défini par défaut.

Maintenant, enregistrez et quittez. Rechargez votre configuration Nagios pour appliquer tout changement:

sudo systemctl reload nagios.service

Une fois que vous avez fini de configurer Nagios pour surveiller tous vos hôtes distants, vous devriez être configuré. Assurez-vous d’accéder à votre interface Web Nagios et consultez la page * Services * pour voir tous vos hôtes et services surveillés:

image: https: //assets.digitalocean.com/articles/nagios/services.png [Page de services Nagios]

Conclusion

Maintenant que vous surveillez vos hôtes et certains de leurs services, vous voudrez peut-être passer un peu de temps pour déterminer quels services sont essentiels pour vous afin de pouvoir commencer à les surveiller. Vous pouvez également configurer des notifications afin que, par exemple, vous receviez un courrier électronique lorsque votre utilisation du disque atteint un seuil critique ou d’avertissement ou que votre site Web principal est en panne. Vous pouvez ainsi résoudre la situation rapidement ou avant qu’un problème ne se produise.

Bonne chance!