Friday, April 17, 2009

Como monitoreo un dispositivo con MRTG?

En el post anterior explicamos como monitorear el wireless asi como el ethernet de nuestra maquina. Sin embargo, puede suceder que por alguna loca razon queramos monitorear nuestra impresora , o nuestro switch, o nuestro router.

Para hacerlo, hay que llevar acabo algunos pasos un poco diferentes a los que ya antes hicimos.
Partiremos ahora, que ya se tiene instalado MRTG,SNMP y APACHE2.
Dentro del archivo de snmpd.conf se debe agregar lo siguiente:

rocommunity public 192.168.3.0/24
rwcommunity private 192.168.3.100

donde 192.168.3.0/24 es el rango de IP que su maquina puede tener, y 192.168.3.100 es la IP que tiene el dispositivo que quieren monitorear.

Dentro de Ubuntu, MRTG automaticamente crea /var/www/mrtg. En otras distribuciones, se crea en una area diferente, asi que se debe cambiar la variable 'WorkDir:' al escenario en donde MRTG este instalado.

En este caso, para evitar confusiones, creare un directorio /etc/mrtg en vez de mover el archivo mrtg.cfg a /etc/.

mkdir /etc/mrtg

mv /etc/mrtg.cfg /etc/mrtg/

Ahora corremos el comando de cfgmaker para tener las cosas listas y corriendo:

cfgmaker --global 'WorkDir:/var/www/mrtg' --global 'Options[_]: bits,growright' --output /etc/mrtg/mrtg.cfg public@

Tenemos tambien que ver que las siguientes lineas se hayan agregado correctamente al archivo de /etc/mrtg/mrtg.cfg Si no estan alli, entocnes se deben agregar:

EnableIPv6: no
RunAsDaemon: Yes
Interval: 5
Logdir: /var/log/mrtg

Ahora corre:

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

Lo cual creara un index.html , para que se pueda ver la salida.

Despues corro este comando, para preparar una variable de entorno. (similar al comando mrtg que corriamos el post pasado.)

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

Finalmente abra : http://localhost/mrtg/index.html

Deberias de poder ver una grafiquita. Espera un rato para verla en accion!





Sunday, April 12, 2009

Un rápidin para tener SNMP y MRTG

El objetivo de este post, es que el lector logre tener gráficas del tráfico de la interfaz principal que tenga su servidor, su estación de trabajo ó inclusive su firewall de un modo eficiente y rápido.
Se explicará aquí, cómo se puede monitorear el tráfico de una interfaz y con ello examinar el uso de la red que la computadora tiene.

El sistema es bastante sencillo y consiste de las siguientes partes:

1. El servidor SNMP: el servidor SNMP permite que mediante el protocolo SNMP se tenga acceso a las estadísticas de la interfaz de red así como otros datos.

2. El MRTG: Es un script escrito en Perl, el cual jala información del servidor SNMP y acumula información acerca del uso de la red. Corre periodicamente y genera gráficas en intervalos definidos. Al parecer es Cron quien lo corre.
( Cron según Wikipedía,se podría definir como el "equivalente" a Tareas Programadas de Windows.)

Es importante notar, que se puede colecionar y graficar lo que se desee con estas herramientas- No están limitadas a estadísticas de red. Además se pueden manejar muchos aspectos del servidor que se tenga gracias a SNMP.

Ahora bien, debido a que MRTG está escrito en Perl, para poderlo usar es necesario tener instalado Apache con soporte para Perl.
Para instalar Apache en Debian, desde consola se puede poner el siguiente comando:
#apt-get install apache2

Después de instalar se deberá reiniciar Apache con el siguiente comando:

#/etc/init.d/apache2 restart

Se puede probar que todo haya salido bien, al escribir en un navegador:

http://localhost/

Y obtener un letrerito que diciendo :

It works!

Una vez que ya se tiene apache instalado, se verá como llevar acabo:

La configuración del servidor SNMP

Lo primero que se debe hacer, es obtener un servidor SNMP que brinde cuando se le pida las estadísticas de la interfaz de red:

# apt-get install snmpd

Posteriormente se deberá editar la configuración, ya que por default no permite que se tenga ninguna conexión. Para editarlo ejecute el siguiente comando:

sudo nano /etc/snmp/snmpd.conf


Se deberá comentar lo siguiente con el prefijo de #:

com2sec paranoid default public

Y se deberá insertar lo siguiente justo abajo de lo que se acaba de comentar:

com2sec readonly default public

Eso hace que cualquiera que tenga acceso al servidor SNMP tenga acceso de sólo lectura a la comunidad pública. Esta comunidad es la que contiene las estadísticas de la interfaz.

Para aplicar los cambios, resetee snmpd:

/etc/init.d/snmpd restart

Instalación de MRTG

Para instalar MRTG, se debe ejecutar el siguiente comando:

# apt-get install mrtg

Se puede generar manualmente ó automáticamente el archivo de configuración para mrtg. Yo recomiendo hacerlo automátcamente ya que es mucho más fácil. Escríbase el siguiente comando:

# cfgmaker --global 'WorkDir: /var/www/mrtg' \ --output /etc/mrtg.cfg public@127.0.0.1

Esto generará el archivo de congiguración. Después se debe hacer un archivo índice que contenga todas las interfaces:

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

Posteriormente se deberá ejecutar mrtg:

# mrtg
Esto es ejecutado cada 5 minutos por cron, ese trabajito de cron fue adicionado por dpkg (dpkg es la base del sistema de gestión de paquetes de Debian GNU) así que no se tiene que configurar.

Finalmente es tiempo de inspeccionar sus resultados!
Al principio no verá gráficas rasonablemente buenas, pero dele tiempo. Relax Baby!