modified on 18 June 2010 at 04:27 ••• 12,325 views

Monitoreo snmp mrtg

From Ubiquiti Wiki

Jump to: navigation, search

Contents

Monitoreo SNMP y MRTG

Este documento ha sido traducido y parcialmente modificado por Salvador Bertenbreiter desde el (original en inglés). Con fecha 12 de Junio de 2010.

Introducción

Con frecuencia, como administrador de una red, querrá saber cómo se comporta su red a través de las horas o días pasados. Es en estas ocasiones cuando la utilidad de monitoreo es útil.

AirOS ha implementado el protocolo SNMP, el cual podemos utilizar para monitorear la red. Para leer los datos deberá utilizar un programa que pueda sondear el servidor SNMP que corre en su(s) dispositivo(s) AirOS. Una herramienta popular para hacer esto es Tobi Oetiker's MRTG. En este manual se enseñará de manera simple, pero efectiva, cómo monitorear y mostrar gráficos sobre algunos parámetros claves de su red en sólo 15 minutos de trabajo.

Requisitos

  • Uno o más dispositivos con un agente SNMP (en este tutorial se usó una WispStation5. Sin embargo, cualquier otro dispositivo Ubiquiti funciona de manera similar).
  • Los archivos MRTG, una máquina que ejecute MRTH para recolectar los datos y un servidor Web instalado para mostrar los resultados (apache, lighttpd, nginx, etc.).

Preparando su dispositivo Ubiquiti

Inicie su navegador Werb y vaya a la página de configuración del dispositivo (la dirección IP por defecto es 192.168.1.20), luego vaya a la pestaña de Servicios (Services). Encuentre la sección de Agente SNMP y marque la opción de Habilitar Agente SNMP (Enable SNMP Agent). Los tres casilleros de texto podrán ser editados ahora. A continuación se describe brevemente cada una de las opciones:

  • Comunidad (Community): es una especie de contraseña, la cual es usada para ingresar al dispositivo SNMP, mantenga este nombre en secreto.
  • Contacto (Contact) y Ubicación (Location) son usados para su información y no tienen mayores implicancias en los datos recopilados. En la imagen a continuación se han ingresado algunos datos a modo de ejemplo.


Image:Airos_snmp.png


Advertencia: Si el host o servidor que está utilizando para monitorear la red, el equipo que ejecuta MRTG, está en una red diferente que el dispositivo AirOS, en dicho caso, necesitará por lo tanto modificar los ajustes de su red. Normalmente el equipo que ejecuta MRTG debe ser capaz hacer y responder ping al dispositivo AirOS en cuestión. En caso que no sea capaz de realizar ping al dispositivo entonces el monitoreo mediante SNMP no funcionará de manera adecuada.

Una vez configurado el Agente SNMP, guarde los cambios y aplíquelos. Ahora su dispositivo AirOS está listo para ser monitoreado. En caso que necesite una explicación más detallada sobre el Agente SNMP, consulte el Manual de AirOS.

Preparación de MRTG

En este tutorial se utilizará una computadora que ejecuta la distribución de Linux Debian, mas podrá utilizar otros sistema operativos que soporten MRTG.

Primero, compruebe la conectividad con el dispositivo AirOS. Con un simple ping será suficiente:

root@test:~# ping 192.168.1.20

Obviamente deberá utilizar aquí la dirección IP de su dispositivo, si su dispositivo posee otra dirección IP, reemplace 192.168.1.20 por la dirección correspondiente. En caso que reciba respuestas, presione la combinación de teclas Ctrl+C para detener el ping y ahora compruebe la conexión SNMP.

En la consola (terminal) escriba:

root@test:~# snmpwalk -v1 -c ubnt2 192.168.1.20

Como resultado debiese obtener una gran cantidad de datos, que lucen como los de a continuación:

...
IF-MIB::ifSpecific.5 = OID: SNMPv2-SMI::zeroDotZero
SNMPv2-MIB::snmpInPkts.0 = Counter32: 484
SNMPv2-MIB::snmpOutPkts.0 = Counter32: 471
SNMPv2-MIB::snmpInBadVersions.0 = Counter32: 0
SNMPv2-MIB::snmpInBadCommunityNames.0 = Counter32: 12
SNMPv2-MIB::snmpInBadCommunityUses.0 = Counter32: 0
SNMPv2-MIB::snmpInASNParseErrs.0 = Counter32: 0
SNMPv2-MIB::snmpInTooBigs.0 = Counter32: 0
SNMPv2-MIB::snmpInNoSuchNames.0 = Counter32: 0
SNMPv2-MIB::snmpInBadValues.0 = Counter32: 0
SNMPv2-MIB::snmpInReadOnlys.0 = Counter32: 0
SNMPv2-MIB::snmpInGenErrs.0 = Counter32: 0
SNMPv2-MIB::snmpInTotalReqVars.0 = Counter32: 0
SNMPv2-MIB::snmpInTotalSetVars.0 = Counter32: 0
SNMPv2-MIB::snmpInGetRequests.0 = Counter32: 0
SNMPv2-MIB::snmpInGetNexts.0 = Counter32: 484
SNMPv2-MIB::snmpInSetRequests.0 = Counter32: 0
SNMPv2-MIB::snmpInGetResponses.0 = Counter32: 0
SNMPv2-MIB::snmpInTraps.0 = Counter32: 0
SNMPv2-MIB::snmpOutTooBigs.0 = Counter32: 0
SNMPv2-MIB::snmpOutNoSuchNames.0 = Counter32: 0
SNMPv2-MIB::snmpOutBadValues.0 = Counter32: 0
SNMPv2-MIB::snmpOutGenErrs.0 = Counter32: 0
SNMPv2-MIB::snmpOutGetRequests.0 = Counter32: 0
SNMPv2-MIB::snmpOutGetNexts.0 = Counter32: 0
...


En caso que obtenga como respuesta algo como:


Timeout: No Response from 192.168.1.20


Deberá verificar el SNMP Community y/o la dirección IP del dispositivo AirOS

Si ha obtenido respuesta, entonces ahora podrá seguir adelante. Ahora vamos a ver qué interfaces usa nuestro dispositivo:

root@test:~# snmpwalk -v1 -c ubnt2 192.168.1.20 ifDescr

o

root@test:~# snmpwalk -v1 -c ubnt2 192.168.1.20 .1.3.6.1.2.1.2.2.1.2


Deberá obtener un resultado como el siguiente:


IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: wifi0
IF-MIB::ifDescr.4 = STRING: ath0
IF-MIB::ifDescr.5 = STRING: br0


Las primeras tres líneas debiesen ser idénticas, pero las siguiente dos pueden ser diferentes. Los números de las interfaces coinciden con los anteriores después de un 'hard reboot' de su dispositivo. En caso que haya cambiado algún parámetro en el dispositivo AirOS, por lo general los ajustes de red inalámbrica, los números de las interfaces podrán cambiar. Podrá comprobar si han cambiado los números simplemente cambiando el modo de operación inalámbrico en la pestaña Wireless, y luego revisando los cambios, con este comando:

root@test:~# snmpwalk -v1 -c ubnt2 192.168.1.20 ifDescr
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: wifi0
IF-MIB::ifDescr.12 = STRING: ath0
IF-MIB::ifDescr.13 = STRING: br0


Tenga en cuenta que los nombres de las interfaces pueden cambiar de un dispositivo a otro. Los productos de la serie M de Ubiquiti tendrán las siguientes interfaces mientras operan en modo bridge (nuevamente, los números de las interfaces pueden cambiar luego de un reinicio a valores por defecto):

IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: gre0
IF-MIB::ifDescr.3 = STRING: eth0_real
IF-MIB::ifDescr.4 = STRING: eth1_real
IF-MIB::ifDescr.5 = STRING: wifi0
IF-MIB::ifDescr.6 = STRING: br0
IF-MIB::ifDescr.7 = STRING: ath0


¿Por qué es esto tan importante? Lo es porque SNMP recopila los datos basados en el número de la interfaz, no en base a su nombre. Una vez bien definido este tema, vamos a pasar a ver cuántos bytes ha transmitido nuestro dispositivo AirOS desde el último reinicio.

root@test:~# snmpwalk -v1 -c ubnt2 192.168.1.20 ifinOctets
IF-MIB::ifInOctets.1 = Counter32: 0
IF-MIB::ifInOctets.2 = Counter32: 186740992
IF-MIB::ifInOctets.3 = Counter32: 4117381100
IF-MIB::ifInOctets.4 = Counter32: 3824919421
IF-MIB::ifInOctets.5 = Counter32: 569163
root@test:~# snmpwalk -v1 -c ubnt2 192.168.1.20 ifoutOctets
IF-MIB::ifOutOctets.1 = Counter32: 0
IF-MIB::ifOutOctets.2 = Counter32: 3824764209
IF-MIB::ifOutOctets.3 = Counter32: 305295003
IF-MIB::ifOutOctets.4 = Counter32: 168468497
IF-MIB::ifOutOctets.5 = Counter32: 172865


En caso que obtenga resultados similares a los mostrados arriba entonces podrá avanzar al siguiente paso. En caso de recibir un error, revise si ha cometido errores, por ejemplo tipográficos. Las etiquetas legibles (como “ifoutOctets”) o identificadores de objetos numéricos SNMP pueden ser usados para obtener datos sobre un dispositivo en particular o una interfaz específica. Vamos a encontrar el índice de la interfaz inalámbrica (ath0):

root@test:~# snmpwalk -v1 -c ubnt2 192.168.1.20 ifDescr | grep ath0 | head -c 17 | tail -c 1 

Podemos utilizar este índice (digamos que obtuvimos como resultado el número “7”) para nuevas solicitudes.

Nivel de señal de la interfaz número 7 (ath0) del dispositivo:


root@test:~# snmpwalk -v1 -c ubnt2 192.168.1.20 1.3.6.1.4.1.14988.1.1.1.1.1.4.7

Tasa de transmisión (TxRate) de la interfaz número 7 (ath0) del dispositivo, en bps:


root@test:~# snmpwalk -v1 -c ubnt2 192.168.1.20 1.3.6.1.4.1.14988.1.1.1.1.1.2.7

Tasa de recepción (RxRate) de la interfaz número 7 (ath0) del dispositivo, en bps:

root@test:~# snmpwalk -v1 -c ubnt2 192.168.1.20 1.3.6.1.4.1.14988.1.1.1.1.1.3.7

Canal utilizado por la interfaz número 7 (ath0) del dispositivo:

root@test:~# snmpwalk -v1 -c ubnt2 192.168.1.20 1.3.6.1.4.1.14988.1.1.1.1.1.7.7

Hay un gran número de otros OIDs útiles, los cuales pueden ser obtenidos de la misma manera, como:

Firmware Version: 1.2.840.10036.3.1.2.1.4
Hostname: 1.3.6.1.4.1.14988.1.1.1.1.1.5
AP MAC: 1.3.6.1.4.1.14988.1.1.1.1.1.6
Station MAC: 1.2.840.10036.1.1.1.1


Todos los OIDs utilizables están descritos en los archivos MIB.

Instalación de MRTG

Puede instalar MRTG de muchas formas, en este manual se ha hecho de la forma más simple, desde el administrador de paquetes binarios de Debian:

root@test:~# apt-get install mrtg

En caso que quiera instalar MRTG de otra manera, puede consultar la página este sitio web.

Después de la instalación, edite el archivo de configuración en su editor de texto:


root@test:~# vi /etc/mrtg.cfg

Advertencia La ubicación del archivo mrtg.cfg depende de su instalación. Puede encontrar el archivo fácilmente, escribiendo el siguiente comando:

find /etc/ | grep -i mrtg.cfg

Obtendrá un resultado que debiese ser parecido al siguiente:

/etc/mrtg/mrtg.cfg

En este caso, escriba lo siguiente:

root@test:~# vi /etc/mrtg/mrtg.cfg

Al final de su archivo mrtg.cfg agregue lo siguiente:


Title[test1_ath0]: Wisp Station 5
PageTop[test1_ath0]: Wisp Station 5 Radio MRTG TEST
Target[test1_ath0]: ifInOctets.4&ifOutOctets.4:ubnt@192.168.1.21 
MaxBytes[test1_ath0]: 10000000

Con esto monitoreará un flujo de datos a través de la interfaz inalámbrica de su dispositivo Ubiquiti (en este caso un WispStation 5). También puede agregar la interfaz cableada, eth0, de la siguiente forma:

Title[test1_eth0]: Wisp Station 5
PageTop[test1_eth0]: Wisp Station 5 Radio MRTG TEST
Target[test1_eth0]: ifInOctets.2&ifOutOctets.2:ubnt@192.168.1.21  
MaxBytes[test1_eth0]: 10000000

Image:Mrtg_short.png

MRTG obtiene los valores de los parámetros ifInOctets and ifOutOctets para cada interfaz cada 5 minutos, de manera automática, luego procesa los flujos de datos y dibuja un gráfico como este:

Image:Mrtg_full.png

Podrá ver la página de estadísticas escribiendo la dirección IP del servidor MRTG en su navegador Web, en este caso es:

Image:Mrtg_long.png


http://127.0.0.1/mrtg/test1_ath0.html Obtendrá como resultado algo como esto:

Los gráficos para una serie de tiempo más largo, lucen mucho más interesantes, como este:

Ahora podrá analizar el tráfico de su red en tiempo real, en cualquier momento.

SNMP MIBS

Los siguientes parámetros MIBs son soportados por AirOS (SNMP v1):

SNMPv2-MIB SNMPv2-CONF SNMPv2-SMI SNMPv2-TC IF-MIB IEEE802dot11-MIB FROGFOOT-RESOURCES-MIB