Les fichiers de configurations de Nagios (version 2.0) sont assez fastidieux à remplir si l’on doit y ajouter fréquement des nouvelles machines. Voici deux scripts que j’utilise pour m’éviter la saisie à la main de toutes les nouvelles bornes wifi…
PS : Je répertorie ces bornes dans le fichier bornes.wifi suivant :
bornesA: maborneA1
bornesA: maborneA2
bornesA: maborneA3
bornesB: maborneB1
bornesC: maborneC1
...
Scripts config-hosts-wifi-nagios.pl pour la génération du fichier hosts.cfg :
#!/usr/bin/perl
# Ce script permet d'eviter la saisie fastidieuse du fichier de configuration nagios : hosts.cfg
#
# Il permet d'ajouter toutes les bornes wifi dans nagios
#
# Exemple d'emploi: ./config-hosts-wifi-nagios.pl > /usr/local/nagios/etc/hosts-wifi.cfg
# Dans nagios.cfg, il faut indiquer :
# cfg_file=/usr/local/nagios/etc/hosts-wifi.cfg
$f1 = "/home/wifi/bornes.wifi";
open (IN,$f1) || die "impossible d'ouvrir le fichier $f1 \n";
while () {
chop;
$ligne=$_;
($site,$borne)= split(/ /,$ligne);
$ip= `nslookup $borne | tail -n 2 | sed '/^[[:space:]]*\$/d' | sed 's/Address:\ //g'`;
print STDOUT "
define host{
use generic-host ; Name of host template to use
host_name $borne
alias $borne
address $ip check_command check-host-alive
max_check_attempts 10
notification_interval 120
notification_period 24x7
notification_options d,r
contact_groups admins
}"
;
}
Exemple d’utilisation :
perceval:~# perl /usr/local/scripts/config-hosts-wifi-nagios.pl > /usr/local/nagios/etc/hosts-wifi.cfg
Scripts config-hostgroups-wifi-nagios.sh pour la génération du fichier hostgroups.cfg :
#!/bin/sh
# Ce script permet d'eviter la saisie fastidieuse du fichier de configuration nagios : hostgroups.cfg
#
# Il permet d'ajouter toutes les bornes wifi dans le hostgroup "wifi-ap"
#
# Exemple d'emploi: ./config-hostgroups-wifi-nagios.sh > /usr/local/nagios/etc/hostgroups-wifi.cfg
# Dans nagios.cfg, il faut indiquer :
# cfg_file=/usr/local/nagios/etc/hostgroups-wifi.cfg
fichier2conf=/home/wifi/bornes.wifi
ligne=`cat $fichier2conf | cut -d' ' -f2 | tr '\n' ','`;
echo "define hostgroup{"
echo " hostgroup_name wifi-ap"
echo " alias Points d'acces WIFI"
echo " members $ligne"
echo "}"
echo
Exemple d’utilisation :
perceval:~# sh /usr/local/scripts/config-hostgroups-wifi-nagios.sh > /usr/local/nagios/etc/hostgroups-wifi.cfg
Avant de relancer Nagios, il faut s’assurer que les fichiers de configuration que l’on a générés aient été inlus dans le fichier de configuration général nagios.cfg :
cfg_file=/usr/local/nagios/etc/hosts-wifi.cfg
cfg_file=/usr/local/nagios/etc/hostgroups-wifi.cfg
Ultime vérification de la configuration de Nagios :
perceval:~# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cf
Si c’est OK, on peut relancer Nagios :
perceval:~# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cf