Monitoreo de tráfico con mrtg en CentOS

Imagen de Epe

Dentro de una red es importante llevar un un monitor de tráfico, esta permitiría ayudar a detectar fallas como también medir el uso de la red para poder hacer previsiones y tomar medidas.
MRTG - Multi Router Traffic Grapher

mrtg

Este es un programa de Código Abierto (disponible en http://www.mrtg.org/) que se puede implementar sobre Sistemas Operativos UNIX (más común) y Windows para realizar graficaciones del tráfico con un tiempo de muestreo de mínimo 5 minutos en el modo normal usando diferentes fuentes de datos, pero generalmente se utiliza el SNMP.

Dado que cada ciclo de muestreo, se genera un gráfico de cada monitopr, esto trae como desventajas una carga al sistema que en la práctica hace límitada su implementación a gran escala, y además dado que su gráfico es un muestreo de 5 minutos, es difícil detectar alguna falla durante los lapsos entre cada muestreo.

mrtg se usa para monitorear variada cantidad de parámetros. En muchas empresas no sólo se monitorea la red, sino que también se usa para verificar diferentes parámetros como la carga de cpu, uso de memoria, cantidad de procesos en ejecución, etc. Hasta se llega a monitorear el tráfico generado por los mails del sistema, cuántos son virus, cuántos spam, cuántos mails, válidos.

En el caso nuestro, nos centraremos en usar el mrtg para una de sus concepciones iniciales, que es el graficar el uso de la red.

El mrtg se puede instalar con:


yum install mrtg net-snmp-libs net-snmp-perl net-snmp

mrtg es un paquete que contiene muchas dependencias, posiblemente yum nos pida instalar algunos paquetes del ambiente gráfico y otras librerías y utilerías para crear las gráficos.

Configuración del snmp
El SNMP o Simple Network Management Protocol es un protocolo de red concebido con la idea de poder administrar un servidor, ya sea para cambiar parámetros o emitirle órdenes como para poder obtener datos informativos del servidor, su comportamiento actual, carga, diferentes parámetros del sistema, uso de las interfaces de red.

Por defecto el snmp viene desconfigurado. Después de una investigación en internet, encontré un archivo de configuración (/etc/snmp/snmpd.conf) que funciona para nuestro centos 4.

El snmp viene por defecto bien desconfigurado, ya que tiene una severa deficiencia por defecto, por lo tanto redhat no brinda una configuración funcional, es por esto que primero que todo, vamos a salvar una copia del archivo original de configuración de snmp:


cd /etc/snmp
cp snmpd.conf snmpd.conf.orig

Ahora, creemos un nuevo arvhivo snmpd.conf que contenga la siguiente información:


com2sec local 127.0.0.1/32 public
com2sec miredlocal 192.168.4.0/24 public

#se asigna local al grupo de lectura escritura
group MyRWGroup v1 local
group MyRWGroup v2c local
group MyRWGroup usm local

#Se asigna miredlocal al grupo de solo lectura
group MyROGroup v1 miredlocal
group MyROGroup v2c miredlocal
group MyROGroup usm miredlocal

## name incl/excl subtree mask(optional)
view all included .1 80

## group context sec.model sec.level prefix read write notif
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all all

syslocation Servidor Linux en dns.local.net
syscontact Administrador (dns@local.net)

Este archivo le indicará las redes que pueden acceder a nuestro sistema snmp, las claves de acceso por cada red y los derechos asignados según la red (lectura/escritura, lectura).

La información más importante es la clave de acceso (en mi ejemplo es: public), te sugiero que no uses public de clave, pon otra cosa de clave!!!

Una vez configurado, podremos arrancar el servicio snmp:


chkconfig --level 2345 snmpd on
service snmpd restart

Es a este servicio al que se conectará el mrtg para verificar el tráfico de red y poder realizar los gráficos.

Generando el archivo de configuración del mrtg
El mrtg necesita de un archivo de configuración, donde le indicaremos diferentes parámetros de configuración y qué dispositivos chequear para graficar.

El crear el archivo de configuración se hace con el comando: cfgmaker y lleva de parámetros la clave de la comunidad (con lectura basta) y la IP del equipo a monitorear:


cfgmaker public@127.0.0.1 > /etc/mrtg/mrtg.cfg

Con esto nos bastará (si tenemos bien el archivo de configuración del snmp) para crear un archivo de configuración que monitoreará a nuestra máquina (127.0.0.1) y que tendrá de clave "public", si en la configuración del mrtg le pusiste otra clave, entonces ponle aqui esa clave que has puesto por favor.

El cfgmaker saca a stdout los contenidos de la configuración. Es por esto que hay que redireccionarlo hacia un archivo. Siempre sugerimos el usar de directorio a /var/www/mrtg pues ese directorio es el que por defecto se muestra cuando se teclea desde un browser http://127.0.0.1/mrtg

Indicar el WorkDir en /etc/mrtg/mrtg.cfg

El archivo mrtg.cfg carece de una directiva importante que es WorkDir, es necesario (obligatorio) editar el archivo y colocar allí adentro esta línea:


WorkDir: /var/www/mrtg

Ejecutando el mrtg:

Para probar el funcionamiento se utiliza el comando

env LANG=C mrtg /etc/mrtg/mrtg.cfg

Para correr cada cinco minutos y obtener estadísticas de uso (cada cinco minutos, se utiliza el cron

Debemos indicar el archivo de configuración:

crontab -e


*/5 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg &> /dev/null

En este caso hemos editado el crontab del usuario root y le indicamos que ejecute el mrtg con el archivo de configuración mrtg.cfg cada 5 minutos. El mrtg no funciona bien con la variable de aspecto LANG puesta a UTF8 que es el valor original, por esto es que también le cambiamos al mrtg la variable de LANG a C.

Viendo los logs

Unos minutos después de trabajar, podemos acceder desde un navegador a este link:

http://127.0.0.1/mrtg/localhost_2.html

Así podríamos ver el html llamado localhost_2, por supuesto este archivo html puede variar según el sistema que monitoreemos

Podremos verificar cómo va creciendo el gráfico de red. El verde es el gráfico de los paquetes que entran, la línea azul son los paquetes que salen de nuestro servidor.

Otros ajustes:

Para tener una página en mrtg se usa el siguiente comando:

indexmaker /etc/mrtg/mrtg.cfg >/var/www/mrtg/index.html

Una vez hecho esto, podemos usar el navegador (firefox u otro) para apuntar a la siguiente dirección:

http://127.0.0.1/mrtg

Y aparecerá la página inicial configurada con indexmaker

Por defecto el mrtg grafica basado en BYTES/s, muchas personas vemos mejor los gráficos en bits/s, es por esto que podemos editar nuestro mrtg.cfg y descomentar una opción llamada "Options[_]" que le indicará a nuestro mrtg que grafique en bits y que crezca a la derecha (growright) en vez de crecer hacia la izquierda.

Viendo el mrtg desde otras máquinas:
Por defecto el mrtg está configurado para que sólo pueda ser visible su sitio web desde la misma máquina (localhost). Si quisiéramos podríamos editar:
/etc/httpd/conf.d/mrtg.conf

Y cambiar dos líneas que indican el orden de acceso, pondríamos:
Order allow,deny
Allow from all

(invertimos el order y en vez de deny from all ponemos allow from all).

Reiniciamos nuestro apache (service httpd restart) y listo, ya podríamos ver este directorio de nuestro servidor desde otra máquina.

Monitoreando otros sistemas
Es muy simple, sencillamente tenemos que activar el snmp en otros sistemas (routers, windows, etc) y podemos obtener gráficos de cómo se comporta este sistema remoto. Nosotros siempre preferimos verificar ruteadores que no servidores, ya que normalmente los ruteadores concentran la información de todo el tráfico de la red

Comentarios

Hola PANA... Esta muy bueno

Imagen de skypower

Hola PANA... Esta muy bueno ... 100% ...
Yo se que te gusta usar CENTOS, pero en Debian no coinciden algunos de esos paquetes, podrias crear un comentario (extra) donde incluyas los paquetes a usar en Debian...!!!

Claro si quieres!!! . . .para mi concepto seria muy util para los que usen otras distro...

En Debian seria asi:

apt-get install mrtg mrtg-contrib snmp snmpd

No se si tengan otra opinion...

Salud2s..

ecualug
______________________
!!!AdminRed_Debian!!!

ecualug
______________________
!!!AdminRed_Debian!!!

me parece bien, si te

Imagen de Epe

me parece bien, si te funciona en tu otra distro puedes confirmarlo en esta vía? Para que los usuarios de esa distro sepan que le funcionará igualmente.

La parte saludable es que a la final es Linux.. así que funcionará, te lo garantizo.

La parte negativa es que no tengo tiempo de probarlo en todas las distros, por lo que escogí una para usar mis paquetes. Lo siento ;-)

Saludos
epe
--
NuestroServer.com
Ecuador: +(593) 9 9246504, +(593) 2 600 4454
USA: +1 305 359 4495, España: +34 91 7617884


Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

Configuracion MRTG

Saludos, tengo una red operativa, divididas en 2 servicios, mi consulta es la siguiente, al yo manipular estos servicios en centos 5, perjudicaria el trafico de mi red, o que le parasaria a mi red y a mis abonados de la misma???

Este es el problema que me

Imagen de skypower

Bueno, un pequeño tips para argumentar lo que el Pana EPE desarrollo... pero en la Distro DEBIAN ETCH

Bueno si deseamos utilizar el paquete net-snmp en debian no aparece, pero si puede se descargar desde net-snmp-5.1.1 donde debera ser compilado para su utilizacion...

Bueno si no tenemos como hacerlo, utilizaremos lo que tiene nuestra distro en el Mirror...


#Instalacion de los paquetes a utilizar
apt-get install mrtg mrtg-contrib mrtgutils snmp snmpd libsnmp-base

#Editar el archivo /etc/snmp/snmpd.conf
#---------------------------------------------------------
com2sec local 127.0.0.1/32 public
com2sec miredlocal 192.168.14.0/24 public

#se asigna local al grupo de lectura escritura
group MyRWGroup v1 local
group MyRWGroup v2c local
group MyRWGroup usm local

#Se asigna miredlocal al grupo de solo lectura
group MyROGroup v1 miredlocal
group MyROGroup v2c miredlocal
group MyROGroup usm miredlocal

## name incl/excl subtree mask(optional)
view all included .1 80

## group context sec.model sec.level prefix read write notif
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all all

syslocation Servidor Linux en dns.local.net
syscontact Administrador (dns@local.net)
#---------------------------------------------------------

# Reiniciamos el servicio
invoke-rc.d snmpd restart

# Comprobamos el correcto funcionamiento del snmp
cfgmaker public@localhost
snmpwalk -c public -v 1 127.0.0.1 system

# Finalmente configuramos el mrtg
cfgmaker public@localhost --output=/etc/mrtg.cfg

# Para que pueda verse desde los exploradores
indexmaker /etc/mrtg.cfg --output=/home/www/mrtg/index.html 2> /dev/null&

#Ejecutamos el mrtg
mrtg

#Si llegara a fallar
killall mrtg
mrtg

# Accedemos desde la web
lynx http://localhost/mrtg

Y listo...

Bye...

ecualug
______________________
!!!AdminRed_Debian!!!

te parece bien que divida el

Imagen de Epe

te parece bien que divida el post en dos partes? una para tu debian y otra para centos? así los usuarios no se cnfunden..

en mi opinión es mejor... me das el ok y lo hacemos ok?

Saludos
epe
--
NuestroServer.com
Ecuador: +(593) 9 9246504, +(593) 2 600 4454
USA: +1 305 359 4495, España: +34 91 7617884


Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

Una consulta distinguidos

Imagen de damage

Una consulta distinguidos panas,antes de nada ya he configurado snmp y mrtg varias veces, pero en un Cetos 4.7 de 64 bits se me presenta el inconveniente de timeout al hacer el snmpwalk, no se por qué rayos sucede esto, en los log's lo unico que sale es:
srv snmpd[28356]: Connection from 192.168.100.1 REFUSED, no se que este rechazando la consulta de snmp hacia las interfaces, alguien me
puede dar una luz.

Saludos.

P.D. versión de snmp:
NET-SNMP version: 5.1.2
Kernel 2.6.9-78.ELsmp

Keep The Fire Burning.....
Stryper 1988

Revisa que no hayas metido

Imagen de deathUser

Revisa que no hayas metido mal el dedo al configurar las comunidades SNMP, grupos de acceso, etc. trata de configurar algo con full permisos y luego restringe a lo que necesites, suele ser solo eso ...

Suerte ...

bye
:)

en esa máquina donde

Imagen de Epe

en esa máquina donde supuestamente corre el snmpd, en verdad está corriendo?

netstat -anp|egrep 161

o
netstat -anp|egrep snmpd

Saludos
epe
--
NuestroServer.com
Ecuador: +(593) 9 9246504, +(593) 2 600 4454
USA: +1 305 359 4495, España: +34 91 7617884


Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

Si esta corriendo pues voy a

Imagen de damage

Si esta corriendo pues voy a verificar con netstat, debe estar bien configurado el snmpd.conf ya que repito no es la primera ni la segunda vez que configuró el snmp por eso mi duda, en caso de que no esté corriendo cual sería el motivo si supuestamente todo está en orden en el .conf? Estoy escribiendo desde mi teléfono llego a mi server, me conectó remotamente al otro server y reviso si esta corriendo.

Keep The Fire Burning.....
Stryper 1988

Páginas