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
- Sin Comentarios
- Sin votos
- Reportar este Posteo

