MRTG el mago…

By 27 de febrero de 2007 Debian, Linux, Ubuntu 20 Comments

eth-day.png Una forma de tener idea de que tráfico y que carga está soportando tu servidor es mediante una aplicación que hace dibujitos de cada cosa que olisquea (y que le digas, claro).

MRTG, son las siglas de Multirouter Traffic Grapher. Fundamentalmente es una aplicación que permite sacar estadisticas de todo tipo.

Algunas estadisticas que te deja hacer el soft:

  • Control del tráfico de un router adsl.
  • Control del tráfico enviado/recibido de las tarjetas de red
  • Control del uso de la CPU
  • Medidor del uso de la RAM
  • Control del trafico del servidor web Apache.

Una maravilla... :)

Para instalar la aplicación:

# aptitude install mrtg mrtgutils mrtg-contrib

Siendo:

mrtg
Programa mrtg
mrtgutils
Utilidades mrtg
mrtg-contrib
Utilidades mrtg


1. Configurar el acceso al router.

Hay una utilidad que configura llamada: cfgmaker, ésta configura solo mrtg para obtener las estadísticas del router.

#cfgmaker
--global `WorkDir: /var/www/mrtg` --global `Options[_]: bits,growright` --output /etc/mrtg/mrtg.cfg [email protected]_del_router

Siendo:

workdir: Donde se guardan los resultados.

output: Donde esta el fichero cfg (fichero de configuración).

2. Configurar la carga de la cpu

Hay una utilidad llamada mrtg-load que devuelve el uso de la cpu.

Lo primero: probar que funciona poniendo desde consola: mrtg-load

Veamos que debemos añadir al fichero /etc/mrtg.cfg

# CPU load %
Target[cpu]:`/usr/bin/mrtg-load -m 100`
Title[cpu]: Carga de CPU
PageTop[cpu]: <H1>CPU Carga %</H1>
<TABLE>
<TR><TD>System:</TD> <TD>solusan.com</TD></TR>
<TR><TD>Maintainer:</TD> <TD>Solusan</TD></TR>
<TR><TD>Description:</TD><TD>Carga del procesador (%) </TD></TR>
<TR><TD>Email:</TD> <TD>solusan(una a con un circulito)solusan.com</TD></TR>
</TABLE>
MaxBytes[cpu]: 100
Unscaled[cpu]: ymwd
ShortLegend[cpu]: %
XSize[cpu]: 380
YSize[cpu]: 100
YLegend[cpu]: Carga(%)
Legend1[cpu]:
Legend2[cpu]: Utilización de la CPU en % (Carga)
Legend3[cpu]: Tiempo de funcionamiento (uptime)
Legend4[cpu]: Nombre de lo que estamos monitorizando
LegendI[cpu]:
LegendO[cpu]: Carga(%);
Options[cpu]: gauge
Background[cpu]: #bbbbbb
Colours[cpu]: GREEN#00eb0c,BLUE#1000ff,DARK GREEN#006600,VIOLET#ff00ff

Siendo:
Target[cpu]:`/usr/bin/mrtg-load -m 100`
La instrucción que pide porcentajes de uso de la cpu.
Options[cpu]: gauge
Lo que calcula las cantidades sin acumular

3. Midiendo el tráfico SNMP

# aptitude install snmpd

Ahora editamos el fichero de configuración de snmpd:

# vim /etc/snmp/snmpd.conf

Comentamos con # la cadena que acontinuación detallo:

com2sec paranoid default public

Y dejamos descomentada (si lo estubiera), la entrada:

com2sec readonly default public

Esto da acceso al todo el mundo al SNMP server en modo de sólo lectura. También es el que contiene las estadísticas de las tarjetas de red.

Aplicamos cambios y reiniciamos el servicio snmpd:

# /etc/init.d/snmpd restart

Generaremos el fichero de configuración con:

# cfgmaker --global 'WorkDir: /var/www/mrtg' --output /etc/mrtg.cfg [email protected]

Y la página que consultaremos con el navegador con:

# indexmaker /etc/mrtg.cfg --columns=1 --output=/var/www/mrtg/index.html

Este punto es importante, ya que si agregáramos otro módulo de estadísticas en /etc/mrtg.cfg, hasta que no volvamos a generar el archivo índice, no nos saldrá la gráfica generada en el index.html.

Finalmente deberemos ejecutar la aplicación mrtg tres veces consecutivas a mano (si, es un poco rarito).

# mrtg

Puede que os salga un error como este:

-----------------------------------------------------------------------
ERROR: Mrtg will most likely not work properly when the environment
variable LANG is set to UTF-8. Please run mrtg in an environment
where this is not the case. Try the following command to start:

env LANG=C /usr/bin/mrtg
-----------------------------------------------------------------------

En cuyo caso con ejecutar lo que nos dice la alerta ya lo tenemos:

# env LANG=C /usr/bin/mrtg

Para que que tengamos el resultado de las estadisticas le añadimos una tarea cron:

Para que cada 5 minutos se llama al mrtg, añadir esta linea al crontab

# crontab -e

0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg.cfg

Y reiniciamos cron:

# /etc/init.d/cron restart

Adjunto un fichero mrtg.cfg de ejemplo.

Gracias Carlos, Fran.

Fuentes:
http://linux.aldarias.es/mrtg.html
http://www.debian-administration.org/articles/366

20 Comments

Leave a Reply

Your email address will not be published.