Caso Real 40 – Monitorear switches con MRTG en Ubuntu server

Problema:

Monitorear estado de TODOS los switches de la empresa, CADA port de CADA sw, bandwidth utilizado, uptime, etc, en MODO grafico y en TIEMPO REAL

Solucion:

Instalar un server (en mi caso fue virtual y funciona perfecto) con Ubuntu Server 11.04 (luego de upgrade a 11.10), e instalar MRTG para que levante la info SNMP de cada dispositivo a monitorear.

Algunas definiciones antes de continuar.

Que es MRTG? (Multi Router Traffic Grapher), y que es SNMP? copio la defincion de la wiki, facil de entender.

“MRTG (Multi Router Traffic Grapher) es una herramienta, escrita en C y Perl por Tobias Oetiker y Dave Rand, que se utiliza para supervisar la carga de tráfico de interfaces de red. MRTG genera un informe en formato HTML con gráficas que proveen una representación visual de la evolución del tráfico a lo largo del tiempo.

Para recolectar la información del tráfico del dispositivo (habitualmente routers) la herramienta utiliza el protocolo SNMP (Simple Network Management Protocol). Este protocolo proporciona la información en crudo de la cantidad de bytes que han pasado por ellos distinguiendo entre entrada y salida. Esta cantidad bruta deberá ser tratada adecuadamente para la generación de informes

También permite ejecutar cualquier tipo de aplicación en lugar de consultar un dispositivo SNMP. Esta aplicación proporciona como salida dos valores numéricos que se corresponden a la entrada y salida. Habitualmente suelen utilizarse scripts que monitorizan la máquina local.

Asimismo, proporciona una aplicación cfgmaker que genera la configuración para un router de forma automática utilizando la meta información que proporciona SNMP”

Hasta aca la definicion de la wiki, seguimos.

Como leimoa mas arriba, MRTG toma los datos que le envia el protocolo SNMP de cada dispositivo y grafica en base a ellos.

Por supuesto que lo que deseamos monitorear debe tener habilitado el SNMP y tenemos que conocer el nombre de la comunidad SNMP 8esto se lo preguntamos al administrador de redes, y si somos nosotros lo sacamos de la config del sw/router a monitorear)

Por defecto la comunidad es “public”, pero la mayoria de las veces se cambia el nombre por cuestiones de seguridad.

En un router cisco podemos ver SNMP de la siguiente manera

Router# show running-config | include snmp

y nos devuelve:

snmp-server community public RO
snmp-server community private RW

lo que nos indica que hay una comunidad de solo lectura RO y otr a de lectura/escritura RW

A nosotros nos interesa la publica, en este caso “public”

Ejemplo de SNMP configurado en un switch Juniper EX4200 series

snmp {
community swtest{
authorization read-only;
}
trap-group SW-IDF-xx{
categories {
authentication;
chassis;
link;
remote-operations;
routing;
startup;
rmon-alarm;
vrrp-events;
configuration;
}
targets {
10.72.xxx.xxx;
}

Bien, entonces tenemos que en el juniper la comunidad se llama swtest (lo recordamos para configurar nuestro MRTG)

Configuracion de MRTG en Ubuntu server 11.04

Suponemos ya instalado un Ubuntu server v 11.04, a partir de alli instalamos el mrtg

sudo apt-get install mrtg

al ser la primera vez que lo instalamos nos aparecera un cartel como el de abajo al que respondemos YES, esto lo instalara con permisos 640, si respodemos no lo hara con 644

La instalacion creara un archivo de ejemplo wn /etc/mrtg.cfg , el cual contendra la informacion obtenida del dispositivo

Para saber que instalo y donde el mrtg, hacemos

sudo updatedb && locate mrtg

Bien, mrtg.cfg se instala en /etc, pero lo vamos a mover para tener todo mas ordenado

sudo mkdir /etc/mrtg && sudo mv /etc/mrtg.cfg /etc/mrtg

Listo, MRTG instaldo, ahora lo configuramos

MRTG viene con un “configurador” llamado cfgmaker, que nos ayudara a configurar mrtg.cfg con la informacion obtenida de nuestro dispositivo , pero antes configuramos el SNMP

sudo cfgmaker --output=/etc/mrtg/mrtg.cfg public@your-router's-IP-address

por supuesto cambiamos la comunidad “public” por la nuestra “swtest”@la ip del switch

ejemplo

sudo cfgmaker --output=/etc/mrtg/mrtg.cfg swtest@10.72.150.248

Ahora abrimos con un editor (vim o nano) el mrtg.cfg y chequeamos que en Global Configiration Options la linea “WorkDir: /var/www/mrtg” esta descomentada (sin #)y que Global Defaults la linea “Options[_]: growright, bits” tambien esta sin comentar. Por ultimo agregamos bajo Global Defaults section lo que sigue

RunAsDaemon: Yes

Interval: 5

Logdir: /var/log/

EnableIPv6: no

Que hicimos aca?

RunAsDaemon es obviamente para que se ejecute como daemon, al correr como tal necesitamos decirle cada que periodo tomar muestras, en neste caso Interval cada 5 minutos, y que esas muestras que toma las deje en /var/log/, desactivamos IPv6 ya que MRTG NO soporta multiples dispositivos en esta IPv6.

Ahora vamos a crear la web para ver nuestro monitoreo del dispositivo

sudo mkdir /var/www/mrtg

sudo indexmaker --output=/var/www/mrtg/index.html /etc/mrtg/mrtg.cfg

Ya esta configurado, ahora vemos como empezar.

ANTES debemos cambiar LANG a C, ya que MRTG usa esta variable de entorno y las versiones de Ubuntu van n UTF-8

sudo env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg

Bien, ahora abrimos un internet explorer, mozilla o el que sea y vamos a

http://la-IP-de-mi-server-ubuntu-con-mrtg/mrtg y nos da una pantalla como la que sigue

Excelente! y funciona

Gran parte de este post fue traducido de

http://www.iceflatline.com/2009/08/how-to-install-and-configure-mrtg-on-ubuntu-server/

gracias


Los comentarios están cerrados.

IMPORTANTE. Los contenidos y/o comentarios vertidos en este servicio son exclusiva responsabilidad de sus autores así como las consecuencias legales derivadas de su publicación. Los mismos no reflejan las opiniones y/o línea editorial de Blogs de la Gente, quien eliminará los contenidos y/o comentarios que violen sus Términos y condiciones. Denunciar contenido.
AgenciaBlog