Nagios manipule un certain nombre d'objets que je vais essayer de décrire brièvement ici :
La configuration du serveur se trouve dans les dossiers suivants :
chmod g+rx /var/lib/nagios3/rw/
Le paramètre check_external_commands du fichier de configuration nagios.cfg doit par ailleurs valoir 1.
La vérification d'un service se fait par l'intermédiaire d'une commmand configurée avec la directive check_command. Cette directive est utilisé de la manirère suivante :
check_command nom_de_la_commande!argument1!arguement2!...
Lorsqu'il est impossible de vérifier l'état d'un service depuis la machine faisant tourner Nagios, il faut utiliser le service NRPE qui tournera sur la machine exécutant le service et qui vérifiera localement l'état de ce service et retournera le résultat à Nagios. Sur Nagios, il faut utiliser la check_command nommé check_nrpe_1arg correspondant au script /usr/lib/nagios/plugins/check_nrpe prenant pour seul argument le nom de la command exécutée par NRPE. Ce script comme n'importe quel script nagios peut être exécuté manuellement de la manière suivante :
/usr/lib/nagios/plugins/check_nrpe -H XXX.XXX.XXX.XXX -c nom_de_la_commande
Si tout fonctionne correctement, vous devriez obtenir le résultat du test.
On peut donc rajouter une règle de ce type via visudo.
nagios ALL=(ALL) NOPASSWD: /usr/lib/nagios/plugins/check_moncheck
Il ne reste plus qu'a modifier la définition du check dans le nrpe.cfg pour lui demander d'executer la commande avec sudo
command[check_moncheck]=/usr/bin/sudo /usr/lib/nagios/plugins/check_moncheck
aptitude install nagios-nrpe-server nagios-plugins
command[~~~]
ou exécuter simplement la commande suivante :
sed -i 's/^command\[/#command\[/' /etc/nagios/nrpe.cfg
server_address=XXX.XXX.XXX.XXX allowed_hosts=YYY.YYY.YYY.YYY # Services
/usr/local/lib/nagios/plugins/check_mem
chmod +x /usr/local/lib/nagios/plugins/check_mem
command[mem]=/usr/local/lib/nagios/plugins/check_mem -w 80,20 -c 90,50
command[load]=/usr/lib/nagios/plugins/check_load -w 1,1,1 -c 2,2,2
CREATE USER nagios IDENTIFIED BY 'mdpnagios';
command[mysql]=/usr/lib/nagios/plugins/check_mysql -u nagios -p mdpnagios
git clone https://github.com/tag1consulting/check_mongo /usr/local/src/check_mongo ln -s /usr/local/src/check_mongo/check_mongo /usr/local/lib/nagios/plugins/
echo "command[check_mongo]=/usr/local/lib/nagios/plugins/check_mongo -H 127.0.0.1 -P 27017 -A connect" > /etc/nagios/nrpe.d/mongo.cfg
su - postgres createuser -D -R -S nagios exit echo "local template1 nagios ident" >> /etc/postgresql/9.1/main/pg_hba.conf service postgresql reload
echo "# Postgresql connexion # Requirement: # * as user postgres, run "createuser -D -R -S nagios" # * add this on top of pg_hba.conf rules: # local template1 nagios ident command[check_pgsql]=/usr/lib/nagios/plugins/check_pgsql -l nagios" > /etc/nagios/nrpe.d/postgresql.cfg
command[smtp]=/usr/lib/nagios/plugins/check_smtp -H 127.0.0.1
command[http]=/usr/lib/nagios/plugins/check_http -H 127.0.0.1
command[https]=/usr/lib/nagios/plugins/check_http --ssl -H 127.0.0.1 -p 443
command[ups]=/usr/lib/nagios/plugins/check_ups -H 127.0.0.1 -u myups command[upsd]=/usr/lib/nagios/plugins/check_procs -c1:1024 -C upsd command[upsmon]=/usr/lib/nagios/plugins/check_procs -c1:1024 -C upsmon
command[tomcat]=/usr/lib/nagios/plugins/check_tcp -H 127.0.0.1 -p 8009
/usr/lib/nagios/plugins/check_mount
chmod +x /usr/lib/nagios/plugins/check_mount
command[mount_point]=/usr/lib/nagios/plugins/check_mount /point/de/montage
command[disk_slash]=/usr/lib/nagios/plugins/check_disk -w30% -c15% -m /
command[disk_tmp]=/usr/lib/nagios/plugins/check_disk -w30% -c15% -m /tmp
command[disk_var]=/usr/lib/nagios/plugins/check_disk -w30% -c15% -m /var
command[disk_home]=/usr/lib/nagios/plugins/check_disk -w30% -c15% -m /home
command[ldap]=/usr/lib/nagios/plugins/check_ldap -H 127.0.0.1 -b 'XX=YYY,XX=ZZZ' -3
ou XX=YYY,XX=ZZZ est le basedn du serveur LDAP
chmod +x /usr/local/lib/nagios/plugins/check_syncrepl_extended
apt-get install python-ldap
command[ldapsync]=/usr/local/lib/nagios/plugins/check_syncrepl_extended -q -n -D"DN" -P "MDP" -b "BASEDN" -p "LDAPURI1" -c "LDAPURI2" -a
Avec :
command[acces_web]=/usr/lib/nagios/plugins/check_http -H www.google.fr -u http://www.google.fr
Permet de vérifier si un host est blacklisté ou pas au niveau de la messagerie. Téléchargement du plugin et installation.
cd /tmp wget http://freshmeat.net/urls/a49afc30ffffe6d87d403f8b149f4fa0 -O nagios-check_bl-1.0.tar.gz tar zxfv nagios-check_bl-1.0.tar.gz cd nagios-check_bl-1.0 cp check_bl /usr/lib/nagios/plugins/
apt-get install libnet-dns-perl
Test du plugin.
cd /usr/lib/nagios/plugins/ ./check_bl -H mail.yourdomain.com zen.spamhaus.org
Création d'une commande personnalisée dans /etc/nagios3/commands.conf.
define command { command_name check_bl command_line $USER1$/check_bl -H $HOSTADDRESS$ -B zen.spamhaus.org,bl.spamcop.net,dnsbl.ahbl.org, dnsbl.njabl.org,dnsbl.sorbs.net,virbl.dnsbl.bit.nl,rbl.efnet.org,phishing.rbl.msrbl.net,0spam.fusionzero.com, list.dsbl.org,multihop.dsbl.org,unconfirmed.dsbl.org,will-spam-for-food.eu.org,blacklist.spambag.org, blackholes.brainerd.net,blackholes.uceb.org,spamsources.dnsbl.info,map.spam-rbl.com,ns1.unsubscore.com, psbl.surriel.com,l2.spews.dnsbl.sorbs.net,bl.csma.biz,sbl.csma.biz,dynablock.njabl.org,no-more-funn.moensted.dk, ubl.unsubscore.com,dnsbl-1.uceprotect.net,dnsbl-2.uceprotect.net,dnsbl-3.uceprotect.net,spamguard.leadmon.net, opm.blitzed.org,bl.spamcannibal.org,rbl.schulte.org,dnsbl.ahbl.org,virbl.dnsbl.bit.nl,combined.rbl.msrbl.net }
/usr/local/lib/nagios/plugins/check_domain
chmod +x /usr/local/lib/nagios/plugins/check_domain
command[domain_mydomain_tld]=/usr/local/lib/nagios/plugins/check_domain mydomain.tld
Avec mydomain.tld le domaine DNS à surveiller.
/usr/local/lib/nagios/plugins/check_smart
chmod +x /usr/local/lib/nagios/plugins/check_smart
command[smart_sda]=/usr/local/lib/nagios/plugins/check_smart -d /dev/sda -i ata
/usr/local/lib/nagios/plugins/check_heartbeat
chmod +x /usr/local/lib/nagios/plugins/check_heartbeat
command[heartbeat]=/usr/local/lib/nagios/plugins/check_heartbeat
Un écran de contrôle peut être créé en utilisation l'application NagVis. Cette application récupère les informations d'états collectées par Nagios à travers une base de données MySQL. Cette base MySQL est alimentée par l'intermédiaire d'un module Nagios appeler ndoutils. Ce module se décompose en deux parties :
Remarque : Le fichier socket est créé et supprimé pas le daemon. Si ce fichier est présent lors du lancement du daemon, celui-ci ne voudra pas se lancer. Il faut simplement le supprimer ou suivre la procédure pour ce type de problème : Panne de l'écran de controle
Une passerelle SMS permet de faire de la notification par SMS. Il fait dans un premier temps mettre en place une passerelle mail/SMS. Pour cela, suivre le guide dédié. Ensuite, .
Lorsque l'écran est jaune et affiche un message du type “Ndoutils ne tourne pas …” il faut :
nagios_ndo_restore
Cette commande arrête Nagios et Ndoutils, supprime une éventuelle socket problématique, vide et restaure la base de données MySQL et relance ensuite Ndoutils et Nagios. Cela la règle la plupart des problèmes de ce genre.
chown root:root /usr/local/sbin/nagios_ndo_restore chmod 700 /usr/local/sbin/nagios_ndo_restore