Catégories
Devops

Nagios Core 4.x

Outil libre de supervision d’infrastructure, Nagios est sur le marché depuis 1996 🧓… (alors appelé NetSaint 😇).
Il permet d’effectuer plusieurs type de supervision sur les serveurs ou équipements réseau distants, et les checks basiques peuvent être effectués dès que le serveur installé. Il est ensuite possible d’utiliser des addons pour superviser des équipements spécifiques, des middlwares ou autres.

Serveur Nagios Core 4.x

Installation

La version 4 de Nagios n’est pas actuellement dispo par APT, et l’installation du serveur (qui comprend le service et l’interface web de Nagios) passe donc par une phase de compilation puis d’installation depuis les sources 😱.
Mais pas d’inquiétude tout a déjà été scripté pour nous 😅.
Il suffit de suivre le guide officiel qui nous guide pas à pas en donnant la séquence de commandes à taper pour installer Nagios4.
L’install sur nos distributions  favorites Debian, Raspbian, Ubuntu est documenté (Attention à bien respecter les commandes pour votre version d’OS !)

Vérifier l’installation de Nagios 4 coté serveur avec un sudo service nagios status

et vous pouvez désormais accéder à l’interface web de Nagios visible sur http://ip_de_votre_serveur_nagios/nagios

Configuration

Une fois le serveur installé, il nous faut ajouter des objets à superviser, et Nagios distingue les Services et les Hôtes tout deux regroupable.

Les fichier de configurations sur ma distribution Ubuntu sont:

/usr/local/nagios/etc/nagios.cgf    # fichier de configuration principal de Nagios (qui référence les autres fichiers de conf)

/usr/local/nagios/etc/objects/*.cfg # templates de fichiers de conf

j’ai décidé de dupliquer le fichier /usr/local/nagios/etc/objects/localhost.cfg  en maconf.cfg j’ai remplacé la ligne contenant localhost.cfg par la suivante dans nagios.cgf :

cfg_file=/usr/local/nagios/etc/objects/maconf.cfg

un petit test de la conf sudo service nagios reload -t et si tout va bien on reload le service (sans le -t).

NRPE

coté sur Raspberry Pi

Pour pouvoir effectuer des contrôles plus poussés (CPU, mémoire etc) ou même custom, il est utile de passer par un addon Nagios nommé NRPE 🔗 qui sera a installer coté machine a surveiller (client):

sudo apt install nagios-nrpe-server

Il faudra ensuite ouvrir le port 5666 coté client, port utilisé par nrpe serveur (oui oui c’est le serveur qui doit être installé sur la machine a surveiller) si nécessaire.

Editer le fichier de conf /etc/nagios/nrpe.cfg en modifiant la ligne allowed_hosts=adresse_ip_serveur_nagios puis redémarrer le service:

sudo service nagios-nrpe-server restart

le fichier de config nrpe.cfg nous fourni déjà plusieurs checks et aussi quelques autres que l’on peut décommenter :

command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200

coté serveur

Il faut installer le plugin nagios-nrpe-plugin c’est l’outil qui va permettre à Nagios serveur d’interroger les clients:

sudo apt install nagios-nrpe-plugin

Une fois le binaire installé /usr/local/nagios/libexec/check_nrpe , il possible d’effectuer un test en live:

check_nrpe -H adresse_ip_machine_a_surveiller -c check_load

Pour finir, définir la commande check_nrpe dans /usr/local/nagios/etc/objects/commands.cfg:

define command {
  command_name check_nrpe
  command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
pour la rendre disponible dans les fichiers de config /usr/local/nagios/etc/objects/maconf.cfg:
define service {
        use generic-service
        host_name ip_de_lobjet_reseau_a_surveiller
        service_description CPU Load
        check_command check_nrpe!check_load
        notifications_enabled   0
}

Troubleshooting et test de communication client/serveur

  • vérifier si le port 5666 est bien ouvert coté client avec un bon vieux netcat par exemple:
    netcat -z -v -n 192.168.1.32 5666
  • vérifier que le service tourne bien coté client:
    sudo service nagios-nrpe-server status
  • fichiers de log coté serveur:
    tail /usr/local/nagios/var/nagios.log
  • vous trouverez la doc officiel de Nagios Core 4.x et du plugin NRPE en pdf

Screenshot