Pour le contexte d'atelier professionnel de l'aeroclub, afin de pouvoir monitorer les différents sreveurs présents au sein de la structure, nous avons décidé d'adopter la solution de Nagios.
Nagios est un outil de supervisation réseau qui nous permet de pouvoir créer nos propres sondes afin de surveiller un port spécifique sur un serveur distant.
Pour des soucis d'quthentification impossible à activer sur Debian 11 nous avons utilisé une machine sous Debian 10.
Pour commencer nous installons et faisons la configuration de notre machine Debian n effectuant les mises à jours.
apt update -y && apt upgrade -yEnsuite, nous allons installer Nagios4
apt install nagios4nous allons activer deux mods d'apache
a2enmod auth_digesta2enmod authz_groupfileEnsuite nous pouvons tester la page web de nagios en se rendant sur un navigateur web et en y mettant l'ip du serveur/nagios4
Une fois que nous avons constaté que l'interface web de nagios répond, on peut retourner sur la console ssh afin d'activer l'authentification pour nagios.
Pour ce faire, nous allons nous rendre dans /etc/nagios4 et faire
nano apache2.confnous allons nous prencher sur cette partie du fichier de configuration
on va commenter quelque lignes dans cette partie et la configuration doit maintenant ressembler à cela :
on va rester dans le dossier /etc/nagios4 et on va aller éditer un autre fichier :
nano cgi.cfgon va descendre et trouver la ligne suivante et nous allons changer le 0 par un 1
Ensuite, nous allons créer notre utilisateur qui aura tout les droit d'utilisation sur l'interface web de nagios que l'on va nommer test et dont le mot de passe sera test avec la commande :
htdigest htdigest.users Nagios4 testIl ne reste plus qu'a attibuer le mot de passe que l'utilisateur de mot de passe aura
Ensuite, on va aller retourner dans le fichier cgi.cfg afin de donner tout les droits dans le dossier /etc/nagios4.
Les lignes qui permettent de donner tout les droits à notre utilisateur test finnissent toutes par nagiosadmin le compte par défaut de nagios.
On va donc partir à la recher dans le fichier de toutes ces lignes qui se finissent par nagiosadmin et on va enlever nagios afmin pour mettre le nom de notre utilisateur.
on va redémarrer le serveur apache et nagios
systemctl restart nagios4.service apache2.servicenotre serveur nagios necéssite maintenant un login et un mot de passe afin de se connecter.
Ensuite, on va commencer l'ajout des serveurs afin de pouvoir monitorer différents services dessus en allant dans /etc/nagios4/conf.d/
on va créer une sonde pour un serveur qui tourne sur du Debian 10.
nano debian10.cfg
ici le serveur est un vpn openvpn dont l'hostname et l'alias sont web. son adresse est 10.21.76.250.
après avoir enregistré, on va utiliser la commande suivante qui va nous permettre de savoir si dans la configuration de l'ajout du serveur web il y a eu une faute
nagios4 -v /etc/nagios4/nagios.cfg
ici la commande nous informe qu'aucune erreur a été détectée et on peut donc procéder par un restart d'apache et de nagios4 avec la commande :
systemctl restart nagios4.service apache2.service
on peut voir que nagios détecte le serveur web comme étant acitif.
Ensuite nous pouvons ajouter des sondes afin de détecter si elle répond au ping, si le port ssh est actif par exemple.
notre fichier ressemble à cela mais afin de récupérer les données par exemple de l'espace disque de notre serveur ou la charge cpu ou autre, il faut installer un composant sur le serveur en faisant :
apt install nagios-nrpe-serverEnsuite, toujours sur le serveur que nous voulons monitorer, on va se rendre dans /etc/nagios et faire :
nano nrpe.cfg
on trouve la ligne allowed_host et on y met l'adresse ip de notre serveur nagios.
Ensuite, sur le serveur nagios on va installer le plugin nrpe :
apt install nagios-nrpe-pluginEnsutie, on va tester la liaison nrpe avec le serveur nagios en faisant :
/usr/lib/nagios/plugins/check_nrpe -H 10.21.76.250
le serveur web répond bien au check-nrpe initié par le serveur nagios.
Ensuite afin de d'ajouter une sonde qui va regarder la place libre sur le disque dur, on va aller sur le serveur web dans /etc/nagios et faire nano nrpe.cfg
on observe que la sonde permettant de vérifier l'espace disque est déjà dans nrpe.cfg sous le nom check-hda1 sauf que dans mon cas, au bout de la ligne c'est /dev/mmcblk0.
on va aller sur la ligne de la commande check_hda1 et on va faire ctrl k puis ctrl u et on va créer un espace entre les sondes de base et les sondes modifiées.
La commande a été renommée check_dd
on redémarre le serveur nrpe avec la commande :
systemctl restart nagios-server-nrpe.serviceon retourne sur le serveur nagios et on va aller ajouter cette sonde dans le fichier debian10.cfg dans /etc/nagios4/conf.d
(ce n'est pas check_hda1 mais check_dd)
On redémarre le apache et nagios4 et on va aller observer le résultat de la sonde check_dd
la sonde répond et indique qu'il y a 762Mb.
voici les principales sondes mises sur les serveurs linux.
La seule sonde qui est en plus est la sonde permettant de tester la base de données de l'aeroclub afin de savoir si celle-ci répond.
afin de la définir comme elle est, nous sommes allés dans /etc/nagios-plugins/config et nous avons éditer le fichier pgsql.cfg
Cette sonde au niveau de l'interface web de nagios nous répond de la façon suivante :
Nagios permet aussi de monitorer les serveurs windows comme le serveur AD de l'aeroclub et pour ce faire, il faut télécharger un .msi qui se nomme nsclient.
télécharger dossier nsclientDans cette archive se trouve le .msi de nsclient et un fichier .txt avec les commandes principales.
Après le téléchargement et le transfert sur le serveur Windows, on lance le .msi et on va arriver sur cette fenêtre :
Dans allowed host on va aller mettre l'adresse ip de notre serveur nagios et on va mettre un mot de passe pour le contact entre les deux. Pour ce qui est des options, cocher comme ci-dessus.
pour tester que tout fonctionne dans le fichier .txt présent dans l'archive, on va tester la commande check_nt_disk.
Afin que le serveur nagios comprenne ce que nous voulons sonder, on va aller dans /etc/nagios-plugins/config et on va aller créer le fichier win-nt.cfg qui va contenir les définitions des sondes prises dans le .txt
Dans le fichier, nous devons inclure après le -s le mot de passe que nous avons défini lors de l'installation de nsclient.
sur notre serveur nagios dans /etc/nagios4/conf.d on va créer un nouveau fichier pour définir le serveur AD.
la sonde définie comme ci-dessus permet à nagios d'émettre un warning à partir de 70% et un critique lorsque l'espace disque dépasse les 90%.
On peut aussi sonder la charge de cpu ou la RAM également.
contenu complet du fichier win-nt.cfg dans /etc/nagios-plugins/config
win-nt
Dans /etc/nagios4/conf.d on a créer un fichier host.cfg contenant des paramètres afin de grouper les appareils sondés par famille. on a aussi attribué un icône au host qu'il faut aller déposer dans /usr/share/nagios4/htdocs/image/logos au format .png et d'un taille maximale de 40*40.
par exemple les machines linux auront l'icône nommé debian11.png
Après avoir attribué des icônes pour chaque groupes, on va maintenant placer chaque machine afin d'avoir un mapage selon l'organisation du réseau.
Pour ce faire, on va dans /etc/nagios4/conf.d et dans chaque machine que nous avons ajoutée, dans le premier bloc on va insérer la ligne 2d_coords x,y qui va permettre de placer la machine sur la map dans l'onglet legacy de l'interface web de nagios.
Ensuite, si nous voulons au niveau de la map de nagios dire que le serveur AD est branché sur le switch SwA2, on va revenir dans le define host de notre serveur AD pour rajouter parents SwA2 dans la configuration.