InicioInfoMulti Router Traffic Grapher (MRTG)

Multi Router Traffic Grapher (MRTG)

InfoFecha desconocida
HowTo Multi Router Traffic Grapher en Ubuntu

Multi Router Traffic Grapher (MRTG) permite obtener información sobre el trabajo de un router en cualquier momento. Monitoriza los dispositivos SNMP y crea los gráficos con la información de cada interfaz. Pero los routers son solo el principio, MRTG puede crear gráficos de muchas cosas, está escrito en Perl y funciona tanto el Unix/Linux como en Windows y además tiene licencia Gnu GPL.

Instalación vía apt-Get

Necesitamos un servidor web funcionando, por ejemplo Apache. Además de las librerías gráficas para crear los gráficos. Estás librerías se llaman “GD”. En todo caso, si dispones ya de un servidor con Apache – Php – Mysql no deberás preocuparte porque la configuración básica ya te cubre esta parte de requisitos, pero mas vale decirlo por si las moscas.

Ahora toca instalar MRTG y SNMP. Están disponibles en los repositorios de Ubuntu, para obtenerlos debemos ejecutar la siguiente orden:

$sudo apt-get install mrtg snmpd

Con esto se creará un directorio en el DocumentRoot por defecto de Apache, en concreto aquí: /var/www/mrtg. Si este no es tu DocumentRoot no te preocupes, ahora configuraremos estos parámetros y podrás mover la carpeta donde desees publicar los gráficos.

Un último paso antes de finalizar la instalación es la modificación del archivo /etc/rc.local para que se funcione correctamente mrtg.

Para ello hacemos lo siguiente:

# vi /etc/rc.local

Añadimos la siguiente línea al fichero : /bin/mkdir /var/lock/mrtg ( notad que el archivo debe terminar con “exit 0” )

Configuración

Primero configuraremos el snmp que es de donde mrtg obtendrá los datos sobre el trafico de la red. Para ello editamos el archivo /etc/snmp/snmpd.conf

$sudo vim /etc/snmp/snmpd.conf

Buscamos las siguientes lineas y las dejamos así:

# sec.name source community
# com2sec paranoid default public
com2sec readonly default public
#com2sec readwrite default private

Guardamos los cambios y reiniciamos el servicio snmpd.

$sudo /etc/init.d/snmpd/ restart

Ahora ya podemos crear la primera configuración de mrtg con el siguiente comando:

$sudo cfgmaker [email protected] >> /etc/mrtg.cfg

Esto nos va ha crear una configuración automática y básica de mrtg. Pero vamos a editar el fichero para cambiar cosas que no nos interesan.

$ sudo vim /etc/mrtg.cfg

En este archivo justo después de ejecutar el cfgmaker aparecen las configuraciones de todas las interfaces de red conectadas, algunas están comentadas ( # ) porqué son del sistema y no dan información relevante, para ello vamos a “limpiar” el fichero y lo vamos a dejar a nuestro gusto. Un ejemplo podría ser el siguiente:

# Created by
# /usr/bin/cfgmaker [email protected]
### Global Config Options

# for UNIX
# WorkDir: /home/http/mrtg

# for Debian
WorkDir: /var/www/web/stuff/server-status

# or for NT
# WorkDir: c:\mrtgdata

### Global Defaults

# to get bits instead of bytes and graphs growing to the right

# Options[_]: growright, bits

EnableIPv6: no

LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt, /usr/share/snmp/mibs/TCP_MIB.txt, /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt


### INFORMACION TRAFICO ###

Target[arpanet.net]: 2:[email protected]:

SetEnv[arpanet.net]: MRTG_INT_IP="192.168.0.5" MRTG_INT_DESCR="eth0"

PageTop[arpanet.net]: <h1>Uso de Red</h1>

MaxBytes[arpanet.net]: 1250000

Options[arpanet.net]: growright

Title[arpanet.net]: Uso de Red


Explicación del archivo /etc/mrtg.cfg:

WorkDir: Es la ruta donde se publicarán los gráficos, debe estar accesible por apache. Debéis indicar donde queréis publicar el index.html para mostrarlos por la web.

LoadMiBs: Necesario mas adelante para cargar mas datos sobre el sistema. No necesario para el ejemplo.

Cada gráfico mostrado esta configurado por un “Target[nombre] : obtención de datos”. Después del “Target” hay un 2:public:@192.168.0.5, esto se traduce en lo siguiente:

<interfaz de red>:public@<ip interfaz>. En mi caso la interfaz es la #2

Las siguientes variables son para configurar la presentación, como la leyenda y el titulo que se mostrará.

Es importante que la opción PageTop tenga el valor entre los <h1> </h1>.

Ahora ya tenemos una primera configuración, vamos a crear los archivos html para publicar nuestro primer gráfico.

$sudo indexmaker /etc/mrtg.cfg > /var/www/web/stuff/server-status/index.html

El comando indexmaker hay que ejecutarlo cada vez que realizamos un cambio en la configuración de mrtg.cfg.

Ahora ya podemos visitar nuestra web :

http://direccionserver/stuff/server-status.

Los gráficos no se actualizan en tiempo real, cuando hemos instalado el mrtg también se ha creado un cron que se ejecuta cada 5 minutos y obtiene los datos, por eso los gráficos no aparecen al instante de ejecutar el comando indexmaker. El cron debe tener una pinta similar a esto:

$ sudo cat /etc/cron.d/mrtg

0-55/5 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/mrtg.cfg >> /var/log/mrtg/mrtg.log 2>&1; fi

Si no os aparece el gráfico, podéis consultar el log de mrtg en /var/log/mrtg/mrtg.log.

Añadir mas gráficos

Para añadir mas información sobre el sistema solo debeis incluir las siguientes lineas en el archivo /etc/mrtg.cfg y volver a ejecutar el comando indexmaker:

### TCP ABIERTOS ###

Target[arpanet.tcp]: .1.3.6.1.2.1.6.9.0&.1.3.6.1.2.1.6.9.0:[email protected]

RouterUptime[arpanet.tcp]: [email protected]

Options[arpanet.tcp]: nopercent,growright,gauge

Title[arpanet.tcp]: Conexiones TCP abiertas

PageTop[arpanet.tcp]: <h1>Conexiones TCP abiertas</h1>

MaxBytes[arpanet.tcp]: 1000000

YLegend[arpanet.tcp]: Conexiones

ShortLegend[arpanet.tcp]: Conexiones

LegendI[arpanet.tcp]: Conexiones:

LegendO[arpanet.tcp]:

Legend1[arpanet.tcp]: Conexiones TCP abiertas

### MEM LIBRE INFO ###

Target[arpanet.mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:[email protected]

RouterUptime[arpanet.mem]: [email protected]

PageTop[arpanet.mem]: <h1>RAM Libre</h1>

Options[arpanet.mem]: nopercent,growright,gauge

Title[arpanet.mem]: RAM Libre

MaxBytes[arpanet.mem]: 1000000

kMG[arpanet.mem]: k,M,G,T,P,X

YLegend[arpanet.mem]: bytes

ShortLegend[arpanet.mem]: bytes

LegendI[arpanet.mem]: RAM libre:

LegendO[arpanet.mem]:

Legend1[arpanet.mem]: RAM libre, no incluye la swap, en bytes


### SWAP INFO ###

Target[arpanet.swap]: memAvailSwap.0&memAvailSwap.0:[email protected]

RouterUptime[arpanet.swap]: [email protected]

PageTop[arpanet.swap]: <h1>Swap Libre</h1>

Options[arpanet.swap]: nopercent,growright,gauge

Title[arpanet.swap]: Swap Libre

MaxBytes[arpanet.swap]: 1000000

kMG[arpanet.swap]: k,M,G,T,P,X

YLegend[arpanet.swap]: bytes

ShortLegend[arpanet.swap]: bytes

LegendI[arpanet.swap]: Swap Libre:

LegendO[arpanet.swap]:

Legend1[arpanet.swap]: Swap libre, en bytes


### CPU ###

Target[arpanet.cpu]: ssCpuRawUser.0&ssCpuRawUser.0:[email protected] + ssCpuRawSystem.0&ssCpuRawSystem.0:[email protected] + ssCpuRawNice.0&ssCpuRawNice.0:[email protected]

RouterUptime[arpanet.cpu]: [email protected]

MaxBytes[arpanet.cpu]: 100

Title[arpanet.cpu]: Carga de CPU

PageTop[arpanet.cpu]: <h1>Carga de CPU</h1>

Unscaled[arpanet.cpu]: ymwd

ShortLegend[arpanet.cpu]: %

YLegend[arpanet.cpu]: Uso de CPU

Legend1[arpanet.cpu]: CPU Activa en % (Carga)

Legend2[arpanet.cpu]:

Legend3[arpanet.cpu]:

Legend4[arpanet.cpu]:

LegendI[arpanet.cpu]: Uso

LegendO[arpanet.cpu]:

Options[arpanet.cpu]: growright,nopercent


### USUARIOS ###

Target[arpanet.users]: `who | wc -l | awk '{OFMT="%d"; print $1; print "0"}'`

RouterUptime[arpanet.users]: [email protected]

Title[arpanet.users]: Usuarios

PageTop[arpanet.users]: <h1>Usuarios</h1>

MaxBytes[arpanet.users]: 10

Options[arpanet.users]: growright,nopercent,gauge

LegendI[arpanet.users]: Usuarios:

LegendO[arpanet.users]:

Ylegend[arpanet.users]: Usuarios

ShortLegend[arpanet.users]: Usuario(s)

Legend1[arpanet.users]: Usuarios en el sistema


Recordar de cambiar el public@<ip del ordenador>

Para monitorizar el estado de uso de los discos duros y particiones, existen varias opciones, yo lo tengo usando un script que me da la información y luego le indico en la configuración de mrtg de donde obtener los datos.

Crear el siguiente script en /root/ y llamarlo “df-mrtg”

$sudo vim /root/df-mrtg

#!/bin/sh

PATH=/bin:/usr/bin

part=$1

# The external mrtg probe returns up to 4 lines of output:

# 1. Line: current state of the 'incoming bytes counter'

# 2. Line: current state of the 'outgoing bytes counter'

# 3. Line: string, telling the uptime of the target.

# 4. Line: telling the name of the target.


# df=`df --block-size=1 $part | tail -1` # mrtg can't cope with bignums

df=`df $part | tail -1`

# we'll list the available blocks as "incoming" as that's the solid green bar


echo $df | awk '{print $4}' # available

echo $df | awk '{print $3}' # used

uptime | cut -d, -f 1 | awk '{print $3, $4}'

echo $df | awk '{print $1}'


Guardar y probarlo ejecutando:

$ sudo ./root/df-mrtg /

root@ARPANET:~/scripts# ./df-mrtg /

2407452

1149728

2 days

/dev/hda1

Ahora podemos insertar lo siguiente en /etc/mrtg.cfg para que muestre el estado de la partición /. Se puede consultar la partición que queramos pasando por parámetro la partición, /home, /var, etc.

### ESTADO PARTICION / ###

Target[arpanet.disk1]: `/root/df-mrtg /`

RouterUptime[arpanet.disk1]: [email protected]

Options[arpanet.disk1]: nopercent,growright,integer,gauge

Title[arpanet.disk1]: Estado del disco /

PageTop[arpanet.disk1]: <h1>Estado del disco /</h1>

MaxBytes[arpanet.disk1]: 125000000

kMG[arpanet.disk1]: k,M,G,T,P,X

YLegend[arpanet.disk1]: 1k bloques

ShortLegend[arpanet.disk1]:  1k bloques

LegendI[arpanet.disk1]: disponible 

LegendO[arpanet.disk1]: usado 


Recordar de cambiar el public@<ip del ordenador>


Ahora ya podemos disfrutar de las estadísticas de nuestro servidor con MRTG. Otra cosa mas, cuando tengamos todo funcionando y configurado, podemos editar el archivo index.html para cambiar su aspecto y hacerlo mas vistoso, eso ya depende de cada uno.

para ver los graficos..


Referencias:

http://oss.oetiker.ch/mrtg/index.en.html

http://www.debianhelp.co.uk/mrtg.htm

http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch23_:_Advanced_MRTG_for_Linux#Introduction

http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch22_:_Monitoring_Server_Performance#Introduction

http://net-snmp.sourceforge.net/tutorial/tutorial-5/mrtg/index.html




autor: David Corto Camacho
web:
Datos archivados del Taringa! original
0puntos
243visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
4visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

p
polaww🇦🇷
Usuario
Puntos0
Posts11
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.