Dans ce chapitre vous allez installer les plugins standards de Nagios. Ces plugins sont dits « standards » parce que développés et maintenus par l’équipe de développement Nagios, contrairement aux plugins dits « communautaires », mis à disposition par la communauté des utilisateurs Nagios via la plateforme https://exchange.nagios.org.
Une fois les plugins installés, nous définirons des alias de commande pour faciliter leur utilisation. Bien que cette étape ne soit pas obligatoire, elle pourra vous faire gagner du temps dans la suite du cours.
Préparez un serveur Debian à recevoir les plugins standards de Nagios
Vous avez normalement déjà effectué la phase de préparation dans le premier chapitre de cette partie, en installant toutes les dépendances nécessaires. Nagios précise tout de même quelques spécificités concernant l’utilisation de plugins particuliers. Vous pouvez retrouver ces informations ainsi que le processus d’installation des plugins sur la page suivante.
Vous pourrez notamment y trouver les instructions pour des plugins spécifiques comme, par exemple, la gestion d’un LDAP, d’une base de données MySQL ou encore de Samba :
Quoi qu’il en soit, le processus d’installation des plugins va aussi vérifier l’installation des composants nécessaires, signaler s’il en manque ou si tel ou tel plugin ne peut être compilé.
Téléchargez et compilez les sources des plugins standards de Nagios
Les sources des plugins standards de Nagios sont également disponibles gratuitement sur le site de Nagios : https://www.nagios.org.
Le chemin pour accéder au téléchargement est quasiment le même que celui pour les sources de Nagios. L’écran final vous propose le lien direct vers le fichier archive :
Effectuez un clic droit sur le lien de téléchargement des sources nagios-plugins-X.X.X.tar.gz
, et copiez l’adresse dans le presse-papier.
À partir de votre terminal d’accès au serveur Nagios, téléchargez les sources dans le répertoire/home/nagios/downloads
avec les commandes suivantes :
cd /home/nagios/downloads
wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
Si tout se passe bien, les sources des plugins standards (ici, ceux de la version 2.2.1) sont téléchargées sur le serveur :
Résolution de nagios-plugins.org (nagios-plugins.org)… 72.14.186.43
Connexion à nagios-plugins.org (nagios-plugins.org)|72.14.186.43|:443… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 2728818 (2,6M) [application/x-gzip]
Sauvegarde en : `nagios-plugins-2.2.1.tar.gz`
nagios-plugins-2.2.1.tar.gz 100%[==============================================================>] 2,60M 896KB/s in 3,0s
2018-11-23 12:25:15 (896 KB/s) — `nagios-plugins-2.2.1.tar.gz` sauvegardé [2728818/2728818]
Décompressez l’archive des sources via la commande suivante :
tar -zxvf nagios-plugins-2.2.1.tar.gz
Cette commande crée un répertoire nagios-plugins-2.2.1
dans le répertoire courant et y décompresse les sources.
Positionnez-vous dans ce nouveau répertoire via la commande suivante :
cd nagios-plugins-2.2.1/
Ce que nous allons faire ressemble au processus de compilation des sources de Nagios, que nous avons vu au chapitre précédent. Il est nécessaire de lancer le script configure
pour compiler les plugins standards de Nagios. Ce script permet notamment de s’assurer que les éléments nécessaires sont présents sur le système, et de régler quelques paramètres.
Ici, en l’occurrence, vous allez indiquer qui sont, par défaut, l’utilisateur et le groupe propriétaire de ces plugins, en lançant le script :
./configure --with-nagios-user=nagios --with-nagios-group=nagcmd
Si tout se passe bien, le résultat de cette commande doit produire une sortie comme ci-dessous :
configure: creating ./config.status [...] config.status: executing po-directories commands config.status: creating po/POTFILES config.status: creating po/Makefile
more /home/nagios/downloads/nagios-plugins-2.2.1/config.log
Ce fichier est assez imposant, mais détaille précisément toutes les vérifications effectuées sur le système et contiendra notamment les éventuelles lignes expliquant pourquoi tel ou tel plugin n’a pas pu être compilé. Souvent, la raison est que telle ou telle librairie n’est pas présente sur le système.
This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by nagios-plugins configure 2.2.1, which was generated by GNU Autoconf 2.63. Invocation command line was ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd hostname = NagiosDebian uname -m = x86_64 uname -r = 4.9.0-8-amd64 uname -s = Linux uname -v = #1 SMP Debian 4.9.130-2 (2018-10-27)
Bref : si, à terme, vous cherchez un plugin standard qui n’est pas compilé, référez-vous à ce fichier, il vous indiquera sûrement pourquoi !
Le reste du processus est identique. Dans un premier temps, lancez la commande suivante pour compiler les binaires :
make
Cette commande compile tous les plugins compatibles avec le système et affiche une sortie comme ci-dessous :
make[2]: on quitte le répertoire `/home/nagios/downloads/nagios-plugins-2.2.1/plugins-root` Making all in po make[2]: on entre dans le répertoire `/home/nagios/downloads/nagios-plugins-2.2.1/po` make[2]: rien à faire pour `all`. make[2]: on quitte le répertoire `/home/nagios/downloads/nagios-plugins-2.2.1/po` make[2]: on entre dans le répertoire `/home/nagios/downloads/nagios-plugins-2.2.1` make[2]: on quitte le répertoire `/home/nagios/downloads/nagios-plugins-2.2.1` make[1]: on quitte le répertoire `/home/nagios/downloads/nagios-plugins-2.2.1`
Installez les plugins standards dans l’arborescence de Nagios
Dernière étape ! Lancez la commande suivante :
make install
Vous pourrez notamment constater que cette commande déploie les plugins standards dans l’arborescence de Nagios :
libtool: install: /usr/bin/install -c -o nagios -g nagcmd check_apt /usr/local/nagios/libexec/check_apt libtool: install: /usr/bin/install -c -o nagios -g nagcmd check_cluster /usr/local/nagios/ [...] libtool: install: /usr/bin/install -c -o nagios -g nagcmd check_mrtgtraf /usr/local/nagios/libexec/check_mrtgtraf libtool: install: /usr/bin/install -c -o nagios -g nagcmd check_ntp /usr/local/nagios/libexec/check_ntp
Le répertoire par défaut des plugins standards Nagios est /usr/local/nagios/libexec/
. Pour vous en assurer, lancez la commande suivante :
ls -lrtha /usr/local/nagios/libexec
De plus, vous pourrez constater que, à quelques exceptions près, les 49 plugins standards appartiennent bien à l’utilisateur nagios
et au groupe nagcmd
.
Vérifiez que Nagios dispose bien de ses plugins
Retournez maintenant sur le site d’administration de Nagios, sur l’onglet « Alerts » du menu « Reports » à gauche de la fenêtre :
À la bonne heure ! Les alertes rouges de Nagios sont passées au vert !
Bravo ! Vous venez de compléter l’installation des plugins standards de Nagios sur un système GNU/Linux Debian.
Définissez des alias de commandes pour gagner du temps
Vous verrez, lors que la mise en place de vos sondes, qu’il sera souvent nécessaire de tester la configuration de Nagios.
Pour cela, Nagios propose un argument spécifique à l’exécution de son programme principal. Celui-ci permet d’effectuer un premier jeu de test. Il suffit, pour ce faire, de lancer Nagios avec l’option -v
, et d’indiquer son fichier de configuration principal.
Lancez la commande suivante :
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
La configuration de Nagios étant alors minimale, la commande devrait se terminer correctement, sans afficher d’erreur ni d’avertissement :
Checking objects... Checked 8 services. Checked 1 hosts. Checked 1 host groups. Checked 0 service groups. Checked 1 contacts. Checked 1 contact groups. Checked 24 commands. Checked 5 time periods. Checked 0 host escalations. Checked 0 service escalations. Checking for circular paths... Checked 1 hosts Checked 0 service dependencies Checked 0 host dependencies Checked 5 time periods Checking global event handlers... Checking obsessive compulsive processor commands... Checking misc settings... Total Warnings: 0 Total Errors: 0
Lorsque vous allez configurer des sondes Nagios, vous le ferez sous le compte utilisateur nagios
. En effet, c’est toujours mieux de ne pas travailler directement sous le compte root
si cela n’est pas nécessaire.
Je vous propose de créer un raccourci de cette commande. Nommez-le « testNagios » dans le fichier de configuration du shell interactif (sans login) de l’utilisateur nagios
. Le service Nagios tourne de manière indépendante et une connexion réelle du compte nagios
n'est heureusement pas nécessaire. Pour créer cet alias, exécutez la commande suivante :
echo "alias testNagios='/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg'" >> /home/nagios/.bashrc
Attention à la syntaxe de cette commande (sur une seule ligne) et notamment aux simple quotes et aux double quotes.
Par ailleurs, lorsque vous allez changer la configuration de Nagios, en ajoutant/supprimant/modifiant les sondes : il faut non seulement tester cette nouvelle configuration, mais aussi indiquer à Nagios de la prendre en compte. Cette opération peut être effectuée en rechargeant (« reload » ou « restart ») le service Nagios.
Cependant, l’utilisateur nagios
n’a pas les droits pour relancer le service Nagios. C’est normal, car cette opération nécessite des privilèges dont les comptes standards ne disposent pas par défaut.
Pour donner au compte nagios
le droit de relancer Nagios, vous devez ajouter cette autorisation dans un fichier prévu à cet effet : /etc/sudoers
.
Ce fichier contient les règles à vérifier lorsqu’un compte standard demande des droits supplémentaires avec la commande sudo
.
Exécutez la commande suivante :
echo "nagios ALL=NOPASSWD:/bin/systemctl restart nagios" >> /etc/sudoers
Cette commande autorise le compte nagios
à redémarrer le service Nagios sur le serveur, sans lui demander son mot de passe.
Il vous reste désormais à créer le raccourci associé avec la commande suivante :
echo "alias restartNagios='sudo systemctl restart nagios'" >> /home/nagios/.bashrc
Voilà, vous allez maintenant pouvoir tester ces deux alias.
Pour cela, passez sous le compte de nagios
avec la commande suivante :
su - nagios
Cette commande vous permet de prendre l’identité de l’utilisateur nagios
en chargeant son environnement. Et comme vous l’exécutez depuis le compte root, vous n’avez pas besoin de fournir de mot de passe !
root@NagiosDebian:/etc/selinux# su - nagios nagios@NagiosDebian:~$ nagios@NagiosDebian:~$ nagios@NagiosDebian:~$
Dans un premier temps, testez le raccourci servant à examiner la configuration de Nagios, avec la commande suivante :
nagios@NagiosDebian:~$ testNagios
Le résultat doit être identique au précédent :
Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check nagios@NagiosDebian:~$
Maintenant, toujours sous le compte nagios
, testez la relance du service en utilisant la commande suivante :
nagios@NagiosDebian:~$ restartNagios
Cette commande ne doit renvoyer aucune sortie. Pour confirmer que le service vient d’être relancé, lancez la commande suivante :
nagios@NagiosDebian:~$ systemctl status nagios | grep Active
Et assurez-vous que le service est bien actif depuis quelques instants :
nagios@NagiosDebian:~$ restartNagios
nagios@NagiosDebian:~$ systemctl status nagios | grep Active
Active: active (running) since Fri 2018-11-23 15:45:03 CET; 2s ago
nagios@NagiosDebian:~$
En résumé
Dans le premier chapitre de cette deuxième partie, vous avez pu installer Nagios ; dans ce deuxième chapitre, vous avez pu installer ses plugins standards et mettre en place des droits pour l’utilisateur nagios
.
Il est maintenant temps de s’intéresser en profondeur au fonctionnement de ces outils. C’est ce que je vous propose de faire dans le chapitre suivant !