Lier Cacti et Nagios

Publié le 10 juin 2008 par Nicolargo

Si vous suivez régulièrement ce blog, vous savez que Nagios et Cacti sont deux logiciels libres que je suis tout particulièrement de part mes activités professionnelles. Je cherchais depuis un moment un moyen simple et efficace pour pouvoir accéder aux graphes de Cacti à partir de l’interface de Nagios.

Ne trouvant rien de concluent sur le Web, j’ai décidé de coder un petit script PHP, nommé CactiPlug.php, permettant d’ajouter cette fonction à Nagios.

Concrètement cela donne quoi ?

Et bien la possibilité d’ajouter automatiquement un lien vers Cacti depuis l’interface Web de Nagios. Il suffit donc juste de cliquer sur un bouton ( ) pour être redirigé automatiquement vers la page correspondante au host en question dans Cacti.

Comment marche le hack CactiPlug.php ?

On utilise la macro “action_url” dans la définition du host (ou mieux du template associé au host) que l’on défini avec la valeur suivante:


action_url /nagios/cactiplug/cactiplug.php?ip=$HOSTADDRESS

Quand on clique sur le bouton ( ), le script cactiplug.php est appelé. Ce dernier va prendre en paramètre l’adresse IP du host (macro $HOSTADDRESS) et interroger directement la base de donnée MySQL de Cacti pour obtenir l’URL de la page Cacti correspondante.

Installation de cactiPlug.php

L’installation donnée ci-dessous a été validé avec Nagios 3.02 et Cacti 0.8.7.

La première chose à faire est de télécharger cactiplug-0.1.tgz.

Puis ensuite de saisir les commandes suivantes:

# tar zxvf cactiplug-0.1.tgz

# mv cactiplug /usr/local/nagios/share

# chown -R nagios:nagios /usr/local/nagios/share/cactiplug

Ensuite il faut configurer Nagios pour qu’il prenne en compte le plugin. Le plus simple est d’ajouter la ligne suivante dans le template generic_host du fichier template.cfg (voir ici vous êtes perdu dans les fichiers de conf de Nagios).

define host{

name generic-host

notifications_enabled 1

event_handler_enabled 1

flap_detection_enabled 1

failure_prediction_enabled 1

process_perf_data 1

retain_status_information 1

retain_nonstatus_information 1

notification_period 24×7

register 0

action_url /nagios/cactiplug/cactiplug.php?ip=$HOSTADDRESS

}

Configuration du plugin

La dernière étape consiste à éditer le fichier /usr/local/nagios/share/cactiplug/cactiplug.php afin d’y saisir les informations relatives à votre base de données Cacti (host, nom de la base, login et password).

Ensuite, il ne reste plus qu’a relancer Nagios:

# service nagios restart

ou

# sudo /etc/init.d/nagios restart

J’attend vos retours si vous testez ce plugin.