Comment installer Nagios 4 et surveiller vos serveurs sur Ubuntu 18.04

L'auteur a sélectionnéthe Open Source Initiative pour recevoir un don dans le cadre du programmeWrite for DOnations.

introduction

Nagios est un système de surveillance open-source populaire. Il tient un inventaire de vos serveurs et les surveille afin que vous sachiez que vos services critiques sont opérationnels. L'utilisation d'un système de surveillance tel que Nagios est un outil essentiel pour tout environnement de production. En surveillant le temps de disponibilité, l'utilisation du processeur ou l'espace disque, vous pouvez éviter les problèmes avant qu'ils ne surviennent ou avant que vos utilisateurs ne vous appellent.

Dans ce tutoriel, vous installerez et configurerez Nagios 4 de manière à pouvoir surveiller les ressources de l’hôte via l’interface Web de Nagios. Vous allez également configurer le NRPE (Nagios Remote Plugin Executor), qui s’exécute en tant qu’agent sur des hôtes distants afin que vous puissiez surveiller leurs ressources.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

  • Deux serveurs Ubuntu 18.04 configurés en suivant nosInitial Server Setup Guide for Ubuntu 18.04, y compris un utilisateur non root avec des privilèges sudo et un pare-feu configuré avecufw. Sur un serveur, vous installerez Nagios; ce tutoriel fera référence à cela comme lesNagios server. Il surveillera votre deuxième serveur; ce second serveur sera appelé lessecond Ubuntu server.

  • Apache et PHP doivent être installés sur le serveur qui exécutera le serveur Nagios. Suivezthis guide pour les configurer sur l'un de vos serveurs. Vous pouvez ignorer les étapes MySQL de ce tutoriel.

En règle générale, Nagios fonctionne derrière un pare-feu matériel ou un VPN. Si votre serveur Nagios est exposé à l’Internet public, vous devez sécuriser l’interface Web de Nagios en installant un certificat TLS / SSL. Ceci est facultatif maisstrongly encouraged. Vous pouvez suivre le guideLet’s Encrypt on Ubuntu 18.04 pour obtenir le certificat TLS / SSL gratuit.

Ce didacticiel suppose que vos serveurs ontprivate networking activés afin que la surveillance se fasse sur le réseau privé plutôt que sur le réseau public. Si vous n’avez pas activé la mise en réseau privée, vous pouvez toujours suivre ce tutoriel en remplaçant toutes les références aux adresses IP privées par des adresses IP publiques.

[[step-1 -—- Installing-nagios-4]] == Étape 1 - Installation de Nagios 4

Il existe plusieurs façons d’installer Nagios, mais vous devrez l’installer à partir de la source pour vous assurer d’obtenir les dernières fonctionnalités, mises à jour de sécurité et corrections de bugs.

Connectez-vous à votre serveur qui exécute Apache. Dans ce tutoriel, nous appellerons cela lesNagios server:

ssh sammy@your_nagios_server_ip

Comme vous construisez Nagios et ses composants à partir des sources, vous devez installer quelques bibliothèques de développement pour compléter la construction, notamment des compilateurs, des en-têtes de développement et OpenSSL.

Mettez à jour vos listes de paquets pour vous assurer de pouvoir télécharger les dernières versions des conditions préalables:

sudo apt update

Ensuite, installez les packages requis:

sudo apt install autoconf gcc make unzip libgd-dev libmcrypt-dev libssl-dev dc snmp libnet-snmp-perl gettext

Une fois les conditions préalables installées, vous pouvez installer Nagios lui-même. Téléchargez le code source de la dernière version stable de Nagios Core. Accédez auxNagios downloads page et cliquez sur le lienSkip to download sous le formulaire. Copiez l'adresse du lien de la dernière version stable pour pouvoir la télécharger sur votre serveur Nagios.

Téléchargez la version dans votre répertoire personnel avec la commandecurl:

cd ~
curl -L -O https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.4.tar.gz

Extrayez l'archive Nagios:

tar zxf nagios-4.4.4.tar.gz

Ensuite, passez au répertoire extrait:

cd nagioscore-nagios-4.4.4

Avant de construire Nagios, exécutez le scriptconfigure et spécifiez le répertoire de configuration Apache:

./configure --with-httpd-conf=/etc/apache2/sites-enabled

[.note] #Note: Si vous voulez que Nagios envoie des courriels avec Postfix, vous devezinstall Postfix et configurer Nagios pour l'utiliser en ajoutant--with-mail=/usr/sbin/sendmail à la commandeconfigure. Nous ne couvrirons pas Postfix dans ce tutoriel, mais si vous choisissez d'utiliser Postfix et Nagios plus tard, vous devrez reconfigurer et réinstaller Nagios pour utiliser le support Postfix.
#

Vous verrez le résultat suivant de la commandeconfigure:

Output*** Configuration summary for nagios 4.4.4 2019-07-29 ***:

 General Options:
 -------------------------
        Nagios executable:  nagios
        Nagios user/group:  nagios,nagios
       Command user/group:  nagios,nagios
             Event Broker:  yes
        Install ${prefix}:  /usr/local/nagios
    Install ${includedir}:  /usr/local/nagios/include/nagios
                Lock file:  /run/nagios.lock
   Check result directory:  /usr/local/nagios/var/spool/checkresults
           Init directory:  /lib/systemd/system
  Apache conf.d directory:  /etc/apache2/sites-enabled
             Mail program:  /bin/mail
                  Host OS:  linux-gnu
          IOBroker Method:  epoll

 Web Interface Options:
 ------------------------
                 HTML URL:  http://localhost/nagios/
                  CGI URL:  http://localhost/nagios/cgi-bin/
 Traceroute (used by WAP):


Review the options above for accuracy.  If they look okay,
type 'make all' to compile the main program and CGIs.

Maintenant compilez Nagios avec cette commande:

make all

Créez ensuite un utilisateurnagios et un groupenagios. Ils seront utilisés pour exécuter le processus Nagios:

sudo make install-groups-users

Maintenant, exécutez ces commandesmake pour installer les fichiers binaires Nagios, les fichiers de service et ses exemples de fichiers de configuration:

sudo make install
sudo make install-daemoninit
sudo make install-commandmode
sudo make install-config

Vous utiliserez Apache pour servir l’interface Web de Nagios. Exécutez ce qui suit pour installer les fichiers de configuration d’Apache et configurer ses paramètres:

sudo make install-webconf

Activez les modules Apacherewrite etcgi avec la commandea2enmod:

sudo a2enmod rewrite
sudo a2enmod cgi

Afin d'émettre des commandes externes via l'interface Web vers Nagios, ajoutez l'utilisateur du serveur Web,www-data, au groupenagios:

sudo usermod -a -G nagios www-data

Utilisez la commandehtpasswd pour créer un utilisateur administrateur appelénagiosadmin qui peut accéder à l'interface Web de Nagios:

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

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

[.warning] #Warning: Si vous créez un utilisateur avec un nom autre quenagiosadmin, vous devrez éditer/usr/local/nagios/etc/cgi.cfg et changer toutes les référencesnagiosadmin à l'utilisateur que vous créé.
#

Redémarrez Apache pour charger la nouvelle configuration Apache:

sudo systemctl restart apache2

Vous avez maintenant installé Nagios. Mais pour que cela fonctionne, il est nécessaire d’installer les plugins Nagios, que vous allez couvrir dans la prochaine étape.

[[step-2 -—- installation-the-nagios-plugins]] == Étape 2 - Installation des plugins Nagios

Nagios a besoin de plugins pour fonctionner correctement. Le paquet officiel des plug-ins Nagios contient plus de 50 plug-ins vous permettant de surveiller des services de base tels que la disponibilité, l'utilisation du disque, l'utilisation du swap, NTP, etc.

Installons le paquet de plugins.

Vous pouvez trouver la dernière version des plugins Nagios sur leofficial site.

Téléchargez-le dans votre répertoire personnel aveccurl:

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

Extrayez l'archive NRPE et naviguez dans le répertoire extrait:

tar zxf nagios-plugins-<^>2.2.1<^.tar.gz
cd nagios-plugins-2.2.1

Ensuite, configurez leur installation:

./configure

Maintenant, construisez et installez les plugins:

make
sudo make install

Maintenant, les plugins sont installés, mais vous avez besoin d'un plugin supplémentaire pour surveiller les serveurs distants. Nous allons l’installer ensuite.

[[step-3 -—- Installing-the-check_nrpe-plugin]] == Étape 3 - Installation du plugin check_nrpe

Nagios surveille les hôtes distants à l'aide de Nagios Remote Plugin Executor ou NRPE. Il se compose de deux pièces:

  • Le plugincheck_nrpe utilisé par le serveur Nagios.

  • Le démon NRPE, qui s'exécute sur les hôtes distants et envoie des données au serveur Nagios.

Installons le plugincheck_nrpe sur notre serveur Nagios.

Trouvez l'URL de téléchargement de la dernière version stable de NRPE auGitHub page.

Téléchargez-le dans votre répertoire personnel aveccurl:

cd ~
curl -L -O https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz

Extrayez l'archive NRPE:

tar zxf nrpe-3.2.1.tar.gz

Ensuite, passez au répertoire extrait:

cd nrpe-3.2.1

Configurez le plugincheck_nrpe:

./configure

Maintenant, construisez et installez le plugincheck_nrpe:

make check_nrpe
sudo make install-plugin

Configurons ensuite le serveur Nagios.

[[step-4 -—- configuring-nagios]] == Étape 4 - Configuration de Nagios

Exécutons maintenant la configuration initiale de Nagios, qui implique la modification de certains fichiers de configuration. Il vous suffit d’effectuer cette section une fois sur votre serveur Nagios.

Ouvrez le fichier de configuration principal de Nagios dans votre éditeur de texte préféré. Ici, vous utilisereznano:

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

Trouvez cette ligne dans le fichier:

/usr/local/nagios/etc/nagios.cfg

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

Décommentez cette ligne en supprimant le caractère# du début de la ligne:

/usr/local/nagios/etc/nagios.cfg

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

Enregistrez et fermeznagios.cfg en appuyant surCTRL+X, suivi deY, puis deENTER (si vous utiliseznano).

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

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

Ouvrez la configuration des contacts Nagios dans votre éditeur de texte:

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

Recherchez la directiveemail et remplacez sa valeur par votre propre adresse e-mail:

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

...
define contact{
        contact_name                    nagiosadmin             ; Short name of user
        use                             generic-contact         ; Inherit default values from generic-contact template (defined above)
        alias                           Nagios Admin            ; Full name of user
        email                           your_email@your_domain.com        ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
...

Enregistrez et quittez l'éditeur.

Ensuite, ajoutez une nouvelle commande à votre configuration Nagios qui vous permet d'utiliser la commandecheck_nrpe dans les définitions de service Nagios. Ouvrez le fichier/usr/local/nagios/etc/objects/commands.cfg dans votre éditeur:

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

Ajoutez ce qui suit à la fin du fichier pour définir une nouvelle commande appeléecheck_nrpe:

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

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

Ceci définit le nom et spécifie les options de ligne de commande pour exécuter le plug-in.

Enregistrez et quittez l'éditeur.

Ensuite, démarrez Nagios et activez-le pour démarrer au démarrage du serveur:

sudo systemctl start nagios

Nagios fonctionne maintenant, alors connectons-nous à son interface Web.

[[step-5 -—- access-the-nagios-web-interface]] == Étape 5 - Accéder à l'interface Web de Nagios

Ouvrez votre navigateur Web préféré et accédez à votre serveur Nagios en visitanthttp://nagios_server_public_ip/nagios.

Entrez les informations de connexion pour l'interface Web dans la fenêtre contextuelle qui apparaît. Utiliseznagiosadmin pour le nom d'utilisateur et le mot de passe que vous avez créé pour cet utilisateur.

Après authentification, vous verrez la page d'accueil par défaut de Nagios. Cliquez sur le lienHosts dans la barre de navigation de gauche pour voir quels hôtes Nagios surveille:

Nagios Hosts Page

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

Surveillons notre autre serveur avec Nagios,

[[step-6 -—- installation-nagios-plugins-and-nrpe-daemon-on-a-host]] == Étape 6 - Installation des plugins Nagios et du démon NRPE sur un hôte

Ajoutons un nouvel hôte pour que Nagios puisse le surveiller. Vous allez installer le NRPE (Remote Plugin Executor) de Nagios sur l’hôte distant, installer certains plug-ins, puis configurer le serveur Nagios pour surveiller cet hôte.

Connectez-vous au deuxième serveur, que nous appellerons lessecond Ubuntu server:

ssh sammy@your_monitored_server_ip

Créez d'abord un utilisateurnagios qui exécutera l'agent NRPE:

sudo useradd nagios

Vous allez installer NRPE à partir des sources, ce qui signifie que vous aurez besoin des mêmes bibliothèques de développement que celles installées sur le serveur Nagios à l’étape 1. Mettez à jour vos sources de paquets et installez les prérequis NRPE:

sudo apt update
sudo apt install autoconf gcc libmcrypt-dev make libssl-dev wget dc build-essential gettext

NRPE nécessite queNagios Plugins soit installé sur l'hôte distant. Installons ce paquet depuis les sources.

Trouvez la dernière version des plugins Nagios sur la pagedownloads.

Téléchargez les plugins Nagios dans votre répertoire personnel aveccurl:

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

Extrayez l’archive des plugins Nagios et allez dans le répertoire extrait:

tar zxf nagios-plugins-2.2.1.tar.gz
cd nagios-plugins-2.2.1

Avant de créer des plugins Nagios, configurez-les avec la commande suivante:

./configure

Maintenant, compilez les plugins:

make

Puis installez-les en lançant:

sudo make install

Ensuite, installez le démon NRPE. Trouvez l'URL de téléchargement de la dernière version stable de NRPE auxGitHub page, comme vous l'avez fait à l'étape 3. Téléchargez la dernière version stable de NRPE dans le répertoire de base de votre serveur surveillé aveccurl:

cd ~
curl -L -O https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz

Extrayez l’archive NRPE avec cette commande:

tar zxf nrpe-3.2.1.tar.gz

Ensuite, passez au répertoire extrait:

cd nrpe-3.2.1

Configurez NRPE:

./configure

Maintenant, construisez et installez NRPE et son script de démarrage avec ces commandes:

make nrpe
sudo make install-daemon
sudo make install-config
sudo make install-init

Maintenant, mettons à jour le fichier de configuration NRPE et ajoutons quelques vérifications de base que Nagios peut surveiller.

Commençons par surveiller l’utilisation du disque par ce serveur. Utilisez la commandedf -h pour rechercher le système de fichiers racine. Vous utiliserez ce nom de système de fichiers dans la configuration NRPE:

df -h /

Vous verrez une sortie semblable à celle-ci:

OutputFilesystem      Size  Used Avail Use% Mounted on
/dev/vda1        25G  1.4G   23G   6% /

Ouvrez maintenant le fichier/usr/local/nagios/etc/nrpe.cfg dans votre éditeur:

sudo nano /usr/local/nagios/etc/nrpe.cfg

Le fichier de configuration NRPE est très long et plein de commentaires. Vous devrez trouver et modifier quelques lignes:

  • server_address: défini sur l'adresse IP privée du serveur surveillé.

  • allowed_hosts: Ajoutez l'adresse IP privée de votre serveur Nagios à la liste délimitée par des virgules.

  • command[check_hda1]: remplacez/dev/hda1 par le nom de votre système de fichiers racine.

Localisez ces paramètres et modifiez-les de manière appropriée:

/usr/local/nagios/etc/nrpe.cfg

...
server_address=second_ubuntu_server_private_ip
...
allowed_hosts=127.0.0.1,::1,your_nagios_server_private_ip
...
command[check_vda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/vda1
...

Enregistrez et quittez l'éditeur. Maintenant, vous pouvez démarrer NRPE:

sudo systemctl start nrpe.service

Assurez-vous que le service est en cours d'exécution en vérifiant son statut:

sudo systemctl status nrpe.service

Vous verrez le résultat suivant:

Output...
Aug 01 06:28:31 client systemd[1]: Started Nagios Remote Plugin Executor.
Aug 01 06:28:31 client nrpe[8021]: Starting up daemon
Aug 01 06:28:31 client nrpe[8021]: Server listening on 0.0.0.0 port 5666.
Aug 01 06:28:31 client nrpe[8021]: Server listening on :: port 5666.
Aug 01 06:28:31 client nrpe[8021]: Listening for connections on port 5666
Aug 01 06:28:31 client nrpe[8021]: Allowing connections from: 127.0.0.1,::1,165.22.212.38

Ensuite, autorisez l'accès au port5666 via le pare-feu. Si vous utilisez UFW, configurez-le pour autoriser les connexions TCP au port5666 avec la commande suivante:

sudo ufw allow 5666/tcp

Vous pouvez en savoir plus sur UFW dansHow To Set Up a Firewall with UFW on Ubuntu 18.04.

Vous pouvez maintenant vérifier la communication avec le serveur NRPE distant. Exécutez la commande suivante sur le serveur Nagios:

/usr/local/nagios/libexec/check_nrpe -H second_ubuntu_server_ip

Vous verrez le résultat suivant:

OutputNRPE v3.2.1

Répétez les étapes de cette section pour chaque serveur supplémentaire à surveiller.

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. Faisons-le ensuite.

[[step-7 -—- monitoring-hosts-with-nagios]] == Étape 7 - Surveillance des hôtes avec Nagios

Pour surveiller vos hôtes avec Nagios, vous allez ajouter des fichiers de configuration pour chaque hôte en spécifiant ce que vous souhaitez surveiller. Vous pouvez ensuite afficher ces hôtes dans l'interface Web 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,monitored_server_host_name par le nom de votre hôte:

sudo nano /usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg

Ajoutez la définition d'hôte suivante, en remplaçant la valeurhost_name par votre nom d'hôte distant, la valeuralias par une description de l'hôte et la valeuraddress par l'adresse IP privée de l'hôte distant :

/usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg

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

Avec cette configuration, Nagios ne vous dira que si l'hôte est actif ou non. Ajoutons quelques services à surveiller.

Premièrement, ajoutez ce bloc pour surveiller la charge moyenne:

/usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg

define service {
        use                             generic-service
        host_name                       your_monitored_server_host_name
        service_description             Load average
        check_command                   check_nrpe!check_load
}

La directiveuse generic-service dit à Nagios d'hériter des valeurs d'un modèle de service appelégeneric-service, qui est prédéfini par Nagios.

Ensuite, ajoutez ce bloc pour surveiller l'utilisation du disque:

/usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg

define service {
        use                             generic-service
        host_name                       your_monitored_server_host_name
        service_description             /dev/vda1 free space
        check_command                   check_nrpe!check_vda1
}

Maintenant, enregistrez et quittez. Redémarrez le service Nagios pour appliquer les modifications suivantes:

sudo systemctl restart nagios

Après quelques minutes, Nagios vérifiera les nouveaux hôtes et vous les verrez dans l’interface Web de Nagios. Cliquez sur le lienServices dans la barre de navigation de gauche pour voir tous vos hôtes et services surveillés.

Nagios Services Page

Conclusion

Vous avez installé Nagios sur un serveur et l'avez configuré pour surveiller l'utilisation moyenne du disque et la charge d'au moins un ordinateur distant.

Maintenant que vous surveillez un hôte et certains de ses services, vous pouvez commencer à utiliser Nagios pour surveiller vos services critiques. Vous pouvez utiliser Nagios pour configurer des notifications pour des événements critiques. Par exemple, vous pouvez recevoir un courrier électronique lorsque l'utilisation de votre disque atteint un seuil d'avertissement ou critique, ou une notification lorsque votre site Web principal est en panne. De cette façon, vous pouvez résoudre la situation rapidement ou même avant qu'un problème ne survienne.

Related