Nagios
Installation
Tout d'abord, installez le paquet nagios sur serveur01. Dans un terminal, saisissez :
sudo apt install nagios3 nagios-nrpe-plugin
Il vous sera alors demandé d'entrer un mot de passe pour l'utilisateur nagiosadmin. Les droits d'accès des utilisateurs sont conservés dans le fichier /etc/nagios3/htpasswd.users. Pour changer le mot de passe de nagiosadmin, ou ajouter d'autres utilisateurs aux scripts CGI de Nagios, utilisez htpasswd, qui fait partie du paquet apache2-utils.
Par exemple, pour changer le mot de passe de l'utilisateur nagiosadmin, entrez:
sudo htpasswd /etc/nagios3/htpasswd.users nagiosadmin
Pour ajouter un utilisateur :
sudo htpasswd /etc/nagios3/htpasswd.users steve
Ensuite, sur serveur02, installez le paquet nagios-nrpe-server. Depuis un terminal sur serveur02, entrez:
sudo apt install nagios-nrpe-server
NRPE vous permet d'exécuter des vérifications locales sur des hôtes distants. Il existe d'autres façons d'accomplir ces vérifications, ainsi que d'autres, grâce à d'autres greffons de Nagios.
Vue d'ensemble de la configuration
Il y a plusieurs répertoires contenant les fichiers de configuration et de tests de Nagios.
-
/etc/nagios3 : contient les fichiers de configuration pour l'exécution du démon nagios, des fichiers CGI, des hôtes, etc.
-
/etc/nagios-plugins : héberge les fichiers de configuration pour les vérifications du service.
-
/etc/nagios : sur l'hôte distant, contient les fichiers de configuration de nagios-nrpe-server.
-
/usr/lib/nagios/plugins/ : où les fichiers binaires vérifiés sont conservés. Pour consulter les options de vérification, utilisez l'option -h.
Par exemple: /usr/lib/nagios/plugins/check_dhcp -h
Nagios peut être configuré pour exécuter une pléthore de vérifications pour n'importe quel hôte donné. Pour cet exemple Nagios sera configuré pour vérifier l'espace disque, les DNS, et un groupe d'hôtes MySQL. Le contrôle des DNS sera fait sur server02, et le groupe d'hôtes MySQL contiendra server01 et server02.
Voir HTTPD - serveur web Apache2 pour les détails concernant la préparation d'Apache, Service de nom de domaine (DNS) pour DNS, et MySQL pour MySQL.
En complément, voici quelques termes qui, une fois expliqués, faciliteront la compréhension de la configuration de Nagios :
-
Hôte : un serveur, une station de travail, un périphérique réseau, etc., qui est en train d'être contrôlé.
-
Groupe d'hôtes : un groupe d'hôtes similaires. Par exemple, vous pourriez grouper tous les serveurs web, les serveurs de fichiers, etc.
-
Service : le service qui est en train d'être contrôlé sur l'hôte. Comme HTTP, DNS, NFS, etc.
-
Groupe de services : vous permet de grouper plusieurs services ensemble. Ceci est utile pour regrouper plusieurs HTTP.
-
Contact : personne à prévenir quand un événement se produit. Nagios peut être configuré pour envoyer des courriels, des SMS, etc.
Par défaut, Nagios est configuré pour vérifier HTTP, l'espace disque, SSH, les utilisateurs actuels, les processus, et la charge de l'hôte local. Nagios lancera aussi un ping de vérification sur la passerelle.
Les grosses installations de Nagios peuvent s'avérer compliquées à configurer. Il est généralement plus sage de commencer par une petite installation d'un ou deux hôtes, et de la configurer comme vous l'entendez avant de l'agrandir.
Configuration
-
-
Tout d'abord, créez un fichier de configuration hôte pour serveur02. Sauf indication contraire, exécuter toutes ces commandes sur serveur01. Dans un terminal saisissez :
sudo cp /etc/nagios3/conf.d/localhost_nagios2.cfg \ /etc/nagios3/conf.d/server02.cfg
Dans les exemples de commandes ci-dessus et ci-dessous, remplacez « serveur01 », « serveur02 »172.18.100.100 et 172.18.100.101 par les noms et les adresses IP de vos serveurs.
-
Ensuite, modifiez /etc/nagios3/conf.d/serveur02.cfg:
define host{ use generic-host ; Name of host template to use host_name server02 alias Server 02 address 172.18.100.101 } # check DNS service. define service { use generic-service host_name server02 service_description DNS check_command check_dns!172.18.100.101 }
-
Relancez le démon nagios pour activer la nouvelle configuration :
sudo systemctl restart nagio3.service
-
-
-
Maintenant, définissez un nouveau service pour la vérification de MySQL, en ajoutant ceci au fichier /etc/nagios3/conf.d/services_nagios2.cfg :
# check MySQL servers. define service { hostgroup_name mysql-servers service_description MySQL check_command check_mysql_cmdlinecred!nagios!secret!$HOSTADDRESS use generic-service notification_interval 0 ; set > 0 if you want to be renotified }
-
Maintenant, Il faut définir un groupe d’hôtes serveurs-mysql. Modifiez /etc/nagios3/conf.d/hostgroups_nagios2.cfg en y ajoutant :
# Groupe d'hôtes MySQL. define hostgroup { hostgroup_name mysql-serveurs alias MySQL serveurs members localhost, serveur02 }
-
La vérification de Nagios a besoin de s'authentifier auprès de MySQL. Pour ajouter nagios en tant qu'utilisateur de MySQL, entrez :
mysql -u root -p -e "create user nagios identified by 'secret';"
L'utilisateur nagios devra être ajouté pour tous les hôtes du groupe mysql-serveurs.
-
Redémarrez nagios pour commencer à vérifier les serveurs MySQL.
sudo systemctl restart nagios3.service
-
-
-
Enfin, configurez NRPE pour vérifier l'espace disque sur serveur02.
Sur serveur01 ajoutez le service de vérification dans /etc/nagios3/conf.d/serveur02.cfg :
# NRPE disk check. define service { use generic-service host_name server02 service_description nrpe-disk check_command check_nrpe_1arg!check_all_disks!172.18.100.101 }
-
Maintenant sur serveur02, modifiez /etc/nagios/nrpe.cfg en y changeant :
allowed_hosts=172.18.100.100
Et dessous, dans la zone de définition de commande, ajoutez :
command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -e
-
Pour finir, redémarrez nagios-nrpe-server:
sudo systemctl restart nagios-nrpe-server.service
-
De plus, sur serveur01, redémarrez nagios :
sudo systemctl restart nagios3.service
-
Vous devriez maintenant être capable de voir l'hôte et les services de vérification dans les fichiers CGI de Nagios. Pour y accéder, rendez-vous sur http://server01/nagios3 avec votre navigateur. Il vous sera demandé le nom d'utilisateur et le mot de passe de nagiosadmin.
Références
Cette partie n'a fait qu'effleurer le potentiel des fonctionnalités de Nagios. nagios-plugins-extra et nagios-snmp-plugins contiennent bien plus de services de vérification.
-
Pour plus d'informations, voir le site internet de Nagios.
-
Plus précisément, le site de documentation en ligne (en anglais).
-
Ci-dessous, une liste de livres traitant de Nagios et de la supervision réseau :
-
La page du wiki Ubuntu sur Nagios (en anglais) contient plus de détails.