Clasificación y ejemplificación de los tipos de herramientas de monitorización
Las herramientas de diagnóstico son aquellas que informan del estado de los dispositivos. Entre esa Información figura, además de si está encendido el equipo, los puertos abiertos o cerrados, los servicios activos, e incluso podría haber Información relativa a la versión del sistema operativo y aplicaciones de red que se están usando.
Se pueden distinguir las siguientes herramientas:
- ping: informa acerca de la conectividad con un dispositivo remoto, de la Calidad de la conexión y puede informar de hasta dónde se tiene conectividad (si hay un Router caído en el camino hacia el destino). Entorno textual.
- traceroute (entornos Linux), Tracert (entornos Windows): informa sobre lo mismo que ping, pero da una Información más precisa sobre los routers por los que va pasando hasta llegar al destino. Hay herramientas gráficas que se basan en esta para mostrar un resultado más visual (como Neotrace o Visual Route).
- netstat: se usa de forma local. Sirve para saber qué conexiones se tienen en el equipo en ese momento. Entorno textual.
- Nmap: sirve para hacer un testeo sobre los puertos que pueda tener abiertos un sistema remoto, informando sobre servicios asociados. Es de entorno textual, tiene una versión gráfica llamada Zenmap.
- Analizadores de Protocolo: popularmente llamados “sniffers”, permiten analizar el tráfico de red en el segmento local en el que se encuentran. Wireshark, tcpdump y el monitor de red de Windows son algunos ejemplos.
- Analizadores de vulnerabilidades: como Nessus y OpenVas, realizan un test remoto sobre el sistema y averiguan vulnerabilidades presentes.
Monitorización activa de la disponibilidad: SNMP
La monitorización activa se refiere a un proceso en el que se analiza de forma continua los dispositivos que se monitorizan para mantener lo más fielmente posible la Información sobre ellos.
Esto se puede conseguir por medio de un Procedimiento de sondeos repetitivos cada cierto tiempo. El mejor ejemplo de proceso que hace esto es SNMP, que normalmente se configura para que realice sondeos en espera de respuestas cada cinco minutos.
Ejemplo de uso de SNMP para recolectar datos sobre el consumo de RAM
Monitorización activa de la disponibilidad: NetFlow y Nagios
La monitorización pasiva se basa en la transferencia de eventos por parte de los dispositivos a administrar hacia los elementos gestores de la administración, los NMS (NetWork Management System).
NetFIow
Se trata de un Protocolo patentado por Cisco y diseñado para la recolección de datos sobre el estado de la red. Se convierte en un estándar de la IETF (Internet Engineering Task Force) conocido como IPFIX (Internet Protocol Flow Information eXport) que puede consultarse en la RFC 3954.
Suele instalarse en routers o switches para generar informes que pueden ser enviados luego a un equipo centralizado para presentar los datos. Al estar estandarizado muchos fabricantes, además de Cisco, lo implementan en sus equipos (Juniper, Alcatel, etc.).
El funcionamiento es el siguiente: se activa el Protocolo en las interfaces (tarjetas de red) del Router o switch donde se quiera recolectar la Información (se puede discriminar entre el tráfico que llega y el que sale de dicha interfaz). El sistema puede procesar los datos y generar informes resaltando las IP y puertos de origen y destino, así como el tipo de tráfico.
Toda esa Información se almacena en el propio dispositivo que la recolecta en la llamada “Caché netflow”. Cuando se llena, o se configura de alguna manera, el contenido de la Caché es enviado (exportado) al equipo centralizado que puede ser una estación de trabajo normal.
Curiosidad! Caché es un área de memoria RAM para almacenamiento intermedio. Al ser RAM, su contenido se borra con el apagado. Cuando contiene Información importante se suele salvar en algún dispositivo.
Para recolectar esa Información en el equipo centralizado se utilizará alguna herramienta que permita visualizarla de manera gráfica y lo más agradable posible.
Algunas herramientas pueden ser: Scrutinizer Netflow Analyzer (para Windows), ManageEngine Netflow Analyzer (Windows y Linux), Paessler Router Traffic Grapher (Windows), Netflow Monitor (Linux), etc.
Ejemplo de funcionamiento de Netflow
Importante! Se puede encontrar un listado con herramientas y enlaces para descargarlas en: http://www.networkuptime.com/tools/netflow/.
Algunas de las ventajas de NetFIow son:
- Analiza flujos de datos.
- Permite monitorizar el uso de aplicaciones.
- Ayuda a los análisis de seguridad.
- Almacenamiento de datos para futuros análisis.
Nagios
Es una herramienta de monitoreo que continuamente comprueba el esta do de dispositivos de red y de servicios asociados a esos dispositivos. Utiliza muchos plugins (complementos) para realizar las comprobaciones, lo que la convierte en una herramienta sumamente flexible y modular. Además, es de código abierto. Solo tiene soporte bajo Linux.
Nagios puede operar de una forma muy poco intrusiva, consultando el estado de los puertos de los diferentes servicios, pero se puede combinar con SNMP (esto es opcional) para darle mayor eficacia a costa de ser más intrusiva. Utiliza una estructura cliente-servidor, instalando el cliente en el equipo a monitorizar.
Es necesario un servidor web (como Apache) para albergar la interfaz de trabajo de Nagios, accediendo a través del navegador web.
Entre los clientes a instalar, en el caso de Windows, se puede utilizar Ns-client++ o Nc-net. En el caso de Linux lo habitual es el uso del cliente Nrpe.
Para la disponibilidad Nagios trabaja con dos estados, “Soft” y “Hard”, siendo el estado Hard el que indica que la Información sobre el dispositivo es estable, y Soft que está pendiente de comprobación, pues puede haber habido algún cambio reciente (una caída momentánea del servicio, por ejemplo). Falta confirmar si ese cambio será estable.
La estructura cliente-servidor funciona así: el programa cliente de Nagios en el dispositivo administrado actúa como un servicio en espera de las peticiones del servidor Nagios, el cual, en función de la configuración, realizará los chequeos programados. A la Información del servidor se accede a través del navegador web.
Ejemplo de la estructura cliente-servidor de Nagios
Para acceder al servidor, en el navegador se pone la dirección del mismo: localhost (si es de forma local).
Monitorización del rendimiento: Cricket, MRTG, Cacti
Para el rendimiento se va un poco más allá. No basta con que un servicio esté funcionando, hace falta saber si lo hace bien, cuáles son las demandas de ese servicio, etc.
Cricket
Es un sistema de plataforma Linux (tiene opciones de instalación en Windows) de código abierto, que sigue la evolución de la red haciendo pruebas en series de tiempo (5 minutos por defecto).
Tiene dos elementos, uno es un colector encargado de realizar las pruebas y recoger datos (temporizado por medio del cron de Linux) para pasárselos al gestor de gráficos. El otro elemento que lo compone es un complemento (Grapher) para visualizar la Información en forma de gráficos. Necesita tam bién un intérprete (Perl).
Los datos se almacenan en una estructura RRD (Round Robin Database) diseñada para MRTG, que procura almacenar la Información de manera compacta y sin crecimientos en el tiempo, evitando Información redundante.
Suele utilizarse para hacer más manejable la Información que aportan los agentes SNMP.
El funcionamiento sería el siguiente: cada cierto tiempo, el NMS con Cricket lanzaría una serie de pruebas sobre los agentes SNMP, estos responderían a las solicitudes. A continuación se almacenan los datos en la RRD y se construyen los gráficos sobre el uso de la red.
Estructura de trabajo de Cricket
La mayor ventaja de Cricket es que soporta bien un aumento de la carga de trabajo y puede monitorizar muchos equipos. Aunque su instalación es compleja se puede reconfigurar la herramienta a medida que crece la red (es-calabi I idad).
Importante! El enlace para la página oficial de Cricket es: http://cricket.sourceforge.net/.
MRTG
Se corresponde con el acrónimo Multi Router Traffic Grapher. Puede utilizarse también con SNMP para dar forma a los datos recogidos. Su comportamiento se basa en un archivo de texto muy configurable “mrtg.cfg”. Genera los resultados en archivos HTML con gráficos que aportan una representación visual del tráfico en los dispositivos administrados.
Gráficos de flujo de red obtenidos con MRTG
MRTG destaca por su comodidad y facilidad de instalación en diversas plataformas. No es tan escalable como Cricketya que cambiar las configuraciones se hace algo más complejo.
Además de SNMP, MRTG necesita un intérprete Perl y un servicio web.
Cacti
Otra herramienta de código libre para múltiples plataformas, aunque más extendida en Linux. Permite monitorizar en tiempo real las redes, dispositivos de red, y servicios implementados en los servidores que tengan activado el Protocolo SNMP. Almacena datos en una estructura RRD. Está escrito en PHP y genera gráficos utilizando la herramienta RRDtool.
Con muchos equipos a controlar necesita un paquete adicional (cacti-spine) para mejorar su propio rendimiento. Su interfaz es de lo más destacable, es muy configurable, se le pueden añadir gran cantidad de elementos a monitori-/ar. Suele utilizarse conjuntamente con otras herramientas, como Nagios, por su gran Calidad de gráficos.
Trabaja a base de realizar sondeos sobre los equipos a monitorizar bajo SNMP configurables, de manera que a mayor frecuencia de sondeo, más Calidad en los gráficos (y mayor carga sobre la red y el proceso). Mantiene un histórico sobre los trabajos realizados y el almacenamiento lo hace a través de Mysql.
Las tres fases de trabajo de Cacti son:
- Recolección de datos: a través del sondeo sobre los agentes SNMP.
- Almacenamiento: puede variar. Por defecto se almacena por medio de una base de datos RRD almacenada por un gestor como Mysql. Tiene además una buena gestión de permisos para controlar el acceso por usuarios a determinadas opciones.
- Presentación: realización de gráficos en entorno web al que se puede acceder por HTTP¡//localhost/cacti. Tiene que tener instalado un servidor web.
Tiene muchos requisitos de instalación (SNMP, servidor web, base de datos, RRD), sin embargo no resulta demasiado compleja.
Como siempre, al estar en un servidor web, se puede acceder a Cacti de forma remota.
Importante! Los enlaces para las páginas oficiales de MRTG y Cacti son: http://oss.oetiker.ch/mrtg/ –http://www.cacti.net/.
La única limitación reside en las MIB del agente SNMP, cuantas más tenga, más se podrá configurar.
A continuación se muestra una tabla comparativa de las tres herramientas:
Entre los requisitos, las tres necesitan SNMP y servicio Web
Cricket | MRTG | Cacti | |
Requisitos | RRD, Perl | RRD opcional, Perl | RRD, Mysql |
Calidad gráficos | Normal | Normal | Muy buena |
Escalabilidad | Buena | Normal | Normal |
Implantación | Laboriosa | Normal | Normal |
Configurable | Normal | Normal | Muy configurable |
Aplicación práctica
El administrador de una red corporativa se ve en la necesidad de utilizar un software de monitorización para gestionar la red. La herramienta que necesita ha de quedar instalada en un servidor que ya cuenta con una base de datos Mysql. Se desea que sea fácil de instalar y bastante escalable.
De las herramientas ya comentadas, ¿cuál sería la más apropiada?
Solución:
De las herramientas presentadas, la más escalable es Cricket, pero entre los requisitos no destaca por su facilidad de instalación.
En este caso quizá puede ser más aconsejable el uso de Cacti, ya que se puede aprovechar el hecho de que ya tiene instalado Mysql. Habría que buscar un equilibrio entre ambas soluciones para tomar una decisión, o tener en cuenta otras propiedades, como la Calidad de gráficos, etc.