Auteur:
NicoLargo

Date:
10/06/2008

Catégories:
Developpement
Open-source
Reseau

Tags:


Lier Cacti et Nagios

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.

Mises à jour:

  • Amélioration de J.Montanard, le plugin est disponible en version 0.21.
  • Grâce à la contribution de Dennis Yusupoff, le plugin est maintenant disponible en version 0.2.

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 (Image 1.png ) pour être redirigé automatiquement vers la page correspondante au host en question dans Cacti.

Nagios.jpg Cacti.jpg

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 (Image 1.png ), 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.2 et Cacti 0.8.7.

La première chose à faire est de télécharger le script cactiplug.

Puis ensuite de saisir les commandes suivantes:

# mkdir /usr/local/nagios/share/cactiplug

# cp cactiplug.php /usr/local/nagios/share/cactiplug

# 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.

59 commentaires


  1. ghazi, le 5/02/2010 (#7586)

    Bonjour merci pour ce super tuto vraiment tres pratique
    j ai juste un petit pbm je voudrais savoir s’il serait possible en cliquant sur un service de nagios obtenir juste la courbe correspondante
    merci d’avance


  2. ghazi, le 5/02/2010 (#7587)

    Dslé de reposter le meme message ms c juste que j ai oublié de cocher l envoi du mail dc voila
    j ai juste un petit pbm je voudrais savoir s’il serait possible en cliquant sur un service de nagios obtenir juste la courbe correspondante
    merci d’avance


  3. bscorpion1, le 12/02/2010 (#7607)

    Bonjour,
    Merci bcp pour le tuto.
    J’ai un probléme, j’ai unstallé nagios 3.2.0, et je veux installer cactiplug, et lorsque je le telechargement du script comme indiqué en haut, j’ai tapé la commande : tar zxvf cactiplug-0.2.tgz et le message suivant s’affiche
    tar: erreur non récupérable : arrt du traitement
    tar: child returned status 2
    tar: des errurs int provoqué l’arret du programme.
    Merci pour votre aide


  4. worms, le 7/04/2010 (#7888)

    Bonjour,

    Excellent plugin pour lier Nagios et Cacti!!
    Cependant je rencontre des problèmes lors de son éxécution vers la page web :
    Warning: mysql_connect() [function.mysql-connect]: Access denied for user ‘cactiuser’@'localhost’ (using password: YES) in /usr/local/nagios/share/cactiplug/cactiplug.php on line 63
    Error while connecting to the DB server

    Je pense que cela est dû au fichier “cactiplug.php” mal configuré, et je ne sais pas comment mettre les bon paramètres.

    $cactiurl=”http://localhost/cacti”;
    $database_default = “mysql”;
    $database_hostname = “localhost”;
    $database_username = “cactiuser”;
    $database_password = “Password”;

    Merci d’avance


  5. Audrey, le 12/04/2010 (#7930)

    bonjour,

    je viens de suivre à la lettre ce tutoriel.
    J’ai bien le petit icone présent dernière le nom de chaque hôtes déclarés.Par contre lorsque je clique sur l’icone, j’ai le message d’erreur suivant : “Not Found

    The requested URL /nagios/cactiplug/cactiplug.php was not found on this server.”

    J’ai bien enregistré la ligne de déclaration dans le template du fichier host.cfg.

    Est ce que quelqu’un aurait une solution à mon problème ?

    Cordialement

    Audrey


  6. jim, le 21/04/2010 (#8017)

    Comme je surveille mon réseau dans le LAN mais aussi de l’extérieur, mon serveur de supervison possède plusieurs @IP.
    J’ai donc du modifier cette ligne :

    $cactiurl = “http://”.$_SERVER['HTTP_HOST'].”/cacti”;

    Je propose que la version de cactiplug passe en “0.2.1″.

    Cordialement


  7. NicoLargo, le 21/04/2010 (#8018)

    @jim: c’est fait ! Merci pour la contribution.


  8. tranimti, le 29/04/2010 (#8061)

    slt, je te remercie pour ce blog qui est bien fait, mais je voudrais savoir quel est la véritable différence entre cacti et centreon.

    Et surtout, es ce que a partir de cacti on peut parramétrè les service, les host, les mail, … comme pour centreon (a partir de son interface web)


  9. tranimti, le 29/04/2010 (#8062)

    je voudrais aussi savoir, quelle pluging permet de supervisé un réseaux a distance. Si c’est le même, pour un server linux, windows, router, et voir même switch.

    merci


Laisser un message

Les informations saisies resteront privées.