Este artículo apareció por primera vez
en Linux Journal.
Lo hemos reimpreso y traducido con permiso del autor
Introducci�n
En el mundo actual, en el que la inform�tica gira en torno al
concepto de red, el trabajo de los administradores de sistemas
es muy complejo. Su misi�n consiste en mantener en funcionamiento
recursos tales como encaminadores (routers), concentradores
(hubs), servidores, as� como cada dispositivo cr�tico que
conforma la red.
Hay gran cantidad de motivos por los cuales un administrador
necesita monitorizar entre otros : la
utilizaci�n del ancho de banda, el estado de funcionamiento de
los enlaces, la detecci�n de cuellos de botella, detectar y
solventar problemas con el cableado, administrar la informaci�n
de encaminamiento entre m�quinas, etc. La monitorizaci�n de la
red es tambi�n un buen punto desde el que comenzar el estudio de
los problemas de seguridad.
En muchos casos, la red de una organizaci�n est� enlazada
mediante costosos enlaces a redes de �rea extensa (WAN) o con la
Internet, y cuyos costes dependen del volumen de tr�fico. Es muy
importante mantener un registro estad�stico del tr�fico que
circula por estos enlaces. �sta situaci�n es bastante com�n en
Europa, donde los enlaces X.25 son todav�a de uso corriente. La
tarificaci�n de este tipo de l�neas se realiza en funci�n del
n�mero de paquetes enviados y recibidos.
Otros tipos de enlaces, como los punto a punto (Frame relay),
son de tarifa plana. En �stos la compa��a telef�nica ha de
garantizar un ancho de banda, el cual es importante
monitorizar.
En la �ltima parte de este art�culo, se presenta una herramienta
que permite hacer un seguimiento gr�fico del tr�fico en los
encaminadores (router). �sta es f�cilmente configurable para
poder monitorizar otras clases de informaci�n de la red.
� Qu� es SNMP ?
La respuesta a todas las necesidades antes expuestas, es el
protocolo llamado Simple Network Management Protocol (SNMP).
Dise�ado en los a�os 80, su principal objetivo fue el integrar la
gesti�n de diferentes tipos de redes mediante un dise�o sencillo y
que produjera poca sobrecarga en la red.
SNMP opera en el nivel de aplicaci�n, utilizando el protocolo de
transporte TCP/IP, por lo que ignora los aspectos espec�ficos
del hardware sobre el que funciona. La gesti�n se lleva a cabo
al nivel de IP, por lo que se pueden controlar dispositivos que
est�n conectados en cualquier red accesible desde la Internet, y
no �nicamente aquellos localizados en la propia red local.
Evidentemente, si alguno de los dispositivos de encaminamiento
con el dispositivo remoto a controlar no funciona correctamente,
no ser� posible su monitorizaci�n ni reconfiguraci�n.
El protocolo SNMP est� compuesto por dos elementos: el agente
(agent), y el gestor (manager). Es una arquitectura
cliente-servidor, en la cual el agente desempe�a el papel de
servidor y el gestor hace el de cliente.
El agente es un programa que ha de ejecutase en cada nodo de red
que se desea gestionar o monitorizar. Ofrece un interfaz de
todos los elementos que se pueden configurar. Estos elementos se
almacenan en unas estructuras de datos llamadas "Management
Information Base" (MIB), se explicar�n m�s adelante. Representa
la parte del servidor, en la medida que tiene la informaci�n que
se desea gestionar y espera comandos por parte del cliente.
El gestor es el software que se ejecuta en la estaci�n encargada
de monitorizar la red, y su tarea consiste en consultar los
diferentes agentes que se encuentran en los nodos de la red los
datos que estos han ido obteniendo.
Hay un comando especial en SNMP, llamado trap, que
permite a un agente enviar datos que no han sido solicitados de
forma expl�cita al gestor, para informar de eventos tales como:
errores, fallos en la alimentaci�n el�ctrica, etc.
En esencia, el SNMP es un protocolo muy sencillo puesto que
todas las operaciones se realizan bajo el paradigma de
carga-y-almacenamiento (load-and-store), lo que permite un juego
de comandos reducido. Un gestor puede realizar s�lo dos tipos
diferentes de operaciones sobre un agente: leer o escribir un
valor de una variable en el MIB del agente. Estas dos
operaciones se conocen como petici�n-de-lectura (get-request) y
petici�n-de-escritura (set-request). Hay un comando para
responder a una petici�n-de-lectura llamado respuesta-de-lectura
(get-response), que es utilizado �nicamente por el agente.
La posibilidad de ampliaci�n del protocolo est� directamente
relacionado con la capacidad del MIB de almacenar nuevos
elementos. Si un fabricante quiere a�adir un nuevo comando a un
dispositivo, como puede ser un encaminador, tan s�lo tiene que
a�adir las variables correspondientes a su base de datos
(MIB).
Casi todos los fabricantes implementan versiones agente de SNMP
en sus dispositivos: encaminadores, hubs, sistemas operativos,
etc. Linux no es una excepci�n, existen varios agentes SNMP
disponibles p�blicamente en la Internet.
La cuesti�n de la seguridad
SNMP ofrece muy poco soporte para la autentificaci�n. Tan s�lo
ofrece el esquema de dos palabras clave (two-passwords). La
clave p�blica permite a los gestores realizar peticiones de
valores de variables, mientras que la clave privada permite
realizar peticiones de escritura. A estas palabras clave se les
llama en SNMP communities. Cada dispositivo conectado
con una red gestionada con SNMP, ha de tener configuradas estas
dos communities.
Es muy com�n tener asignando por defecto el valor "public" al
community p�blico, y "private" al privado. Por lo que es
muy importante cambiar estos valores para proteger la seguridad
de tu red.
� Qu� es el MIB ?
SNMP define un est�ndar separado para los datos gestionados por
el protocolo. Este est�ndar define los datos mantenidos por un
dispositivo de red, as� como las operaciones que est�n
permitidas. Los datos est�n estructurados en forma de �rbol; en
el que s�lo hay un camino desde la ra�z hasta cada
variable. Esta estructura en �rbol se llama Management
Information Base (MIB) y se puede encontrar informaci�n sobre
ella en varios RFC's.
La versi�n actual de TCP/IP MIB es la 2 (MIB-II) y se encuentra
definida en el RFC-1213. En ella se divide la informaci�n que un
dispositivo debe mantener en ocho categor�as (ver Tabla
1). Cualquier variable ha de estar en una de estas categor�as.
Tabla 1. Categor�as TCP/IP
Categor�a | Informaci�n |
system | Informaci�n del host del sistema de encaminamiento |
interfaces | Informaci�n de los interfaces de red |
addr-translation | Informaci�n de traducci�n de direcciones |
ip | Informaci�n sobre el protocolo IP |
icmp | Informaci�n sobre el protocolo ICMP |
tcp | Informaci�n sobre el protocolo TCP |
udp | Informaci�n sobre el protocolo UDP |
egp | Informaci�n sobre el protocolo (Exterior Gateway) |
La definici�n de un elemento concreto MIB implica la
especificaci�n del tipo de dato que puede contener. Normalmente,
los elementos de un MIB son enteros, pero tambi�n pueden
almacenar cadenas de caracteres o estructuras m�s complejas como
tablas. A los elementos de un MIB se les llama "objetos". Los
objetos son los nodos hoja del �rbol MIB, si bien, un objeto
puede tener m�s de una instancia, como por ejemplo un objeto
tabla. Para referirse al valor contenido en un objeto, se ha
de a�adir el n�mero de la instancia. Cuando s�lo exista una
instancia del objeto, est� es la instancia cero.
Por ejemplo, el objeto ifNumber de la categor�a
"interfaces" es un entero que representa el n�mero de interfaces
presentes en el dispositivo; mientras el objeto
ipRoutingTable de la categor�a "ip" contiene la tabla
de encaminamiento del dispositivo.
Hay que acordarse de utilizar el n�mero de la instancia para
leer el valor de un objeto. En este caso, el n�mero de
interfaces presentes en un encaminador puede ser observado
mediante la instancia ifNumber.0.
En el caso de ser un objeto tabla, se ha de utilizar el �ndice a
la tabla como �ltimo n�mero para especificar la instancia (fila
de la tabla).
Existe otro est�ndar que define e identifica las variables MIB,
llamado "Structure of Management Information" (SMI). SMI
especifica las variables MIB, �stas se declaran empleando un
lenguaje formal ISO llamado ASN.1, que hace que tanto la forma
como los contenidos de estas variables sean no ambiguos.
El espacio de nombres ISO (�rbol) est� situado dentro de un
espacio de nombres junto con otros �rboles de otros est�ndares
de otras organizaciones. Dentro del espacio de nombres ISO hay
una rama espec�fica para la informaci�n MIB. Dentro de esta rama
MIB, los objetos est�n a su vez jerarquizados en sub�rboles para
los distintos protocolos y aplicaciones, de forma que esta
informaci�n puede representarse un�vocamente.
La Figura 1 muestra el espacio de nombres del MIB del TCP/IP,
�ste est� situado justo bajo el espacio del IAB "mgmt". La
jerarqu�a tambi�n espec�fica el n�mero para cada nivel.
Figura 1. TCP/IP Organizational Tree
|
Es importante constatar que la mayor parte del software necesita
el punto ra�z (.) para localizar el objeto en el MIB. Si no se
incluye el punto ra�z, se asume que el path es relativo desde
.iso.org.dod.internet.mgmt.mib-2.
De esta forma, el objeto ifNumber de la categor�a
"interfaces" se puede llamar:
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifnumber
o el equivalente num�rico:
.1.3.6.1.2.1.2.1
y la instancia es:
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifnumber.0
o el equivalente num�rico:
.1.3.6.1.2.1.2.1.0
Adicionales MIB se pueden a�adir a este �rbol conforme los
vendedores definen nuevos objetos y publican los correspondientes
RFC.
� Cu�l es el futuro de SNMP ?
Una nueva especificaci�n llamada SNMPv2 est� actualmente en
r�pido desarrollo. Esta versi�n trata de solucionar la laguna
existente en cuestiones de seguridad del protocolo actual
mediante mecanismos que se centran en la privacidad, la
autentificaci�n y el control de acceso. Tambi�n permitir� un
complejo mecanismo de especificaci�n de variables, as� como
algunos comandos nuevos. El problema del SNMPv2 es que a�n no es
un est�ndar ampliamente aceptado, a diferencia del SNMPv1. No es
f�cil encontrar versiones de SNMPv2 de agentes ni de software
que haga uso de los nuevos comandos. Dejemos que pase el tiempo
y ya veremos que sucede en el futuro pr�ximo...
SNMP en Linux
Uno de los paquetes m�s populares de SNMP es el
CMU-SNMP. Dise�ado originalmente en la Universidad de Carnegie
Mellon, ha sido transportado a Linux por Juergen Schoenwaelder y
Erik Schoenfelder. Es completamente compatible con el est�ndar
SNMPv1 e incluye algunas de las nuevas funcionalidades de
SNMPv2.
La distribuci�n contiene algunas herramientas de gesti�n que
permiten, desde la l�nea de comandos, enviar peticiones a
dispositivos que ejecuten agentes SNMP. Tambi�n contiene un
programa agente SNMP, dise�ado para ejecutarse sobre Linux, que
ofrece a gestores ejecut�ndose en la red (o en el propio sistema),
informaci�n sobre el estado de los interfaces, tablas de
encaminamiento, instante de inicio (uptime), informaci�n de
contacto, etc.
Una valiosa caracter�stica a�adida que viene con CMU-SNMP es un
SNMP C-API, que permite a los programadores construir complejas
herramientas de gesti�n basadas en las capacidades de red de la
distribuci�n.
La instalaci�n en un sistema Linux es sencilla, si bien algo
diferente de la instalaci�n original. Existe una distribuci�n
con los ejecutables pre-compilados de las herramientas de
gesti�n, el demonio y la biblioteca API.
Lo primero que se ha de hacer es decidir si "bajarse" la
distribuci�n con los fuentes, o la distribuci�n con los
ejecutables. No es dif�cil encontrar este paquete en la
Internet. La distribuci�n binaria se instala y ejecuta sin
problema alguno en los Linux que soporten ELF. Si bien
explicaremos c�mo instalar la distribuci�n binaria, es una buena
pr�ctica el bajarse las distribuciones binarias �nicamente de
servidores Internet de confianza para evitar caballos de Troya y
otros problemas de seguridad.
Copia el fichero cmu-snmp-linux-3.4-bin.tar.gz en el
directorio ra�z (/). Descompr�melo y extrae los fichero del tar
con con la siguiente orden:
tar zxvf cmu-snmp-linux-3.4-bin.tar.gz
Ahora tendr�s todas las utilidades y bibliotecas correctamente
instaladas en el sistema, a excepci�n del fichero de configuraci�n
del agente: /etc/snmpd.conf. Lo puedes crear ejecutando
el siguiente "script":
/tmp/cmu-snmp-linux-3.4/etc/installconf
con los siguientes par�metros:
/tmp/cmu-snmp-linux-3.4/etc/installconf -mini password
donde password es la palabra clave p�blica
(community) que se vaya a utilizar. Ahora se puede editar
el nuevo fichero de configuraci�n /etc/snmpd.conf. En �l,
se pueden cambiar el valor de puerto UDP empleado por el agente,
las variables systemContact, sysLocation y
sysName, as� como los par�metros de velocidad del
interface para las tarjetas de red y los puertos PPP.
Las herramientas m�s importantes de gesti�n de este paquete son:
-
/usr/bin/snmpget Un programa dise�ado para
consultar un valor concreto a un agente MIB de la red (una
encaminador, un hub, etc).
-
/usr/bin/snmpgetnext Permite leer el siguiente
objeto de un �rbol MIB sin necesidad de conocer el nombre.
-
/usr/bin/snmpset Una herramienta para escribir
valores en los objetos de agentes remotos.
-
/usr/bin/snmpwalk Herramienta que lee un
objeto completo o una serie de objetos sin necesidad de
especificar la instancia exacta. Es �til para pedir objetos
tipo tabla.
-
/usr/bin/snmpnetstat
-
/usr/bin/snmptrapd Demonio que escucha los
"traps"de los agentes.
-
/usr/bin/snmptest Herramienta interactiva
dise�ada para demostrar las posibilidades del API.
El agente se encuentra en el directorio
/usr/sbin/snmpd.
CMU_SNMP tambi�n instala un fichero MIB en
/usr/lib/mib.txt. �ste es un buen lugar en donde buscar
qu� tipo de informaci�n se le puede pedir a un dispositivo de
red.
El agente se tiene que lanzar a ejecuci�n cuando se pone en
marcha la m�quina. �sto se puede hacer a�adiendo el siguiente
comando en alguno de los ficheros de arranque (por ejemplo en
/etc/rc.f/rc.local):
/usr/sbin/snmpd -f ; echo 'Arrancando snmpd'
Una vez se tiene el agente SNMP en ejecuci�n en la m�quina Linux,
se puede comprobar su funcionamiento con alguna de las
herramientas de gesti�n, por ejemplo:
/usr/bin/snmpget localhost public interfaces.ifNumber.0
la cual retornar� el n�mero de interfaces configurados en el
sistema, y:
/usr/bin/snmpwalk localhost public system
devuelve todos los valores en el sub�rbol "system" del MIB. (V�ase
en la Figura 2 el resultado de esta orden).
Figura 2
dragon:~$ /usr/bin/snmpwalk
usage: snmpwalk gateway-name community-name object-identifier
dragon:~$ /usr/bin/snmpwalk localhost public system
system.sysDescr.0 = "Linux version 2.0.24 (root@dragon)
(gcc version 2.7.2) #6 Mon Nov 25 15:08:40 MET 1996"
system.sysObjectID.0 = OID: enterprises.tubs.ibr.linuxMIB
system.sysUpTime.0 = Timeticks: (39748002) 4 days, 14:24:40
system.sysContact.0 = "David Guerrero"
system.sysName.0 = "dragon "
system.sysLocation.0 = "Madrid (SPAIN)"
system.sysServices.0 = 72
system.sysORLastChange.0 = Timeticks: (39748006) 4 days, 14:24:40
system.sysORTable.sysOREntry.sysORID.1 = OID: enterprises.tubs.ibr.linuxMIB.linuxAgents.1
system.sysORTable.sysOREntry.sysORDescr.1 = "LINUX agent"
system.sysORTable.sysOREntry.sysORUpTime.1 = Timeticks: (39748007) 4 days, 14:24:40
dragon:~$
|
El C-API est� en el directorio /lib/libsnmp.so.3.4.
Se pueden ojear los ficheros de cabecera relacionados con la
biblioteca en :
-
/usr/include/snmp/snmp.h
-
/usr/include/snmp/snmp_impl.h
-
/usr/include/snmp/asn1.h
-
/usr/include/snmp/snmp_api.h
Se puede encontrar m�s informaci�n en las p�ginas del manual
snmp_api(3) y varibles(5).
Existe tambi�n un m�dulo Perl de interface con CMU C_API con el
que se pueden realizar f�cilmente llamadas a esta biblioteca
desde programas Perl (Perl-scripts).
MRTG: Multi Router Traffic Grapher
MRTG es una avanzada utilidad gr�fica escrita por Tobias Oetiker
y Dave Rand para representar gr�ficamente los datos que los
gestores SNMP leen de los agentes SNMP. Produce unas vistosas
p�gimas HTML con gr�ficos GIF sobre el tr�fico entrante y
saliente en los interfaces de red pr�cticamente tiempo real. Con
esta herramienta se evita el tener que trabajar directamente con
las utilidades CMU-SNMP mediante l�nea de comandos. �sta es la
herramienta m�s potente y f�cil de utilizar que he encontrado en
la Internet.
MRTG utiliza una implemantaci�n de SNMP escrita completamente en
Perl, por tanto, no es necesario instalar otros paquetes. El
programa principal est� escrito en "C" para acelerar el proceso
de toma de muestras y la generaci�n de im�genes GIF. Los gr�ficos
son generados con la ayuda de la biblioteca GD escrita por
Thomas Boutell, autor de la FAQ WWW.
El paquete contiene algunas utilidades para analizar los
interfaces de enlace, extraer sus caracter�sticas y generar los
ficheros de configuraci�n base, que luego se pueden modificar
para adaptarlos a las necesidades concretas.
Otra caracter�stica interesante del MRTG es la cantidad de
informaci�n que produce. Permite cuatro niveles de detalle para
cada interface: tr�fico en las �ltimas 24 horas, la �ltima
semana, el �ltimo mes y un gr�fico anual. �sto permite recoger
informaci�n para realizar estad�sticas. Guarda toda esta
informaci�n en una base de datos utilizando un algoritmo de
consolidaci�n que impide que los ficheros crezcan de forma
desmesurada.
Tambi�n genera una p�gina principal que contiene las im�genes
GIF de los detalles diarios de cada interface del encaminador,
lo que permite hacerse una idea general de qu� es lo que est�
pasando en el encaminador con un s�lo vistazo. Se puede ver la
p�gina principal generada por MRTG en las Figuras 3 y 4.
Figura 3. Interfaz de la p�gina principal |
Figura 4. Interfaz de la p�gina detallada del interface |
|
|
Haz click en las figuras para verlas en grande.
|
Veamos el procedimiento b�sico de instalaci�n. Lo primero que se
necesita es la distribuci�n. En el momento de escribir este
art�culo, la �ltima versi�n es la 2.5.1 (est� disponible en
castellano (espa�ol) y pre-compilada); puedes encontrar la
direcci�n URL del servidor principal al final de este art�culo.
Antes de comenzar la instalaci�n del MRTG es necesario instalar
la biblioteca GD la direcci�n URL tambi�n est� al final del
art�culo. La versi�n actual es la 1.2 y no deber�an haber
problemas en compilarla e instalarla. Sencillamente hay que
ejecutar make en el directorio en el que se ha
desempaquetado la distribuci�n y se genera como resultado el
fichero llamado libgd.a. Se copia este fichero al
directorio /usr/local/lib y los ficheros con extensi�n
.h al directorio /usr/local/include/gd.
En este punto el paquete GD debe estar correctamente
instalado. Ahora se puede compilar el paquete MRTG. Extrae la
distribuci�n y edita el fichero ../../common/January1998/Makefile para indicar donde se
encuentra la biblioteca y los archivos de cabecera de GD, as�
como cual es el fichero ejecutable Perl 5.003: normalmente se
encuentra en /usr/bin/perl o en
/usr/local/bin/perl.
Construye el programa principal tecleando make rateup;
cuando termine la compilaci�n, teclea make substitute
para incluir el path correcto del interprete de Perl en los
scripts de Perl que utiliza MRTG.
Copia los siguientes ficheros su directorio destino final (por
ejemplo: /usr/local/mrtg): BER.pm,
SNMP_Session.pm, mrtg y rateup.
Tambi�n se han de copiar en este directorio los dos ficheros de
configuraci�n: indexmaker y cfgmaker.
Aseg�rese que todos los programas tienen permiso de ejecuci�n.
Ya est� todo listo para crear un fichero de configuraci�n
sencillo. Es necesario tener acceso SNMP de lectura al
encaminador. Para un encaminador de la marca Cisco, las l�neas
de configuraci�n que dan permiso son:
access-list 99 permit 193.147.0.8
access-list 99 permit 193.147.0.9
access-list 99 permit 193.147.0.130
snmp-server community public RO 99
Esto permite peticiones de s�lo lectura desde las direcciones
especificadas en la lista 99, empleando la palabra clave "public"
como community. Si lo que se quiere es permitir el acceso
desde cualquier m�quina en modo s�lo lectura al encaminador,
entonces la l�nea ha de ser la siguiente:
snmp-server community public RO
Si el encaminador de la red es de otra marca, entonces se ha de
consultar el manual para determinar c�mo permitir el acceso
SNMP.
El script cfgmaker simplifica mucho la tarea de
construir el fichero de configuraci�n. Todo lo que hay que hacer
es ejecutarlo con los siguientes par�metros:
cfgmaker <community>@<router-host-name or IP>
Por ejemplo:
cfgmaker [email protected] > mrtg.cfg
Localizar� todos los interfaces del encaminador
mec-router.rediris.es y escribir� una secci�n en el
fichero con las especificaciones del n�mero de interfaces,
velocidad m�xima, descripci�n, etc., junto con algunas etiquetas
HTML para que puedan ser incluidas en la p�gina detallada. Es
posible editar este fichero HTML para traducirlo al idioma y
preferencias propias. Se puede ver en la Figura 5 la salida de
uno de los interfaces de mi encaminador.
Figura 5
Target[mec-router.1]: 1:public@mec-router
MaxBytes[mec-router.1]: 1250000
Title[mec-router.1]: mec-router.rediris.es (mec-router.mec.es): Ethernet0
PageTop[mec-router.1]: <H1>Estadisticas del puerto Ethernet0<BR>
Red del MEC (MECNET)</H1>
<TABLE>
<TR><TD>System:</TD><TD>mec-router.rediris.es en RedIRIS </TD></TR>
<TR><TD>Maintainer:</TD><TD>[email protected]</TD></TR>
<TR><TD>Interface:</TD><TD>Ethernet0 (1)</TD></TR>
<TR><TD>IP:</TD><TD>mec-router.mec.es (193.147.0.1)</TD></TR>
<TR><TD>Max Speed:</TD>
<TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR>
</TABLE>
|
Ahora se puede ejecutar el programa mrtg por primera
vez. Sencillamente ejecuta:
./mrtg mrtg.cfg
Si todo va bien, el programa se pondr� en contacto con el
encaminador, pedir� algunos valores y generar� algunos ficheros
de registro y algunos ficheros GIF en el directorio actual. No
hay que sorprenderse por las quejas respecto los ficheros de
registro y de gr�ficos que no ha encontrado, esto s�lo sucede la
primera vez que se ejecuta. Elimina los ficheros de gr�ficos que
genera y vuelve a ejecutar el programa otra vez. El gr�fico
generado mostrar� el tr�fico producido en el intervalo desde la
�ltima ejecuci�n del programa. Tambi�n genera p�ginas HTML para
cada interface.
Ahora vamos a indicarle a MRTG como ejecutarse adecuadamente en
el sistema. Primero se ha de crear un directorio dentro del
directorio principal del web servidor (suponiendo que en el
sistema haya un servidor web en funcionamiento) para contener
las p�ginas y gr�ficos que MRTG generar� cada vez que se
ejecute. A�ade este directorio en la cabecera del fichero de
configuraci�n con la directiva WorkDir:
/usr/local/web/mrtg (suponiendo que el directorio ra�z est�
situado en /usr/local/web). La pr�xima vez que MRTG se
ejecute, crear� los ficheros de registro y de gr�ficos en este
directorio, pudiendo accederse v�a
http://your_host.domain/mrtg.
Ahora vamos a construir la p�gina principal para todos los
interfaces como la que aparece en la Figura 3. �sto se puede
llevar a cabo con la utilidad indexmaker. Ejecuta:
indexmaker mrtg.cfg <router-name regexp> >
/usr/local/web/mrtg/index.html
Se generar� un documento HTML con gr�ficos diarios de aquellos
interfaces cuyo nombre de encaminador coincida con la expresi�n
regular anterior y los enlaza con la p�gina individual
detallada.
Como se puede imaginar, el programa MRTG se ha de ejecutar a
intervalos regulares para recoger datos en cada intervalo y
generar los gr�ficos peri�dicamente, de forma que de la
impresi�n de ser una monitorizaci�n en tiempo real. Esto se
puede conseguir mediante la siguiente l�nea en el fichero
/etc/crontab (suponiendo /usr/local/mrtg-bin
como el directorio donde reside el programa mrtg):
0,5,10,15,20,25,30,35,40,45,50,55 * * * * \
/usr/local/mrtg-bin/mrtg \
/usr/local/mrtg-bin/mrtg.cfg > \
/dev/null 2>&1
En caso de tratarse de una distribuci�n Red Hat, la l�nea que se
tendr�a que a�adir ser�a:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * root \
/usr/local/mrtg-bin/mrtg \
/usr/local/mrtg-bin/mrtg.cfg > \
/dev/null 2>&1
Si no se ha producido ning�n problema, ahora se puede dedicar
alg�n tiempo para acabar de configurar y ajustar la p�gina
�ndice HTML. Una buena mejora consiste en incluir en la secci�n
de cabecera de esta p�gina un c�digo <META .....> para
obligar al visor web a recargar la informaci�n cada 300
segundos.
Otra mejora que se puede incluir en el fichero de configuraci�n
es la directiva WriteExpire, que fuerza a MRTG a crear
ficheros ".meta" para cada fichero GIF y p�gina HTML, eliminando
innecesarias operaciones de "cache" tanto en los servidores
proxy como en los propios visores web. Para ello tambi�n es
necesario configurar el servidor Apache (suponiendo que sea �ste
el servidor) para que lea estos ficheros ".meta" y env�e
correctamente las cabeceras "Expire" con la directiva
MetaDiren el fichero XXXX.
Se pueden encontrar m�s directivas en el fichero de
configuraci�n ejemplo que viene con la distribuci�n; que por
cierto, est� muy bien documentado. Es posible modificar la
disposici�n de las im�genes generadas por MRTG.
Espero que te guste este programa, si es as�, enviarle a los
autores una tarjeta; puedes encontrar su direcci�n en la p�gina
web de MRTG.
Otros Programas
Existe un programa similar llamado Router-Stats, escrito por Iain
Lea, el autor del famoso programa lector de correo
"tin". Router-Stats actualiza los gr�ficos una vez al d�a y
muestra informaci�n estad�stica muy interesante sobre la
utilizaci�n por horas y otros aspectos. El �nico problema es que
se apoya en muchos programas externos. (SMU-SNMP para las tareas
con SNMP, GNUPLOT para trazar gr�ficos, NetPBM y GIFTOOL para
trabajar con gr�ficos).
Hay otra categor�a de software que da un paso m�s all� en la
tarea de gesti�n de redes, ofreciendo una soluci�n completa tanto
para monitorizar como para configurar toda la red. Este tipo de
soluci�n permite obtener una compleja representaci�n gr�fica de
la red y ojear f�cilmente los nodos que la componen, verificando
detalles de configuraci�n espec�ficos y otras cuestiones de
inter�s.
A este nivel podemos hablar de dos soluciones comerciales
ampliamente utilizadas: "HP-OpenView" de Hewlett-Packard y
"SunNet Manager" de Sun. Estas herramientas ofrecen una
plataforma integrada para la gesti�n de los recursos de red, a
trav�s de impresionantes interfaces gr�ficos. Entre otras
utilidades, disponen de herramientas para localizar los nodos de
la red en los que se est�n ejecut�ndo agentes SNMP. Otra
caracter�stica importante es la capacidad de integrar productos
de otros fabricantes, como el CiscoWork de Cisco, que permite al
administrador mantener una base de datos con todas las
configuraciones de los encaminadores e incluso monitorizar
gr�ficamente los paneles traseros de los encaminadores con todas
sus conexiones.
Los dos inconvenientes fundamentales de estos productos es que
son comerciales y no est�n disponibles para Linux. Pero por
supuesto que existen soluciones disponibles p�blicamente con una
funcionalidad m�s o menos similar. Uno de los paquetes que he
encontrado es el Scotty. Scotty es un paquete basado en TCL que
permite crear programas espec�ficos a las necesidades de la red
propia, empleando un API de alto nivel de cadenas de
caracteres. Un paquete similar es el Tkined. Es un editor de red
que ofrece extensiones para crear un entorno de trabajo
completo, integrando algunas herramientas para localizar redes
IP, soporte para el proceso de instalaci�n de la red o
resoluci�n de problemas en redes IP utilizando SNMP en
combinaci�n con otras utilidades est�ndar (por ejemplo
traceroute). Scotty tambi�n incluye un visor gr�fico
MIB que permite explorar f�cilmente informaci�n MIB.
Puedes encontrar referencias tanto de paquetes comerciales como
de software libre al final del art�culo.
Conclusiones
SNMP es un protocolo sencillo pero potente que puede ayudar a
monitorizar los recursos de red sin sobrecargar mucho la
red. Quiz�s las extensiones que se est�n llevando a cabo
actualmente incrementar�n la complejidad y las posibilidades de
esta herramienta pero a cambio incrementar� los recursos
necesarios para implementarla.
En este art�culo, se han presentado dos herramientas que se
pueden encontrar en la Internet. Existe una multitud de
herramientas que se est�n desarrollando continuamente. Consulta
el grupo de noticias de Usenet comp.protocols.snmp para
estar al tanto sobre anuncios sobre nuevo software y MIBs.
|