Está en la página 1de 7

Búsqueda Lista de Miembros Calendario Ayuda Rules

¡Hola, Invitado! (Iniciar Sesión — Regístrate) Hora: 04-05-2009, 11:49 PM

Anuncios Google MRTG Servidor Fax En Linea MRTG for NT MRTG How To
Buscar
PreguntasLinux / PL.O / Noticias, Articulos & Tutoriales / Articulos & Tutoriales / [howto]Instalacion
de MRTG (monitoreo) Debian

Calificación:

[howto]Instalacion de MRTG (monitoreo) Debian Modo Compacto | Modo Extendido

09-05-2007, 02:15 PM Mensaje: #1

Whiskola
Flaming Cliff s Mensajes: 642
Registro en: May 2005
Reputación: 8

[howto]Instalacion de MRTG (monitoreo) Debian

Vamos a poner a funcionar en GNU/Linux Debian la utilidad MRTG. MRTG sirve, entre otras muchas cosas,
para hacer gráficas de las estadísticas de tráfico de red que soporta un servidor de Internet. Es decir, que
nos servirá para ver qué niveles de tráfico soporta el servidor, tanto el cómputo general de ancho de banda
(de subida y de bajada) como el desglose en los diferentes servicios (http, smtp, nntp, etc...).
Necesitaremos instalar los paquetes: mrtg, mrtg-contrib y mrtgutils. Para ello utilizaremos el sistema de
instalación de paquetes que traiga nuestra distribución de GNU/Linux.
Como usuario root haremos:

Código:
mimaquina:~# apt‐get install mrtg mrtg‐contrib mrtgutils
Una vez descargado e instalado podemos listar en Debian los paquetes:

Código:
mimaquina:~# dpkg ‐l | grep mrtg 
 
  ii   mrtg          2.9.17‐4  Multi Router Traffic Grapher 
  ii   mrtg‐contrib  2.9.17‐4  Multi Router Traffic Grapher (contributed fi 
  ii   mrtgutils     0.4       Utilities to generate statistics for mrtg
Primero de todo editaremos el fichero de configuración de MRTG situado en /etc/mrtg.cfg. Hemos de dejar
tan solo las líneas siguientes (algunas tendremos que escribirlas enteras):

Código:
WorkDir: /var/www/mrtg 
Language: spanish 
WriteExpires: Yes 
Options[_]: growright
Analicemos un poco mejor estas 4 líneas para adecuarlas a nuestras necesidades.

WorkDir
Aquí colocaremos el directorio dónde queremos que se generen los documentos web e imágenes con las
estadísticas de tráfico. Por tanto se suele poner /var/www/mrtg, pero podremos poner la ubicación que
queramos (recordando este hecho en las referencias sucesivas de este documento).

Language

Evidentemente esto es el idioma de nuestra elección. Tenemos la lista de idiomas en: man mrtg-reference.

WriteExpires

Si ponemos Yes, haremos que mrtg cree un documento con extensión .meta para cada archivo que genere.
Allí se indica al servidor web (en mi caso Apache) la fecha de expiración de cada documento (o página web).
Es decir, mrtg suele marcar los archivos de las estadísticas con un .meta para que expiren al tiempo que
hayamos fijado y el cliente tenga que actualizar automáticamente la web. Así cada 5 minutos, por ejemplo,
se actualizan las páginas de mrtg que estamos viendo en el navegador web.

Options[_]: growright

Ponemos la opción growright para que los gráficos aparezcan por la derecha y se vayan corriendo hacia la
izquierda. Si no ponemos este comando lo hará justo al revés. Aquí ya entran los gustos de cada uno, yo
prefiero tenerlo así :-)

El siguiente paso es generar estadísticas del tráfico total que pasa por alguna de nuestras interfaces de red
(repetiremos este proceso para todas las que tengamos o queramos poner). Por ejemplo, yo tengo conectada
eth1 a Internet, de modo que será la que monitorice. Para ello pondré al final del fichero /etc/mrtg.cfg lo
siguiente:

Código:
Target[eth1]: `/usr/bin/mrtg‐ip‐acct eth1` 
MaxBytes1[eth1]: 32000 
MaxBytes2[eth1]: 16000 
Title[eth1]: Análisis del tráfico total en eth1 
YLegend[eth1]: Tráfico 
PageTop[eth1]: <H1>Análisis del tráfico total de Internet<\H1>
Esto nos generará en el sitio dónde le hayamos indicado en el punto anterior una página web con estas
estadísticas de nombre base: eth1.html (es decir, lo que hayamos puesto entre los corchetes).

Resultan evidentes los campos que estamos indicando, pero comentémoslos un poco (más detalles en las
páginas del manual):

Target

Aquí ponemos el path a un ejecutable o script que saca las estadísticas que queremos acumular. En este caso
se trata de un programa que viene con la instalación que hemos hecho de mrtg. Si ejecutáramos este
programa nos saldrían datos del tráfico por la interface que le indiquemos.

MaxBytes

Aquí le indicaremos el número máximo de bytes que puede recoger como válido. Ahora estamos
monitorizando una interface de red de 10Mbps, de modo que lo deberíamos limitar a 1250000, sin embargo
como (en mi caso) está conectada a un Router ADSL 256/128 pues lo pondré limitado a 32000. Pero como
vamos a monitorizar dos variables, tráfico de entrada y tráfico de salida pues hemos de indicarle los
correspondientes límites en cada caso con las variables MaxBytes1 y MaxBytes2. Al ser un ADSL 256/128
pues el tráfico de salida lo limitaré a 16000.
NOTA: Suele ser habitual poner el mismo límite para ambos en una sola orden: "MaxBytes[loquesea]:
12345"
Title

Evidentemente aquí irá el título de la página web que estamos generando.

YLegend

Esto es lo que queremos que aparezca en la leyenda vertical de los datos. Aquí estamos monitorizando en la
vertical el volumen de tráfico, por eso ponemos lo que ponemos.

PageTop

Aquí podemos introducir algo de código HTML para la cabecera de la página. En este ejemplo hemos puesto
un título en una cabecera <H1>

A continuación tendremos que ejecutar mrtg para iniciarlo. Como root haremos:

Código:
mimaquina:~# mrtg /etc/mrtg.cfg
La primera vez que hagamos esto es posible que salgan algunos Warnings. NO hay que preocuparse.
Volveremos entonces a ejecutar el mismo comando hasta que ya no salga ningún Warning

Ahora ya podemos comprobar que se nos ha generado la página web en el sitio que indicamos. Como hemos
puesto de nombre eth1 pues el documento principal será eth1.html.

A partir de ahora el mrtg se ejecutará cada 5 minutos. Podemos comprobar que se ha metido en el cron
mirando en /etc/cron.d e incluso modificar el tiempo de ejecución:

Código:
mimaquina:~# ls /etc/cron.d/mrtg 
  ‐rw‐r‐‐r‐‐   1 root    root    137 feb 10  2002 mrtg 
 
mimaquina:~# cat /etc/cron.d/mrtg 
0‐55/5 * * * * root if [ ‐x /usr/bin/mrtg ] && [ ‐r /etc/mrtg.cfg ]; 
then /usr/bin/mrtg /etc/mrtg.cfg >> /var/log/mrtg/mrtg.log 2>&1; fi
Y hasta aquí tenemos una gráfica con el tráfico saliente y entrante que recibe nuestro servidor conectado a
Internet. Si tenemos más interfaces de red que controlar haremos lo mismo para cada una de ellas.

Tráfico HTTP o web.


Supongamos que tenemos un servidor web y queremos saber el ancho de banda que está consumiendo a lo
largo de los días.

Bien, tendremos que hacer algo muy parecido al caso anterior, pero ahora necesitaremos un nuevo script o
programa que nos muestre las estadísticas de tráfico por el puerto 80, que es el de http o web. Aquí entra el
firewall de Linux, IPtables.
En mi caso empleo el script para IPtables monmotha. Este script o firewall es muy sencillo de utilizar y
configurar. Hemos de modificarlo para colocar nuestra configuración, permitir el tráfico en los puertos que
nos interesen, etc... Por tanto voy a colocar mis reglas de contabilidad de IPTables directamente en este
script.

Comencemos. Lo primero es editar el script monmotha e ir a la sección dónde pone:

Código:
# Create new chains 
# Output to /dev/null in case they don't exist from a previous invocation 
echo ‐n "Creating chains: " 
for chain in ${FILTER_CHAINS} ; do 
       ${IPTABLES} ‐t filter ‐F ${chain} > /dev/null 2>&1 
       ${IPTABLES} ‐t filter ‐X ${chain} > /dev/null 2>&1 
       ${IPTABLES} ‐t filter ‐N ${chain} 
       echo ‐n "${chain} " 
done 
echo
Y justo debajo de este último echo pondremos las siguientes líneas de contabilidad referentes al tráfico por el
puerto 80 o HTTP:

Código:
${IPTABLES} ‐N WebIn 
${IPTABLES} ‐N WebOut 
${IPTABLES} ‐A WebIn ‐j INETIN 
${IPTABLES} ‐A WebOut ‐j INETOUT 
${IPTABLES} ‐A INPUT ‐p tcp ‐‐dport 80 ‐j WebIn 
${IPTABLES} ‐A OUTPUT ‐p tcp ‐‐sport 80 ‐j WebOut
Ahora es el momento de volver a "lanzar" el firewall (o sea, ejecutar el script monmotha).

Si no tenemos monmotha podemos insertar a mano las reglas en IPtables. La idea consiste en que hemos de
crear primero un par de cadenas de contabilidad, una para el tráfico http entrante y otra para el saliente. Por
ejemplo:

Código:
mimaquina:~# /sbin/iptables ‐N WebIn 
mimaquina:~# /sbin/iptables ‐N WebOut
Ahora tendremos que enviarla a las cadenas de tráfico de entrada y tráfico de salida. En el caso del firewall
monmotha se llaman INETIN y INETOUT, pero pueden tener el nombre que le hayamos designado nosotros.
De modo que añadiremos las reglas:

Código:
mimaquina:~# /sbin/iptables ‐A WebIn ‐j INETIN 
mimaquina:~# /sbin/iptables ‐A WebOut ‐j INETOUT
El último paso para las reglas de contabilidad de IPtables de modo manual (sin monmotha) sería unir el
tráfico permitido (cadenas INPUT y OUTPUT en el caso del script monmotha) por el puerto que corresponda
(80 en este caso) a las cadenas de contabilidad que hemos creado (WebIN y WebOut). Por tanto sería cosa
de, sustituyendo los nombres de cadenas que correspondan, hacer:

Código:
mimaquina:~# /sbin/iptables ‐A INPUT ‐p tcp ‐‐dport 80 ‐j WebIn 
mimaquina:~# /sbin/iptables ‐A OUTPUT ‐p tcp ‐‐sport 80 ‐j WebOut
El siguiente paso para monitorizar el tráfico HTTP es hacernos un script que pregunte a IPtables por las
estadísticas de tráfico por el puerto 80 (gracias a las reglas que acabamos de poner). Además este script
deberá producir una salida "al gusto" de mrtg. Lo colocaremos dónde queramos, habitualmente se coloca
dentro del directorio /root/bin o bien en /usr/local/bin, como prefiramos.

Llamaremos a este script portstat.web y tendrá el siguiente contenido:

Código:
#!/bin/sh 
statname="Servidor Web" 
uptime=`uptime | awk '{print $3}'`" dias, "`uptime | awk '{print $5}'`" horas" 
statin=`/sbin/iptables ‐L ‐n ‐x ‐v | /bin/grep ‐A 12 INPUT | /bin/grep WebIn | /usr/bin/awk '{print 
$2}'` 
statout=`/sbin/iptables ‐L ‐n ‐x ‐v | /bin/grep ‐A 12 OUTPUT | /bin/grep WebOut | /usr/bin/awk 
'{print $2}'` 
echo $statin 
echo $statout 
echo $uptime 
echo $statname
Una vez creado este fichero le daremos permisos de ejecución mediante el comando "chmod 744
portstat.web".

Por último editaremos el fichero /etc/mrtg.cfg para que se generen las estadísticas de tráfico web. Allí
tendremos que poner, al final de todo, lo siguiente:

Código:
Target[web]: `/root/bin/portstat.web` 
Title[web]: Tráfico Web 
PageTop[web]: <h1>Tráfico Web</h1> 
MaxBytes[web]: 30720 
YLegend[web]: Bytes/s 
ShortLegend[web]: B/s
Dónde las opciones que hemos puesto ya las describimos antes o se encuentran detalladas en "man mrtg-
reference".

Ahora se nos habrá creado automáticamente toda la serie de documentos HTML con las estadísticas de tráfico
por el puerto HTTP u 80. Además se habrán colocado en el directorio dónde indicamos que se colocasen las
estadísticas, en nuestro caso en /var/www/mrtg. El documento principal con las estadísticas de tráfico HTTP
se llamará web.html (así lo hemos indicado en el /etc/mrtg.cfg.

Tráfico SMTP o de correo.


Ahora repetiremos el proceso anterior para monitorizar el tráfico SMTP o de correo electrónico. En este caso
el puerto implicado es el 25.

Primero colocamos las reglas de contabilidad descritas en el apartado anterior. Recordemos que hemos de
colocarlas inmediatamente debajo de las que colocamos para el caso HTTP de antes, en el script de firewall
Monmotha.

Código:
${IPTABLES} ‐N SmtpIn 
${IPTABLES} ‐N SmtpOut 
${IPTABLES} ‐A SmtpIn ‐j INETIN 
${IPTABLES} ‐A SmtpOut ‐j INETOUT 
${IPTABLES} ‐A INPUT ‐p tcp ‐‐dport 25 ‐j SmtpIn 
${IPTABLES} ‐A OUTPUT ‐p tcp ‐‐sport 25 ‐j SmtpOut
Si no tuviésemos monmotha procederíamos del modo descrito en el caso de Tráfico HTTP, dónde se explica
cómo introducir manualmente las reglas IPtables.

Relanzamos el firewall y, a continuación, creamos el script que leerá los datos de tráfico por el puerto 25. Su
nombre es portstat.smtp y contiene lo siguiente:

Código:
#!/bin/sh 
statname="Servidor Smtp" 
uptime=`uptime | awk '{print $3}'`" dias, "`uptime | awk '{print $5}'`" horas" 
statin=`/sbin/iptables ‐L ‐n ‐x ‐v | /bin/grep ‐A 12 INPUT | /bin/grep SmtpIn | /usr/bin/awk 
'{print $2}'` 
statout=`/sbin/iptables ‐L ‐n ‐x ‐v | /bin/grep ‐A 12 OUTPUT | /bin/grep SmtpOut | /usr/bin/awk 
'{print $2}'` 
echo $statin 
echo $statout 
echo $uptime 
echo $statname
Y ya sólo queda modificar el /etc/mrtg.cfg poniendo lo siguiente al final de todo:

Código:
Target[smtp]: `/root/bin/portstat.web` 
Title[smtp]: Tráfico SMTP 
PageTop[smtp]: <h1>Tráfico SMTP</h1> 
MaxBytes[smtp]: 30720 
YLegend[smtp]: Bytes/s 
ShortLegend[smtp]: B/s
De nuevo, tras todo esto, tendremos estadísticas de tráfico SMTP en el sitio que le indicamos, centradas en el
archivo HTML: smtp.html.

Uniendo las gráficas de todos los tráficos.

Hasta ahora hemos ido generando en nuestro directorio web (en este manual lo hemos colocado
en /var/www/mrtg/) una serie de páginas web con estadísticas de tráfico total, tráfico web, smtp, etc...

El siguiente paso natural es generar un index.html que enlace a todas estas estadísticas.

Lo que hemos de hacer es situarnos en el directorio correspondiente, /var/www/mrtg/, dónde están todas las
gráficas y ejecutar lo siguiente:

Código:
mimaquina:~/var/www/mrtg# indexmaker /etc/mrtg.cfg > index.html

Si miramos con nuestro navegador esta página index.html que se ha generado veremos el conjunto de
nuestras estadísticas con enlace al detalle de cada una de ellas.

Puede ser que no nos guste cómo ha quedado el index.html, en este caso podemos simplemente editar este
fichero y dejarlo a nuestro gusto. Para eso se requieren algunos conocimientos de lenguaje HTML.

Salu2!

Administrador preguntaslinux.org
Moderador linux.org.ar

PRTG - Freeware
Windows software. Easy to use. Monitor your router's bandwidth.
www.Paessler.com/PRTG
12-05-2007, 01:11 PM Mensaje: #2

p_eter
Chaos Manager Mensajes: 4.906
Registro en: Jun 2005
Reputación: 16

RE: Instalacion de MRTG (monitoreo) Debian

Buenísmo, Whiskola!!

« Tema Previo | Tema Siguiente »

Posibles Temas Similares...


Tema: Autor Respuestas: Vistas: Último Mensaje

03-03-2009 09:06 AM
[howto] Grub en FreeBSD UFS2 p_eter 0 170
Último Mensaje: p_eter

[howto] Boot FreeBSD, Linux y Windows XP con GAG, 03-03-2009 09:00 AM


p_eter 0 79
GRUB, LILO y BootEasy Último Mensaje: p_eter

[howto]Modem HUAWEI E166 3G de CLARO en Debian 19-02-2009 02:02 PM


p_eter 0 349
Lenny Último Mensaje: p_eter

[howto]Modem Sony Ericsson MD300 3G de Personal en 19-02-2009 01:52 PM


p_eter 0 108
Debian Lenny Último Mensaje: p_eter

Ver la Versión para Impresión ---- Articulos & Tutoriales Ir


Salto de Foro:
Envíar Tema a un Amigo
Suscribirse a este Tema

Fotocopiadora
Lote De Computacion Apple Ipod Shuffle 4gb
Samsung Nueva, F...
A Revisar $3.50 Nueva G... U$S118.97
$1,250.00

Contáctanos | Portal de Noticias | Volver Arriba | Volver al Contenido | Modo (Archivo) Español (Internacional) Ir
Simple | Sindicación RSS

Powered By MyBB, © 2002-2009 MyBB Group.

También podría gustarte