mercredi 11 août 2010

API pour sondes Nagios

Début d'API (simple) que j'utilise pour mes sondes.
Ils se composent d'une librairie et d'un ensemble d'icônes issue de Hobbit.
La librairie existe pour Perl (nagios_libs.pm) et pour bash (nagios_libs.sh).


Rapide introduction des fonctions :

  • NAGIOS_Add( "Texte" )
Permet d'ajout du texte d'informations si vous êtes en mode "Long Output" sur votre Centreon (cf patch) ou Nagios,  exemple:

NAGIOS_Add( "$N_COLOR_YELLOW le quota est moyen!\n");

  • NAGIOS_SetStatus( <etat>, "Short status" )

    Permet d'ajouter un état au fur et à mesure des tests.
    L'état final affiché sera bien sur l'état le plus grave.

    NAGIOS_SetSTatus( $STATES{'OK'}, "c'est cool" );
     
  • NAGIOS_Send("cpu=4%" )

    Envoi le status et l'affichage long. En argument  il est possible de fournir les données perfdata.

  • $NAGIOS_STATUS

    Contient le code correspondnat à l'état de la sonde.  Au utiliser avec un exit().

  • $N_COLOR_GREEN, $N_COLOR_RED, $N_COLOR_YELLOW ...

    Ces variables sont références aux icônes de type "hobbit" afin d'illustrer le détail de la sonde.

    Example:

    NAGIOS_Add( $N_COLOR_GREEN DEVICE: 0 )
    ...

    Donne :






Installation

La librairie s'installe au même endroit que les scripts qui l'utilisent (sur les versions récentes des sondes).


Les images doivent être accessible par votre serveurs Web comme suit:

 /images/green.gif


Exemple en perl


#!/usr/bin/perl

use strict;
use File::Basename;
use lib dirname($0);
use nagios_libs;


my $file="/tmp/toto";



        # Le fichier existe?
        if ( -e $file )
        {
                NAGIOS_Add( "$N_COLOR_RED Ce fichier ne devrait pas exister!\n" );
                NAGIOS_SetStatus( $STATES{'CRITICAL'}  );
        }
        else
        {
                NAGIOS_Add( "$N_COLOR_GREEN Ce fichier n'existe pas!\n" );
                NAGIOS_SetStatus( $STATES{'OK'}  );
        }

        NAGIOS_Send();
        exit $NAGIOS_STATUS;

 Exemple en bash

#!/bin/bash

. `dirname $0`/nagios_libs.sh

file="/tmp/toto";



        # Le fichier existe ?
        if [ -e $file ]
        then
       
                NAGIOS_Add "$N_COLOR_RED Ce fichier ne devrait pas exister!\n"
                NAGIOS_SetStatus $STATE_CRITICAL
        else
                NAGIOS_Add "$N_COLOR_GREEN Ce fichier n'existe pas!\n"
                NAGIOS_SetStatus $STATE_OK
        fi

        NAGIOS_Send
        exit $NAGIOS_STATUS
 

Aucun commentaire:

Enregistrer un commentaire