Ad Widget

Collapse

Templates para cisco catalyst X

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ipnero
    Junior Member
    • Sep 2010
    • 3

    #1

    Templates para cisco catalyst X

    A ver si alguien nos puede dar una mano para implementar el sistema de monitoreo de forma mas o menos masiva, el tema es el siguiente, nosotros usamos cisco catalyst 2900 en switch 2900x y routers tambien cisco bueno y varias cosas, el tema es que no hay un template que funcione 100% con el snmp de estos equipos porque los OID son diferentes en casi todos los equipos que encontre y verdaderamente ponerse a cambiar item por item colocando el verdadero OID que va es un re laburo, Alguien sabe de alguna herramienta o script que funcione con la ultima version de Zabbix, yo encontre una que era en perl pero es super incompatible los xml's que te crea con la nueva version de zabbix. O algun lugar donde tengas varios templates, ya que el foro el wiki y demas se queda muy corto en el tema de monitoreo para redes. Desde ya muchas gracias y espero alguien sepa algo. Saludos.
  • alberto.mmoraes
    Junior Member
    • Sep 2010
    • 4

    #2
    Amigo eu tenho o script abaixo que pode lhe ajudar, Execute ele, colocando como parametros a comunidade e o ip de qualquer roteador, direcione a saida para algum arquivo. A saída é o próprio template configurado. Depois de criado edite-o troque o nome na tag name, este nome deve ser o mesmo que está configurado no Zabbix. Após isso basta importar e ja esta pronto o template para seu roteador.

    use assim :
    ./script comunidade ip > /root/snmp/templates/templatenome


    #!/bin/bash
    # Script para gerar xmls importaveis ao Zabbix relativos a SNMP
    # Usar: ./gera_template_snmp.sh <IP do host> <Comunidade SNMP>

    if [ "$1" != "" ]; then

    if [ "$2" != "" ]; then

    DATA=`date "+%d.%m.%y"`
    HORA=`date "+%H.%M"`
    WALK=`which snmpwalk`
    GET=`which snmpget`
    IP="$1"
    COMUNIDADE="$2"
    NUM_IFACES=`$WALK -v 1 -c $(echo $COMUNIDADE) $(echo $IP) IfDescr | sed 's/\./ /g' | awk '{print $2}'`

    echo '<?xml version="1.0"?>'
    echo '<zabbix_export version="1.0" date="'$DATA'" time="'$HORA'">'
    echo ' <hosts>'
    echo " <host name=`$(echo $GET) -v 1 -c $(echo $COMUNIDADE) $(echo $IP) 1.3.6.1.2.1.1.5.0 | cut -f4,5 -d":" 2> /dev/null`>"
    echo ' <useip>1</useip>'
    echo ' <dns></dns>'
    echo " <ip>$IP</ip>"
    echo ' <port>161</port>'
    echo ' <status>0</status>'
    echo ' <groups>'
    echo ' <group>Roteadores</group>'
    echo ' </groups>'
    echo ' <items>'

    for i in $NUM_IFACES; do
    cat << EOF
    <item type="4" key="ifOperStatus.$(echo $i)" value_type="3">
    <description>Estado operacional da interface`$(echo $GET) -v 1 -c $(echo $COMUNIDADE) $(echo $IP) .1.3.6.1.2.1.31.1.1.1.1.$(echo $i) | cut -f4,5 -d":" 2> /dev/null`</description>
    <delay>60</delay>
    <history>7</history>
    <trends>365</trends>
    <status>0</status>
    <units></units>
    <multiplier>0</multiplier>
    <delta>0</delta>
    <formula></formula>
    <lastlogsize>0</lastlogsize>
    <logtimefmt></logtimefmt>
    <delay_flex></delay_flex>
    <params></params>
    <trapper_hosts></trapper_hosts>
    <snmp_community>$(echo $COMUNIDADE)</snmp_community>
    <snmp_oid>1.3.6.1.2.1.2.2.1.8.$(echo $i)</snmp_oid>
    <snmp_port>161</snmp_port>
    <snmpv3_securityname></snmpv3_securityname>
    <snmpv3_securitylevel>0</snmpv3_securitylevel>
    <snmpv3_authpassphrase></snmpv3_authpassphrase>
    <snmpv3_privpassphrase></snmpv3_privpassphrase>
    <valuemap>OperStatus</valuemap>
    <applications>
    <application>Estado das Interfaces</application>
    </applications>
    </item>

    EOF
    done

    for i in $NUM_IFACES; do
    cat << EOF
    <item type="4" key="ifInOctets.$(echo $i)" value_type="0">
    <description>Trafego de entrada na interface`$(echo $GET) -v 1 -c $(echo $COMUNIDADE) $(echo $IP) .1.3.6.1.2.1.31.1.1.1.1.$(echo $i) | cut -f4,5 -d":" 2> /dev/null`</description>
    <delay>30</delay>
    <history>7</history>
    <trends>365</trends>
    <status>0</status>
    <units>b</units>
    <multiplier>1</multiplier>
    <delta>1</delta>
    <formula>8</formula>
    <lastlogsize>0</lastlogsize>
    <logtimefmt></logtimefmt>
    <delay_flex></delay_flex>
    <params></params>
    <trapper_hosts></trapper_hosts>
    <snmp_community>$(echo $COMUNIDADE)</snmp_community>
    <snmp_oid>1.3.6.1.2.1.2.2.1.10.$(echo $i)</snmp_oid>
    <snmp_port>161</snmp_port>
    <snmpv3_securityname></snmpv3_securityname>
    <snmpv3_securitylevel>0</snmpv3_securitylevel>
    <snmpv3_authpassphrase></snmpv3_authpassphrase>
    <snmpv3_privpassphrase></snmpv3_privpassphrase>
    <applications>
    <application>Trafego de entrada</application>
    </applications>
    </item>
    EOF
    done

    for i in $NUM_IFACES; do
    cat << EOF
    <item type="1" key="IfInErrors.$(echo $i)" value_type="0">
    <description>Pacotes de entrada com erro na interface`$(echo $GET) -v 1 -c $(echo $COMUNIDADE) $(echo $IP) .1.3.6.1.2.1.31.1.1.1.1.$(echo $i) | cut -f4,5 -d":" 2> /dev/null`</description>
    <ipmi_sensor></ipmi_sensor>
    <delay>30</delay>
    <history>7</history>
    <trends>365</trends>
    <status>0</status>
    <units>packets</units>
    <multiplier>0</multiplier>
    <delta>1</delta>
    <formula>1</formula>
    <lastlogsize>0</lastlogsize>
    <logtimefmt></logtimefmt>
    <delay_flex></delay_flex>
    <params></params>
    <trapper_hosts></trapper_hosts>
    <snmp_community>$(echo $COMUNIDADE)</snmp_community>
    <snmp_oid>.1.3.6.1.2.1.2.2.1.14.$(echo $i)</snmp_oid>
    <snmp_port>161</snmp_port>
    <snmpv3_securityname></snmpv3_securityname>
    <snmpv3_securitylevel>0</snmpv3_securitylevel>
    <snmpv3_authpassphrase></snmpv3_authpassphrase>
    <snmpv3_privpassphrase></snmpv3_privpassphrase>
    <applications>
    <application>Erros nas Interfaces - Entrada</application>
    </applications>
    </item>
    EOF
    done

    for i in $NUM_IFACES; do
    cat << EOF
    <item type="4" key="ifOutOctets.$(echo $i)" value_type="0">
    <description>Trafego de saida na interface`$(echo $GET) -v 1 -c $(echo $COMUNIDADE) $(echo $IP) .1.3.6.1.2.1.31.1.1.1.1.$(echo $i) | cut -f4,5 -d":" 2> /dev/null`</description>
    <delay>30</delay>
    <history>7</history>
    <trends>365</trends>
    <status>0</status>
    <units>b</units>
    <multiplier>1</multiplier>
    <delta>1</delta>
    <formula>8</formula>
    <lastlogsize>0</lastlogsize>
    <logtimefmt></logtimefmt>
    <delay_flex></delay_flex>
    <params></params>
    <trapper_hosts></trapper_hosts>
    <snmp_community>$(echo $COMUNIDADE)</snmp_community>
    <snmp_oid>1.3.6.1.2.1.2.2.1.16.$(echo $i)</snmp_oid>
    <snmp_port>161</snmp_port>
    <snmpv3_securityname></snmpv3_securityname>
    <snmpv3_securitylevel>0</snmpv3_securitylevel>
    <snmpv3_authpassphrase></snmpv3_authpassphrase>
    <snmpv3_privpassphrase></snmpv3_privpassphrase>
    <applications>
    <application>Trafego de saida</application>
    </applications>
    </item>
    EOF
    done

    for i in $NUM_IFACES; do
    cat << EOF
    <item type="1" key="IfOutErrors.$(echo $i)" value_type="0">
    <description>Pacotes de saida com erro na interface`$(echo $GET) -v 1 -c $(echo $COMUNIDADE) $(echo $IP) .1.3.6.1.2.1.31.1.1.1.1.$(echo $i) | cut -f4,5 -d":" 2> /dev/null`</description>
    <ipmi_sensor></ipmi_sensor>
    <delay>30</delay>
    <history>7</history>
    <trends>365</trends>
    <status>0</status>
    <units>packets</units>
    <multiplier>0</multiplier>
    <delta>1</delta>
    <formula>1</formula>
    <lastlogsize>0</lastlogsize>
    <logtimefmt></logtimefmt>
    <delay_flex></delay_flex>
    <params></params>
    <trapper_hosts></trapper_hosts>
    <snmp_community>$(echo $COMUNIDADE)</snmp_community>
    <snmp_oid>1.3.6.1.2.1.2.2.1.20.$(echo $i)</snmp_oid>
    <snmp_port>161</snmp_port>
    <snmpv3_securityname></snmpv3_securityname>
    <snmpv3_securitylevel>0</snmpv3_securitylevel>
    <snmpv3_authpassphrase></snmpv3_authpassphrase>
    <snmpv3_privpassphrase></snmpv3_privpassphrase>
    <applications>
    <application>Erros nas Interfaces - Saida</application>
    </applications>
    </item>
    EOF
    done
    echo ' </items>'
    echo ' <triggers>'

    for i in $NUM_IFACES; do
    cat << EOF
    <trigger>
    <description>Interface`$(echo $GET) -v 1 -c $(echo $COMUNIDADE) $(echo $IP) .1.3.6.1.2.1.31.1.1.1.1.$(echo $i) | cut -f4 -d":" 2> /dev/null` esta fora no roteador {HOSTNAME}</description>
    <type>0</type>
    <expression>{{HOSTNAME}:ifOperStatus.$(echo $i).last(0)}#1</expression>
    <url></url>
    <status>1</status>
    <priority>4</priority>
    <comments></comments>
    </trigger>
    EOF
    done

    for i in $NUM_IFACES; do
    cat << EOF
    <trigger>
    <description>Trafego de entrada na interface`$(echo $GET) -v 1 -c $(echo $COMUNIDADE) $(echo $IP) .1.3.6.1.2.1.31.1.1.1.1.$(echo $i) | cut -f4 -d":" 2> /dev/null` do roteador {HOSTNAME} &gt; 1600kbps por mais de dez minutos</description>
    <type>0</type>
    <expression>{{HOSTNAME}:ifInOctets.$(echo $i).min(600)}&gt;1600000</expression>
    <url></url>
    <status>1</status>
    <priority>2</priority>
    <comments></comments>
    </trigger>

    EOF
    done

    for i in $NUM_IFACES; do
    cat << EOF
    <trigger>
    <description>Trafego de saida na interface`$(echo $GET) -v 1 -c $(echo $COMUNIDADE) $(echo $IP) .1.3.6.1.2.1.31.1.1.1.1.$(echo $i) | cut -f4 -d":" 2> /dev/null` do roteador {HOSTNAME} &gt; 1600kbps por mais de dez minutos</description>
    <type>0</type>
    <expression>{{HOSTNAME}:ifOutOctets.$(echo $i).min(600)}&gt;1600000</expression>
    <url></url>
    <status>1</status>
    <priority>2</priority>
    <comments></comments>
    </trigger>
    EOF
    done

    for i in $NUM_IFACES; do
    cat << EOF
    <trigger>
    <description>Existem pacotes com erros (entrada) na interface`$(echo $GET) -v 1 -c $(echo $COMUNIDADE) $(echo $IP) .1.3.6.1.2.1.31.1.1.1.1.$(echo $i) | cut -f4 -d":" 2> /dev/null` do roteador {HOSTNAME}</description>
    <type>0</type>
    <expression>{{HOSTNAME}:IfInErrors.$(echo $i).last(0)}&gt;1</expression>
    <url></url>
    <status>0</status>
    <priority>2</priority>
    <comments></comments>
    </trigger>
    EOF
    done

    for i in $NUM_IFACES; do
    cat << EOF
    <trigger>
    <description>Existem pacotes com erros (saida) na interface`$(echo $GET) -v 1 -c $(echo $COMUNIDADE) $(echo $IP) .1.3.6.1.2.1.31.1.1.1.1.$(echo $i) | cut -f4 -d":" 2> /dev/null` do roteador {HOSTNAME}</description>
    <type>0</type>
    <expression>{{HOSTNAME}:IfOutErrors.$(echo $i).last(0)}&gt;1</expression>
    <url></url>
    <status>0</status>
    <priority>2</priority>
    <comments></comments>
    </trigger>
    EOF
    done
    echo ' </triggers>
    <graphs>'

    for i in $NUM_IFACES; do
    cat << EOF
    <graph name="Trafego interface`$(echo $GET) -v 1 -c $(echo $COMUNIDADE) $(echo $IP) .1.3.6.1.2.1.31.1.1.1.1.$(echo $i) | cut -f4 -d":" 2> /dev/null`" width="900" height="200">
    <yaxistype>2</yaxistype>
    <show_work_period>1</show_work_period>
    <show_triggers>1</show_triggers>
    <graphtype>0</graphtype>
    <yaxismin>0.0000</yaxismin>
    <yaxismax>100.0000</yaxismax>
    <show_legend>0</show_legend>
    <show_3d>0</show_3d>
    <percent_left>0.0000</percent_left>
    <percent_right>0.0000</percent_right>
    <graph_elements>
    <graph_element item="{HOSTNAME}:ifInOctets.$(echo $i)">
    <drawtype>1</drawtype>
    <sortorder>0</sortorder>
    <color>009900</color>
    <yaxisside>1</yaxisside>
    <calc_fnc>2</calc_fnc>
    <type>0</type>
    <periods_cnt>5</periods_cnt>
    </graph_element>
    <graph_element item="{HOSTNAME}:ifOutOctets.$(echo $i)">
    <drawtype>0</drawtype>
    <sortorder>1</sortorder>
    <color>0000AA</color>
    <yaxisside>1</yaxisside>
    <calc_fnc>2</calc_fnc>
    <type>0</type>
    <periods_cnt>5</periods_cnt>
    </graph_element>
    </graph_elements>
    </graph>
    EOF
    done
    echo ' </graphs>
    </host>
    </hosts>
    </zabbix_export>'

    else

    echo "Utilizar: $0 <IP do alvo> <Comunidade SNMP>"
    exit
    fi

    else

    echo "Utilizar: $0 <IP do alvo> <Comunidade SNMP>"
    exit
    fi

    Comment

    • ipnero
      Junior Member
      • Sep 2010
      • 3

      #3
      Gracias lo pruebo y te cuento como funciono!

      Comment

      • tiffany2010
        Junior Member
        • Oct 2010
        • 1

        #4
        tiffany

        I like this blog.Tiffany Engagement NecklacesTiffany Chanel Jewelry Cartier Jewelry Tiffany ,This blog is valuable.

        Comment

        • tacortes
          Junior Member
          • Aug 2012
          • 1

          #5
          Script nao funcionou

          alberto,
          estou tentando utilizar esse script e esta dando o seguinte erro:

          ./gera_template_snmp.sh: line 15: -v: comando não encontrado
          ./gera_template_snmp.sh: line 20: -v: comando não encontrado


          voce tem como me ajudar?

          Comment

          • exkg
            Senior Member
            Zabbix Certified Trainer
            Zabbix Certified Specialist
            • Mar 2007
            • 718

            #6
            Pero ... el OID Discovery en la 2.0 no ayuda ?


            []s,
            Luciano
            --
            Luciano Alves
            www.zabbix.com
            Brazil | México | Argentina | Colômbia | Chile
            Zabbix Performance Tuning

            Comment

            Working...