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.
Ad Widget
Collapse
Templates para cisco catalyst X
Collapse
X
-
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} > 1600kbps por mais de dez minutos</description>
<type>0</type>
<expression>{{HOSTNAME}:ifInOctets.$(echo $i).min(600)}>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} > 1600kbps por mais de dez minutos</description>
<type>0</type>
<expression>{{HOSTNAME}:ifOutOctets.$(echo $i).min(600)}>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)}>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)}>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 -
tiffany
I like this blog.Tiffany Engagement NecklacesTiffany Chanel Jewelry Cartier Jewelry Tiffany ,This blog is valuable.Comment
-
Comment
Comment