Announcement

Collapse
No announcement yet.

Plugin snmp ods

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Plugin snmp ods

    voici un script qui met les donnees renvoyees dans un format comprehensible perfdata.

    ce que ce script fait et que ne fait pas les autres (du moins ceux que j'ai trouvés" :

    - possibilite de mettre n'importe quel n° de MIB -> on peut tout grapher y compris les elements des équipements 'exotiques'

    - possibilite de definir une metrique particuliere pour chaque oid

    - possibilite de definir un label particulier pour chaque oid

    - possibilite d'editer des niveaux d'alerte warning/critical SI ON VEUT

    - possibilite d'interrorer un oid avec un retour en perfdata SI ON VEUT
    (contre les graphs vides car ne contiennent pas de donnees numeriques...)

    ce que ce script ne fait pas :
    - mapping entre differents oid
    - fonctionner sous windows (et oui, c'est du shell script, je ne connais pas PERL)
    - la verif si le niveau critique > niveau warning
    ... surment plein d'autres choses

    bon, pour terminer, chez moi, ca marche mais il doit y avoir moyen d'ameliorer
    si vous trouvez un bug, ou si vous des ameliorations, merci de poster sur ce Thread.

    j'oubliais, bien sur, tout le monde peut en faire ce qu'il veut

    Gaëtan

    script :

    Code:
    #!/bin/bash
    
    ##############################################################################
    #       Author : G. Lucas                                       #
    #       Date : 04-11-2007                                                    #
    #       Purpose : makes SNMP check and returns perfdata compatible format    #
    #       Dependances : net-snmp                                               #
    #       Version : 0.1b                                                       #
    ##############################################################################
    
    #####################################################################
    # 1 - init des variales
    
    SNMP_PATH=/usr/bin
    
    MA_VERSION="check_fsnmp version 0.01b (april 11 2007) "
    
    PLUIN_PATH=/usr/lib/nagios/plugins
    
    #HOST=
    #OID=
    COMMUNITY=public
    #LABEL=
    #METRIC=
    DEFAULT_METRIC="?"
    RESULT=""
    RETURN=""
    NAGIOS_OUT=""
    PERFDATA_OUT=""
    #CRITICAL=
    #WARNING=
    #REGEX=
    VERSION=1
    #NO_PERFDATA=
    #RETURN_CODE=
    
    #######################################################################
    # 2 - init des options
    
    for i in [email protected]; do
       case $1 in
            --help|-h)
                    echo "use: check_fsnmp <-H|--host> <-o|--oid> [-C|--community] [-2] [-l|--label] [-m|--metric]"
                    echo "                  [-c|--critical] [-w|--warning] [-r|--regex] [--no-perfdata]"
                    echo ""
                    echo "  -H|--host       : host address or name (required)"
                    echo "  -o|--oid        : snmp oid to check (required) \"o1 o2 ...\""
                    echo "  -C|--community  : snmp community (default : public)"
                    echo "  -2              : use snmp version 2 (default : 1)"
                    echo "  -l|--label      : human readable label matching oid (default : oid name) \"l1 l2 ...\" [perfdata]"
                    echo "  -m|--metric     : oid data metric (default : $DEFAULT_METRIC) \"m1 m2 ...\" [perfdata]"
                    echo "  -c|--critical   : critical level (default : none -> no critical) \"c1 c2 ...\" [perfdata]"
                    echo "  -w|--warning    : warning level (default : none -> no warning) \"w1 w2 ...\" [perfdata]"
                    echo "  --no-perfdata   : do not use perfdata (optional)"
                    echo "  -r|--regex      : regular expression that answer should match to be ok (optional) [no-perfdata]"
                    echo ""
                    echo "  -v|--version : print version"
                    echo "  -h|--help : show this help message"
                    echo ""
                    echo "exemple: check_fsnmp -H localhost -o \"1.3.1.0 1.3.2.0\" -m \"MB kbps\" -l \"size traffic_in\""
                    echo "exemple: check_fsnmp -H localhost -o \"1.3.7.0 1.3.9.0\" -r \"Netopia '.*[0-9]$'\" --no-perfdata"
                    echo ""
                    echo "if no numerical data use --no-perfdata option"
                    exit 3;;
            --label|-l)
                    shift
                    LABEL=($1)
                    shift;;
            --metric|-m)
                    shift
                    METRIC=($1)
                    shift;;
            --oid|-o)
                    shift
                    OID=($1)
                    shift;;
            --community|-C)
                    shift
                    COMMUNITY=$1
                    shift;;
            -2)
                    shift
                    VERSION=2c;;
            --host|-H)
                    shift
                    HOST=$1
                    shift;;
            --warning|-w)
                    shift
                    WARNING=($1)
                    shift;;
            --critical|-c)
                    shift
                    CRITICAL=($1)
                    shift;;
            --regex|-r)
                    shift
                    REGEX=($1)
                    shift;;
            --no-perfdata)
                    NO_PERFDATA=1
                    shift;;
            -v|--version)
                    echo "$MA_VERSION using :"
                    echo `$SNMP_PATH/snmpget --version`
                    exit 3;;
            [^-]*)
                    echo unknown option $1, use: check_fsnmp --help
                    exit 3;;
       esac
    done
    
    
    #echo "$SNMP_PATH/snmpget -v $VERSION -c $COMMUNITY  $HOST $OID"
    
    #########################################################################
    # 3 -  commandes snmpget pour chaque oid et stockage dans des tableaux
    
    i=0
    while [ -n "${OID[$i]}" ]; do
            RESULT[$i]="`$SNMP_PATH/snmpget -v $VERSION -c $COMMUNITY $HOST ${OID[$i]} -Os 2>&1`"
            RETURN[$i]="$?"
            i=`expr $i + 1`
    done
    
    #i=0
    #while [ -n "${OID[$i]}" ]; do
    #       echo "${RESULT[$i]}:${RETURN[$i]}"
    #       i=`expr $i + 1`
    #done
    
    #                $? : 0=ok  1=erreur_format  2=erreur_reponse
    #                format de retour :      ssIndex.0 = INTEGER: 1
    #       echo "$RESULT"
    
    
    i=0
    while [ -n "${OID[$i]}" ]; do
            if [ -z "${LABEL[$i]}" ]; then
                    LABEL[$i]=`expr "$RESULT" : '\([^\ ]*\).0 '`
            fi
            if [ -z "${METRIC[$i]}" ]; then
                    METRIC[$i]="$DEFAULT_METRIC"
            fi
            case ${RETURN[$i]} in
                    0)
                            if [ -z "$NO_PERFDATA" ]; then
                                    VALUE=`expr "${RESULT[$i]}" : '.*= [A-Z|a-z]*: \([0-9]*\)$'`
                                    if [ -z "$VALUE" ]; then
                                            echo "use --no-perfdata option when checking not numerical results"
                                            exit 3
                                    fi
    
                                    PERFDATA_OUT="$PERFDATA_OUT${LABEL[$i]}=$VALUE${METRIC[$i]};${CRITICAL[$i]};${WARNING[$i]}; "
    
                                    C=0
                                    W=0
                                    if [ -n "${WARNING[$i]}" -a -n "${CRITICAL[$i]}" ]; then
                                            if [ "$VALUE" -ge "${WARNING[$i]}" ]; then
                                                    W=1
                                            fi
                                            if [ "$VALUE" -ge "${CRITICAL[$i]}" ]; then
                                                    C=1
                                            fi
                                            if [ "$W" -eq "1" -a "$C" -eq "0" ]; then
                                                    NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:WARNING-$VALUE>${WARNING[$i]}${METRIC[$i]} "
                                                    if [ "$RETURN" -lt "2" ]; then
                                                            RETURN=1
                                                    fi
                                            fi
                                            if [ "$C" -eq "1" ]; then
                                                    NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:CRITICAL-$VALUE>${CRITICAL[$i]}${METRIC[$i]} "
                                                    RETURN=2
                                            fi
                                    fi
                                    if [ "$C" -eq "0" -a "$W" -eq "0"  ]; then
                                            NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:OK-$VALUE${METRIC[$i]} "
                                    fi
                            else
                                    VALUE=`expr "$RESULT" : '.*= [A-Z|a-z]*: \(.*\)'`
                                    if [ -n "${REGEX[$i]}" ]; then
                                            R=`expr "$VALUE" : ".*${REGEX[$i]}"`
                                            if [ "$R" -eq "0" ]; then
                                                    NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:CRITICAL-$VALUE no regex match "
                                                    RETURN=2
                                            else
                                                    NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:OK-$VALUE "
                                            fi
                                    else
                                            NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:OK-$VALUE "
                                    fi
                            fi
                            ;;
                    1)      NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:UNKNOWN-${RESULT[$i]} "
                            if [ "$RETURN" != "2" ]; then
                                    RETURN=3
                            fi;;
                    2)      NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:CRITICAL-${RESULT[$i]} "
                            RETURN=2;;
            esac
            i=`expr $i + 1`
    done
    
    if [ -z "$NO_PERFDATA" ]; then
            echo "$NAGIOS_OUT | $PERFDATA_OUT"
    else
            echo "$NAGIOS_OUT"
    fi
    
    exit $RETURN
    Last edited by gae; 12 April 2007, 17:05.

  • #2
    j'oubliais : exemple de check nagios :

    Code:
    define command{
            command_name                    check_snmp_cpustat
            command_line                    $USER1$/check_fsnmp -H $HOSTADDRESS$ -C $ARG1$ -o ".1.3.6.1.4.1.2021.11.9.0 .1.3.6.1.4.1.2021.11.10.0 .1.3.6.1.4.1.2021.11.11.0" -l "cpu_user cpu_system cpu_idle" -m "% % %" -w "90 70 70" -c "120 100 100"
    }

    Comment


    • #3
      Sympa, reste plus qu'a tester tt ca.

      T'es un warrior... les tableaux en BASH.. Ca fonctionne a tous les coups ? Pas obligé de mettre en 36 fois des Quotes ?

      POur ton case, utilises getopt ca sera plus modulable.
      Centreon 2.x

      Comment


      • #4
        en fait, j'ai découvert le shell il y a 6 mois en cours, donc je ne connais pas toutes les subtilites
        getopt ?? -> j'ai déja vu ca en ouvrant des fichiers perl et php mais je ne connais pas du tout

        sinon, les tableaux :
        pour mon niveau, c'est plus facile a utiliser que les separateurs de champs, j'ai essaye mais ca n'a pas donner grand chose...
        du coup, il faut utiliser des "" a foison...
        (qui sont un peu embetant si tu veux mettre des espaces dans une expression reguliere... -> une limite du script )

        sinon, un exemple d'utilisation en commande manuelle :

        Code:
        -bash-3.1$ ./check_fsnmp -H proton -C public -o ".1.3.6.1.4.1.2021.11.9.0 .1.3.6.1.4.1.2021.11.10.0 .1.3.6.1.4.1.2021.11.11.0" -l "cpu_user cpu_system cpu_idle" -m "% % %" -w "90 70 70" -c "120 100 100"
        cpu_user:OK-0% cpu_system:OK-0% cpu_idle:WARNING-99>70%  | cpu_user=0%;120;90; cpu_system=0%;100;70; cpu_idle=99%;100;70;
        -bash-3.1$ echo $?
        1
        -bash-3.1$

        Comment


        • #5
          il fait koi de plus de check_graph_snmp_value.pl ?

          On se fait une rubrique sur le wiki ? nan ?
          Julien Mathis
          Centreon Project Leader
          www.merethis.com |

          Comment


          • #6
            ha oauis pas mal avec l'exemple....

            Sur le wiki on cree un doc pour les plugins ? quite meme a mettre le plugin en ligne la bas ou meme je vous ouvre acces au svn
            Julien Mathis
            Centreon Project Leader
            www.merethis.com |

            Comment


            • #7
              Originally posted by gae View Post
              en fait, j'ai découvert le shell il y a 6 mois en cours, donc je ne connais pas toutes les subtilites
              getopt ?? -> j'ai déja vu ca en ouvrant des fichiers perl et php mais je ne connais pas du tout
              Et oui c'est également dispo en bash

              Je te met un exemple ce wkd ou début de semaine prochaine.

              WAtt
              Centreon 2.x

              Comment


              • #8
                il fait koi de plus de check_graph_snmp_value.pl ?
                Code:
                -bash-3.1$ ./check_graph_snmp_value.pl -H proton -o .1.3.6.1.4.1.2021.11.9.0 -w 80 -c 90 -f
                Ok value : 0|value=0;80;90;;
                -> tu graphes avec une valeur : 'value' et sans metric...

                Code:
                -bash-3.1$ ./check_snmp -H proton -o .1.3.6.1.4.1.2021.11.9.0,.1.3.6.1.4.1.2021.11.10.0,.1.3.6.1.4.1.2021.11.11.0 -l 'cpu stat' -m %
                cpu stat WARNING - 0 0 96 | iso.3.6.1.4.1.2021.11.9.0=0 iso.3.6.1.4.1.2021.11.10.0=0 iso.3.6.1.4.1.2021.11.11.0=96
                -> trop bien le rendu utilisateur, il sait qu'il a une courbe de iso.3.6.1.4.1.2021.11.11.0 ... et même pas en quelle unité

                (c'est les 2 plugins generiques que je connais) yen a peut etre d'autres

                On se fait une rubrique sur le wiki ? nan ?
                pas de P, au contraire, faut que ca serve !!

                Comment


                • #9
                  un désir caché ?

                  peut être d'utiliser systematiquement les metrics des donnees perfdata pour generer de beaux graphs automatiquement, sans avoir a se casser la tete avec les tamplates qu'on cree d'un côté et qu'il faut parametrer pour chaque service !!
                  -> plus besoin que d'un tamplate qui definit les couleurs, epaisseurs... des courbes -> on fait un mapping entre la metric et le template couleur qui existe déjà-> tous les CPU, les traffic_in, les traffic_out les /boot ... des machines ont la même couleur

                  -> casse tête chinois pour le programmeur qui pédale,
                  -> simplifie la vie de l'administrateur,
                  -> beaux graphs pour l'utilisateur qui voit toujours le même type de données sous le même format !!

                  Comment


                  • #10
                    Originally posted by julio View Post
                    il fait koi de plus de check_graph_snmp_value.pl ?

                    On se fait une rubrique sur le wiki ? nan ?
                    Done, and a bit more ...

                    http://wiki.oreon-project.org/index.php/Plugins

                    Comment


                    • #11
                      J'ai trouvé ce plugin très pratique et je l'utilise maintenant pour grapher mes switchs brocade. Mille mercis à son auteur...

                      J'y ai apporté cependant 2 modifications:
                      - modification de l'expression régulière pour récupérer la valeur (j'avais une erreur pour les données de type Counter32)
                      - ajout d'un parametre --speed pour grapher une bande passante à partir de données de type Counter (ce qui est mon cas pour le traffic des switchs brocade...)

                      N'étant pas un pro de nagios/oreon et de bash, je ne garantis pas que mes modifications soient parfaites mais, bon, ça peut toujours donner des idées pour une future version de ce plugin...

                      Ci-jointe ma version modifiée sous forme de fichier .txt
                      Attached Files

                      Comment


                      • #12
                        Originally posted by amartel View Post
                        J'ai trouvé ce plugin très pratique et je l'utilise maintenant pour grapher mes switchs brocade. Mille mercis à son auteur...

                        Ci-jointe ma version modifiée sous forme de fichier .txt
                        de la part de l'auteur : de rien,

                        juste un petit truc, pourrais-tu mettre le script entre deux balises [ CODE ] et
                        [ /CODE ] svp,
                        le flic à l'entrée ne laisse pas passer les scripts...

                        merci

                        Gaé

                        Comment


                        • #13
                          Code:
                          #!/bin/bash
                          
                          ##############################################################################
                          #       Author : G. Lucas                                                    #
                          #       Date : 04-11-2007                                                    #
                          #       Purpose : makes SNMP check and returns perfdata compatible format    #
                          #       Dependances : net-snmp                                               #
                          #       Version : 0.1b                                                       #
                          ##############################################################################
                          
                          #####################################################################
                          # 1 - init des variales
                          
                          SNMP_PATH=/usr/bin
                          
                          MA_VERSION="check_fsnmp version 0.01b (april 11 2007) "
                          
                          PLUGIN_PATH=/usr/lib/nagios/plugins
                          
                          #HOST=
                          #OID=
                          COMMUNITY=public
                          #LABEL=
                          #METRIC=
                          DEFAULT_METRIC="?"
                          RESULT=""
                          RETURN=""
                          NAGIOS_OUT=""
                          PERFDATA_OUT=""
                          #CRITICAL=
                          #WARNING=
                          #REGEX=
                          VERSION=1
                          #NO_PERFDATA=
                          #RETURN_CODE=
                          
                          #######################################################################
                          # 2 - init des options
                          
                          for i in [email protected]; do
                            case $1 in
                                 --help|-h)
                                         echo "use: check_fsnmp <-H|--host> <-o|--oid> [-C|--community] [-2] [-l|--label] [-m|--metric]"
                                         echo "                  [-c|--critical] [-w|--warning] [-r|--regex] [--no-perfdata] [--speed]"
                                         echo ""
                                         echo "  -H|--host       : host address or name (required)"
                                         echo "  -o|--oid        : snmp oid to check (required) \"o1 o2 ...\""
                                         echo "  -C|--community  : snmp community (default : public)"
                                         echo "  -2              : use snmp version 2 (default : 1)"
                                         echo "  -l|--label      : human readable label matching oid (default : oid name) \"l1 l2 ...\" [perfdata]"
                                         echo "  -m|--metric     : oid data metric (default : $DEFAULT_METRIC) \"m1 m2 ...\" [perfdata]"
                                         echo "  -c|--critical   : critical level (default : none -> no critical) \"c1 c2 ...\" [perfdata]"
                                         echo "  -w|--warning    : warning level (default : none -> no warning) \"w1 w2 ...\" [perfdata]"
                                         echo "  --no-perfdata   : do not use perfdata (optional)"
                                         echo "  --speed         : store previous values and compute speed between two checks"
                                         echo "  -r|--regex      : regular expression that answer should match to be ok (optional) [no-perfdata]"
                                         echo ""
                                         echo "  -v|--version : print version"
                                         echo "  -h|--help : show this help message"
                                         echo ""
                                         echo "exemple: check_fsnmp -H localhost -o \"1.3.1.0 1.3.2.0\" -m \"MB kbps\" -l \"size traffic_in\""
                                         echo "exemple: check_fsnmp -H localhost -o \"1.3.7.0 1.3.9.0\" -r \"Netopia '.*[0-9]$'\" --no-perfdata"
                                         echo ""
                                         echo "if no numerical data use --no-perfdata option"
                                         exit 3;;
                                 --label|-l)
                                         shift
                                         LABEL=($1)
                                         shift;;
                                 --metric|-m)
                                         shift
                                         METRIC=($1)
                                         shift;;
                                 --oid|-o)
                                         shift
                                         OID=($1)
                                         shift;;
                                 --community|-C)
                                         shift
                                         COMMUNITY=$1
                                         shift;;
                                 -2)
                                         shift
                                         VERSION=2c;;
                                 --host|-H)
                                         shift
                                         HOST=$1
                                         shift;;
                                 --warning|-w)
                                         shift
                                         WARNING=($1)
                                         shift;;
                                 --critical|-c)
                                         shift
                                         CRITICAL=($1)
                                         shift;;
                                 --regex|-r)
                                         shift
                                         REGEX=($1)
                                         shift;;
                                 --no-perfdata)
                                         NO_PERFDATA=1
                                         shift;;
                                 --speed)
                                         SPEED=1
                                         shift;;
                                 -v|--version)
                                         echo "$MA_VERSION using :"
                                         echo `$SNMP_PATH/snmpget --version`
                                         exit 3;;
                                 [^-]*)
                                         echo unknown option $1, use: check_fsnmp --help
                                         exit 3;;
                            esac
                          done
                          
                          
                          #echo "$SNMP_PATH/snmpget -v $VERSION -c $COMMUNITY  $HOST $OID"
                          
                          #########################################################################
                          # 3 -  commandes snmpget pour chaque oid et stockage dans des tableaux
                          
                          i=0
                          while [ -n "${OID[$i]}" ]; do
                                 RESULT[$i]="`$SNMP_PATH/snmpget -v $VERSION -c $COMMUNITY $HOST ${OID[$i]} -Os 2>&1`"
                                 RETURN[$i]="$?"
                                 i=`expr $i + 1`
                          done
                          
                          #i=0
                          #while [ -n "${OID[$i]}" ]; do
                          #       echo "${RESULT[$i]}:${RETURN[$i]}"
                          #       i=`expr $i + 1`
                          #done
                          
                          #                $? : 0=ok  1=erreur_format  2=erreur_reponse
                          #                format de retour :      ssIndex.0 = INTEGER: 1
                          #       echo "$RESULT"
                          
                          
                          i=0
                          while [ -n "${OID[$i]}" ]; do
                                  if [ -z "${LABEL[$i]}" ]; then
                                         LABEL[$i]=`expr "$RESULT" : '\([^\ ]*\).0 '`
                                 fi
                                 if [ -z "${METRIC[$i]}" ]; then
                                         METRIC[$i]="$DEFAULT_METRIC"
                                 fi
                                 case ${RETURN[$i]} in
                                         0)
                                                 OLD_VALUE=0
                                                 TIME=1
                                                 TIMENOW=`date +%s`
                                                 if [ -n "$SPEED" ]; then
                                                    if [ -s /tmp/${HOST}_${OID[$i]} ]; then
                                                       j=0
                                                       VAL=
                                                       for V in `cat /tmp/${HOST}_${OID[$i]}`; do
                                                          VAL[$j]=$V
                                                          j=$(($j + 1))
                                                       done
                                                       OLD_VALUE=${VAL[1]}
                                                       TIME=$(($TIMENOW - ${VAL[0]}))
                                                    fi
                                                 fi
                                                 if [ -z "$NO_PERFDATA" ]; then
                                                         NEWVALUE=`expr "${RESULT[$i]}" : '.*= [A-Z|a-z|0-9]*: \([0-9]*\)$'`
                                                         if [ -z "$NEWVALUE" ]; then
                                                                 echo "use --no-perfdata option when checking not numerical results"
                                                                 exit 3
                                                         fi
                                                         VALUE=$(( ($NEWVALUE - $OLD_VALUE) / $TIME))
                                                         if [ "$OLD_VALUE" -ge "$NEWVALUE" ]; then
                                                            VALUE=0
                                                         fi
                          
                                                          PERFDATA_OUT="$PERFDATA_OUT${LABEL[$i]}=$VALUE${METRIC[$i]};${CRITICAL[$i]};${WARNING[$i]}; "
                          
                                                         C=0
                                                         W=0
                                                         if [ -n "${WARNING[$i]}" -a -n "${CRITICAL[$i]}" ]; then
                                                                 if [ "$VALUE" -ge "${WARNING[$i]}" ]; then
                                                                         W=1
                                                                 fi
                                                                 if [ "$VALUE" -ge "${CRITICAL[$i]}" ]; then
                                                                         C=1
                                                                 fi
                                                                 if [ "$W" -eq "1" -a "$C" -eq "0" ]; then
                                                                         NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:WARNING-$VALUE>${WARNING[$i]}${METRIC[$i]} "
                                                                         if [ "$RETURN" -lt "2" ]; then
                                                                                 RETURN=1
                                                                         fi
                                                                 fi
                                                                 if [ "$C" -eq "1" ]; then
                                                                         NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:CRITICAL-$VALUE>${CRITICAL[$i]}${METRIC[$i]} "
                                                                         RETURN=2
                                                                 fi
                                                         fi
                                                         if [ "$C" -eq "0" -a "$W" -eq "0"  ]; then
                                                                 NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:OK-$VALUE${METRIC[$i]} "
                                                         fi
                                                 else
                                                         NEWVALUE=`expr "$RESULT" : '.*= [A-Z|a-z|0-9]*: \(.*\)'`
                                                         VALUE=$(( ($NEWVALUE - $OLD_VALUE) / $TIME))
                                                         if [ "$OLD_VALUE" -ge "$NEWVALUE" ]; then
                                                            VALUE=0
                                                         fi
                                                         if [ -n "${REGEX[$i]}" ]; then
                                                                 R=`expr "$VALUE" : ".*${REGEX[$i]}"`
                                                                 if [ "$R" -eq "0" ]; then
                                                                         NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:CRITICAL-$VALUE no regex match "
                                                                         RETURN=2
                                                                 else
                                                                         NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:OK-$VALUE "
                                                                 fi
                                                         else
                                                                 NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:OK-$VALUE "
                                                         fi
                                                 fi
                                                 if [ -n "$SPEED" ]; then
                                                    echo "$TIMENOW $NEWVALUE" > /tmp/${HOST}_${OID[$i]}
                                                 fi
                                                 ;;
                                         1)      NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:UNKNOWN-${RESULT[$i]} "
                                                 if [ "$RETURN" != "2" ]; then
                                                         RETURN=3
                                                 fi
                                                 ;;
                                         2)      NAGIOS_OUT="$NAGIOS_OUT${LABEL[$i]}:CRITICAL-${RESULT[$i]} "
                                                 RETURN=2
                                                 ;;
                                 esac
                                 i=`expr $i + 1`
                          done
                          
                          if [ -z "$NO_PERFDATA" ]; then
                                  echo "$NAGIOS_OUT | $PERFDATA_OUT"
                          else
                                  echo "$NAGIOS_OUT"
                          fi
                          
                          exit $RETURN
                          Centreon 2.x

                          Comment


                          • #14
                            C'est ca d'avoir des basket ... tiens voila les belles chaussure qui brillent:
                            Centreon 2.x

                            Comment


                            • #15
                              Lo Watt

                              Je fait les derniers tests et si ca marche, demain, je t'envoi un beau patch !!
                              (utilisation des noms de metrics pour les DS des .rrd d'ods)

                              je modifie un peu...
                              ca marche, au lieu que tous les rrd ods aient un nom ds à 'metric', ils ont 'traffic_in', 'traffic_out', 'ram', 'cpu_user' ...
                              -> PHPWeathermap recupere bien les infos

                              mais je n'ai plus aucun graphs dans Oreon (((( -> CA MARCHE !!

                              -> il est trop tard pour travailler -> je jette un oeil aux fichiers php qui génerent les graphs et si je trouve la soluce -> patch
                              et fin du wiki weatherMap


                              Gaé
                              Last edited by gae; 18 April 2007, 12:34.

                              Comment

                              Working...
                              X