Monitoreo snmp mrtg
From Ubiquiti Wiki
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.
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
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:
Podrá ver la página de estadísticas escribiendo la dirección IP del servidor MRTG en su navegador Web, en este caso es:
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



