Pandora:Documentation es:Monitorizacion remota

From Pandora FMS Wiki

Jump to: navigation, search

Volver a Indice de Documentacion Pandora FMS

Monitorización remota

Introducción

El servidor de red de Pandora FMS es una pieza clave, ya que permite ejecutar pruebas de forma remota y centralizada. Al contrario que el servidor de datos, el servidor de red ejecuta las tareas asignadas a él mediante un sistema de colas multiproceso. Además, un servidor de red puede trabajar con otros servidores de red balanceando la carga y actuando como respaldo en caso de que otro servidor de red caiga, haciéndose cargo del trabajo que tenía el servidor caído. Para saber más sobre la HA en Pandora FMS consulta el capitulo correspondiente.

El servidor de red trabaja únicamente con aquellos módulos de red asignados a él. Obviamente, y dado que se trata de pruebas de red, el servidor de red tiene que tener una visibilidad completa (direcciones IP y puertos) sobre los que se van a realizar las pruebas. No tiene sentido realizar pruebas contra un sistema cuyos puertos no se pueden ver o sobre el cual no se tienen las rutas. La existencia de cortafuegos (firewalls) o rutas en la red no tiene nada que ver con Pandora FMS y los problemas generados por estas razones tampoco tienen nada que ver con una configuración concreta de Pandora FMS.


Remote-monitoring.jpg


Módulos remotos de red

Los módulos de red de Pandora FMS ejecutan tareas de monitorización remota. Las tareas de ejecución remota se pueden resumir en tres bloques.

Pruebas ICMP

Si una máquina responde a Ping (remote_icmp_proc) o el tiempo de latencia de un sistema en milisegundos (remote_icmp). En ambos casos las pruebas las ejecuta el servidor de red al que se le ha asignado el agente que contiene esos módulos de red.

Pruebas TCP

De forma remota se comprueba que un sistema tiene abierto el puerto TCP especificado en la definición del módulo. Adicionalmente se puede enviar una cadena de texto (utilizando la cadena «^M» para reemplazar al retorno de carro) y se puede esperar al recibir una subcadena de respuesta para comprobar que la comunicación es correcta. Esto permite implementar comprobaciones simples de protocolo. Por ejemplo, podríamos comprobar si un servidor está vivo enviando la cadena GET / HTTP/1.0^M^M y esperando recibir la cadena «200 OK».

Pruebas SNMP

Remotamente es posible lanzar peticiones SNMP (SNMP Polling) a sistemas que tengan su servicio SNMP activado y accesible para obtener datos como estado el de las interfaces, el consumo de red por interfaz, etc. Existe un a sección dedicada a SNMP con Pandora FMS (ver más adelante).



Pandora 1.3 Network&DataServer Arch.png


Como resumen, se puede concluir que el servidor de red es quien ejecuta las diferentes pruebas de red asignadas en cada agente. Cada agente se asigna a un servidor de red, y es éste quien se encarga de su ejecución, insertando los resultados en la BB.DD. del sistema de Pandora FMS.

Configuración genérica de un módulo para monitorización de red

Para monitorizar de forma remota un equipo o un servicio de un equipo (FTP, SSH, etc.), primero se deberá crear el agente correspondiente para monitorizar el servicio, por ello, se empezará por ahí.

En la sección de administración de la consola de Pandora FMS pulse sobre Resources > Manage agents:

Anvi.jpg


En la siguiente pantalla, pulse el botón Create agent:

Bibi.jpg


Rellene los datos para su nuevo agente y pulse el botón Create:

Raro.jpg


Una vez que haya creado el agente, pulse sobre la solapa superior de los módulos (Modules). En ella, seleccione crear un nuevo módulo de red y pulse el botón Create:

Sasa.jpg


En el siguiente formulario seleccione un módulo de componente de red, y cuando se cargue el menú desplegable de la derecha, busque la comprobación que le interese. En este ejemplo se seleccionará Host Alive, que representa un ping a la máquina, una simple comprobación para saber si la máquina está conectada a Internet o no.

Alive.jpg


Se dejan las opciones avanzadas para más tarde. Note que el módulo ha obtenido la dirección IP del agente. Si lo desea, ésta puede ser diferente. Una vez que termine de definir el módulo, pulse el botón Create.

En la siguiente pantalla se mostrarán los módulos para el agente, el predeterminado Keepalive que se crea con el agente y el módulo Host Alive añadido:

Kiji.jpg


Como se ve, existe una advertencia sobre los módulos. La advertencia sólo significa que aún no se ha recibido ningún dato en el módulo, ya que se acaban de añadir. Una vez que se comiencen a recibir datos, la advertencia desaparecerá.

Para ver los datos del módulo recién creado, pulse sobre la solapa superior View, y en ella vaya a la parte de abajo, donde se mostrarán los datos una vez se empiecen a recibir:

Keso.jpg


Para añadir otro tipo de comprobaciones de red, proceda de forma similar a la anterior, pero seleccionando otro tipo de módulos.

Monitorización ICMP

El ejemplo anterior es un ejemplo de monitorización ICMP. Estas son las comprobaciones mas básicas y sencillas que nos dan una información importante y exacta. Existen dos tipos de comprobaciones ICMP:

  • icmp_proc, o comprobación de host (ping), que permite saber si una dirección IP responde o no.
  • icmp_data o comprobación de latencia. Básicamente nos dice el tiempo en milisegundos que tarda en responder la dirección IP en responder a una consulta básica ICMP.

Monitorización TCP

Los chequeos TCP permiten comprobar el estado de un puerto o un servicio TCP.

Existen dos campos específicos para las pruebas TCP:

Cap5 snmp 9.png


Las comprobaciones TCP por defecto simplemente miran si el puerto de destino esta abierto o no. Opcionalmente se le puede enviar una cadena de texto, y esperar a recibir algo que será tratado directamente por Pandora FMS como un dato.

Se puede enviar una cadena de texto (utilizando la cadena «^M» para reemplazar al retorno de carro) y se puede esperar al recibir una subcadena de respuesta para comprobar que la comunicación es correcta. Esto permite implementar comprobaciones simples de protocolo. Por ejemplo, podríamos comprobar si un servidor está vivo enviando la cadena

 GET / HTTP/1.0^M^M 

y esperando recibir la cadena

200 OK

Esto se codifica en los campos TCP Send y TCP receive.

TCP send

Campo para configurar los parámetros que enviar al puerto TCP. Admite la cadena ^M para reemplazarla por el envió de un retorno de carro. Para enviar varias cadenas en secuencia envió/respuesta, hay que separarlas con el carácter |

TCP receive

Campo para configurar las cadenas de texto que se esperan recibir en la conexión TCP. Si se envían/reciben en varios pasos, cada paso se separa con el carácter |

A través de las comprobaciones TCP de Pandora se puede hacer algo más que ver simplemente si un puerto está abierto o esperar una respuesta ante una petición simple. Se pueden enviar datos, esperar a recibir algo, enviar algo después, esperar a recibir algo y así hasta el paso que queramos. Solo si todo el proceso es correcto, podemos dar por válido el resultado.

Para utilizar el sistema de comprobaciones diálogo/respuesta de Pandora, puede separar las diferentes peticiones con el carácter |

Veamos un ejemplo de una conversación SNMP:

R: 220 mail.supersmtp.com Blah blah blah
S: HELO myhostname.com
R: 250 myhostname.com
S: MAIL FROM: 
R: 250 OK
S: RCPT TO: 
R: 250 OK
S: DATA
R: 354 Start mail input; end with .
S: .......your mail here........
S: .
R: 250 OK
S: QUIT
R: 221 mail.supersmtp.com Service closing blah blah blah

Si quiere chequear los primeros puntos del protocolo, los campos necesarios para emular esta conversación serían:

TCP Send

HELO myhostname.com^M|MAIL FROM: ^M| RCPT TO: ^M

TCP Receive

250|250|250

Si los tres primeros pasos son OK (código 250), entonces el servidor SMTP esta ok. No necesita enviar un mail completo (aunque podría, en cualquier caso). Esto permite realizar comprobaciones TCP basadas en el protocolo, que pueden usarse para cualquier protocolo que utilice conversaciones en texto plano.

Monitorización SNMP

Introducción a la monitorización SNMP

Cuando se habla de la monitorización SNMP, lo más importante al principio es separar los conceptos de testeo (polling) y los traps. El testeo SNMP implica ordenar que Pandora ejecute un comando snmpget contra un dispositivo SNMP, como por ejemplo un router o un switch (o incluso un ordenador con un agente snmp instalado), esta es una operación síncrona (cada X segundos). Por el contrario, recibir un trap SNMP es una operación asíncrona (que podría o no suceder en un millón de años), comúnmente utilizada para recibir "alertas" provenientes del dispositivo como, por ejemplo, cuando un switch tumba un puerto o su ventilador se calienta demasiado.

Para usar monitorización de testeo SNMP, sólo tiene que añadir un módulo SNMP en Pandora, creando un nuevo módulo de red. La mayoría de los items SNMP que reportan datos de modo creciente (generic_data_inc), es decir que cuando solicita un valor, éste reporta la cantidad "global" de información, por ejemplo, si a un dispositivo SNMP se le pide cuánto tráfico tiene en un adaptador de red, este reportará un número enorme: el total de bytes recogidos desde que el dispositivo se puso en marcha. Así pues, es necesario extraer la última cantidad de bytes conocida de la que está en marcha y dividirla entre los segundos desde los últimos datos conocidos. Esto proporcionará los datos de Bytes/segundo que se necesitan. Esta operación se lleva a cabo con Pandora usando generic_data_inc.

Utilizar los Traps SNMP es algo totalmente diferente. Se pueden recibir traps de cualquier dispositivo, sin necesidad de configurar nada (excepto la consola SNMP). Cuando se recibe un trap, este aparecerá en la consola SNMP. Se puede definir una alerta, basada en OID (el código que identifica un trap, algo similar a 3.4.1.1.4.5.24.2), en un agente IP o en custom data (datos que pueden estar en el trap). Se puede también ordenar a Pandora que "copie" la información en un módulo de texto especial en el agente. Si el agente está definido esta operación se llama transferencia de Traps SNMP.

Pandora FMS puede trabajar con cualquier dispositivo que soporte SNMP. Aunque actualmente Pandora FMS trabaja con SNMP v1, v2, v2c y v3.

Pandora FMS trabaja con SNMP manejando OID individuales. Para Pandora FMS cada OID es un módulo de red. Es decir, si queremos monitorizar un switch Cisco Catalyst de 24 puertos, y conocer el estado operativo de cada puerto así como el tráfico de entrada y salida, tenemos que definir un total de 72 módulos (24 x 3).

Para trabajar con dispositivos SNMP es necesario:

  • Conocer qué es y cómo trabaja el protocolo SNMP. Esto se describe en profundidad en el RFC3411 publicado por el IETF.
  • Conocer la IP y la comunidad SNMP del dispositivo remoto.
  • Activar la gestión SNMP del dispositivo para que desde el servidor de red se puedan hacer consultas SNMP. Este servidor de red debe ser el asignado por el agente donde vayamos a definir los módulos de red. También hay que tener en cuenta que si queremos que otros servidores de red hagan consultas en caso de caída del servidor asignado, estos harán las consultas con otra dirección IP.
  • Conocer el OID concreto del dispositivo remoto que queramos consultar.
  • Saber cómo gestionar el dato que devuelve el dispositivo. Los dispositivos SNMP devuelven datos en diferentes formatos. Pandora FMS puede tratar casi todos, excepto los timetick que los trata como formato numérico sin convertirlos a fecha/hora. Los datos de tipo contador son los que Pandora FMS gestiona como remote_snmp_inc y son de especial importancia, ya que al ser contadores no pueden tratarse como datos numéricos. La mayoría de datos estadísticos SNMP son de tipo contador y se han de configurar como remote_snmp_inc si se quiere monitorizarlos adecuadamente.

Monitorizando SNMP desde los agentes

A partir de la version 3.2, existe una utilidad de obtención de información SNMP disponible dentro del agente de Windows. Een los agentes Unix/Linux snmpget suele estar disponible, por lo que puede ser llamado de forma automática, no como en los sistemas Windows donde es necesaria una utilidad externa que no siempre es fácil de conseguir o instalar.

Hemos empaquetado en el agente "por defecto" de Windows la utilidad snmpget.exe (parte del proyecto net-snmp, con licencia BSD), y hemos añadido las "mibs" básicas y un wrapper o script para encapsular la llamada a la utilidad snmpget.exe.

Utilizando esta llamada podemos monitorizar SNMP desde un agente, obteniendo información de cualquier equipo remoto al que el agente tenga acceso, pudiendo funcionar así como un "agente satélite" o "agente proxy" (según documentación).

En windows la sintaxis de la ejecución es:

module_exec getsnmp.bat <comunidad_SNMP> <ip de destino> <OID>

Algunos ejemplos de módulos SNMP ejecutados por agentes windows:

module_begin
module_name SNMP_if3_in
module_type generic_data_inc
module_exec getsnmp.bat public 192.168.55.1 .1.3.6.1.2.1.2.2.1.10.3
module_end
module_begin
module_name SNMP_if3_desc
module_type generic_data_string
module_exec getsnmp.bat public 192.168.55.1 IF-MIB::ifDescr.3
module_end
module_begin
module_name SNMP_Sysup
module_type generic_data
module_exec getsnmp.bat public 192.168.55.1 DISMAN-EVENT-MIB::sysUpTimeInstance
module_end

Los mismos ejemplos ejecutados desde agentes Unix

module_begin
module_name SNMP_if3_in
module_type generic_data_inc
module_exec snmpget -v 1 -c public 192.168.55.1 .1.3.6.1.2.1.2.2.1.10.3
module_end
module_begin
module_name SNMP_Sysup
module_type generic_data
module_exec snmpget -v 1 -c public 192.168.55.1 DISMAN-EVENT-MIB::sysUpTimeInstance
module_end

Cabe destacar que sólo las OID "basicas" son traducibles por su equivalente numérico, y que es recomendable usar siempre OID numéricas ya que no se sabe si la herramienta va a saber traducirla o no. En cualquier caso siempre se pueden cargar las mibs en el directorio /util/mibs en Windows o /usr/share/snmp/mibs en Linux.

Monitorizando con módulos de red tipo SNMP

Para poder monitorizar cualquier elemento por SNMP deberemos saber, al menos, su IP y su comunidad SNMP. También sería muy interesante saber la OID que se pretende monitorizar, aunque se pueden obtener a través de un SNMP Walk, siempre que se sepa a qué pertenece cada OID.

Para monitorizar un elemento por SNMP, primero se habrá de crear un agente para ello, si ya se dispone de uno, simplemente se le añadirá un módulo de red nuevo siguiendo las indicaciones anteriores.

Una vez que se haya creado el módulo, se debe seleccionar un tipo de dato SNMP en el formulario de configuración del módulo, ver la imagen:

Cap5 snmp 1.png



Cualquiera de los tres tipos de datos SNMP son válidos, simplemente seleccione el que coincida con el tipo de dato que quiere monitorizar.

Una vez que haya seleccionado un tipo de dato SNMP, se expandirá el formulario mostrando los campos adicionales para SNMP:

Cap5 snmp 2.png


A continuación se detallan los campos:

SNMP community

Comunidad SNMP. Necesaria para poder monitorizar el elemento. Actúa como si fuese una contraseña.

SNMP version

Versión del protocolo SNMP del dispositivo. Puede ser 1, 2, 2c y 3.

SNMP OID

El identificador OID que monitorizar. Pueden ser valores numéricos o valores alfanuméricos. Los valores alfanuméricos se transforman internamente por el sistema en valores numéricos (que son los que se usan para hacer la petición) por medio de un diccionario llamado MIB.

Un OID alfanumérico puede tener este aspecto:

  iso.org.dod.internet.private.transition.products.chassis.card.slotCps.cpsSlotSummary.cpsModuleTable.cpsModuleEntry.cpsModuleModel.3562.3

El equivalente numérico sería este:

  1.3.6.1.4.868.2.4.1.2.1.1.1.3.3562.3

Si una MIB el formato alfanumérico no sirve de nada, e instalar una MIB en el sistema no es trivial, por eso es mejor trabajar directamente con identificadores numéricos, aunque sea más críptico es mucho mas portable y no da ningún problema al no necesitar una MIB.

Pandora FMS incluye algunos OID, en su base de datos, que puede usar directamente. Por ejemplo, a la hora de crear el módulo seleccione el componente Cisco MIBs para mostrar una lista de las MIB disponibles para Cisco:

Cap5 snmp 4.png


Una vez que seleccione este componente, puede elegir entre las MIB disponibles para él:

Cap5 snmp 5.png


Al hacerlo, se rellenarán los campos con la información necesaria.

Existen más MIB incluidas en Pandora FMS y con la versión Enterprise se incluyen paquetes de MIB para distintos dispositivos.

Una vez que haya introducido los datos, pulse el botón Create.

Para ver los datos del módulo recién creado, pulse sobre la solapa superior View, y en ella vaya a la parte de abajo, donde se mostrarán los datos una vez se empiecen a recibir.

Cap5 snmp 6.png


Para ver los datos de los módulos de tipo cadena de texto (en el ejemplo, la descripción del sistema System Description) vaya a la solapa superior de los datos Data:

Cap5 snmp 7.png


En rojo se resaltan los datos recibidos por el módulo de datos SNMP System Description.

Navegador MIB SNMP de Pandora FMS

Desde la versión 5, la herramienta de navegación SNMP incluida dentro de la consola de Pandora está disponible en la versión Open, y no requiere instalar software adicional, ni Flash, ni Java. Es puro Javascript y HTML. Por debajo utiliza las herramientas SNMP del sistema, parte del paquete net-snmp, que es uno de los requisitos del sistema, y que ya debería estar instalado.

Podemos acceder al explorador SNMP a través del menú SNMP. Actualmente sólo soporta v1 de SNMP. A partir de la versión 6.0, deberemos ir a Monitoring > SNMP > MIB Uploader.

Lo primero que hay que entender es que Pandora FMS hace un recorrido completo del árbol del dispositivo, por lo que si este es grande (como un switch) esta operación puede tardar varios minutos. Tambien podemos escoger explorar únicamente una subrama, con lo que nos ahorraremos mucho tiempo.

Por ejemplo, para sacar la informacion de CISCO únicamente, podria explorar su sub-mib enterprise de cisco que empieza por :

 .1.3.6.1.4.1.9

El explorador se utiliza para "navegar", esto es, ir desplegando las ramas y obteniendo los valores, pulsando en el icono del ojo. El sistema pedirá esa informacion al sistema y además mostrará (si esta disponible) la informacion del OID solicitado. Si no existe informacion sobre el OID del dispositivo, esta se muestra unicamente en formato numerico. La informacion descriptiva de los OID se almacena mediante las mibs [1]. Si no dispone de una MIB para el dispositivo que desea explorar, probablemente tenga que recurrir a buscar "trozos de informacion" en la informacion visualizada por pandora, lo cual es complejo y lleva tiempo.

El explorador SNMP de Pandora, permite buscar una cadena de texto tanto en los valores de OID's obtenidos como en los valores traducidos de los propios OID's (si estan disponibles). Esto es especialmente útil para buscar cadenas conocidas concretas, y localizar su OID. Si localiza varias entradas, nos permitirá ir saltando de una ocurrencia a otra, y las mostrará resaltadas en amarillo.



Snmp browser module creator.png




Gestor de MIBS

A través de Pandora podemos subir y gestionar las MIBS (locales a pandora) para poder incorporar nuevas mibs o borrar las que no nos interesen. Estas Mibs las usará solo Pandora, que además usará las del sistema operativo (en /usr/share/snmp/mibs). Pandora FMS utilizará el path {PANDORA_CONSOLE}/attachment/mibs para almacenar las mibs.



New snmp browser mibmanager.png



Es importante destacar que el gestor de mibs de Pandora sólo gestiona las mibs de "polling" que para nada tiene que ver con las mibs de traps SNMP. Para esto hay un gestor, en la versión Enteprise de Pandora FMS.

Existe una colección "preempaquetada" de mibs en la página de GetIf, uno de los mejores navegadores gratuitos de SNMP para Windows [2].

Uso del explorador SNMP en el gestor de módulos de Pandora

Desde el editor de modulos SNMP, cuando creemos o editemos un módulo de red, haciendo click en el boton de "Navegador MIB" abriremos una ventana flotante que nos mosntrará el arbol SNMP del dispositivo (si hemos puesto la IP y las credenciales). Una vez escogido el OID que buscamos, haciendo click en el icono de la mano con el dedo apuntando hacia abajo, escogeremos ese OID y lo pasaremos al campo correspondiente de la definición del módulo, de forma automática, para su uso con Pandora.




Browser snmp enter the browser dragon.png





Snmp browser module creator.png



Wizard SNMP de Pandora FMS

En la vista de administración de un agente, hay un conjunto de herramientas para crear módulos de formar remota: El wizard de agente.



Agent wizard.png



Algunas de estas herramientas utilizan SNMP para extraer información del dispositivo y ponerla en un combo de un formulario. De esta forma es posible crear en pocos pasos docenas de módulos personalizados.

Wizard SNMP



Agent wizard snmp wizard.png



Deberás definir la IP de destino, la comunidad y otros parámetros optativos (SNMP v3 está soportado) para hacer un Walk a la máquina.



Snmp wizard form.png



Una vez se reciba la información correctamente, aparecerá un fromulario para la creación de módulos:



Snmp wizard module creator.png



Con el Wizard SNMP es posible crear módulos de varios tipos de datos SNMP:

  • Dispositivos
  • Procesos
  • Espacio libre en disco
  • Sensores de temperatura
  • Otros datos SNMP

Seleccionarás el tipo de módulo y pasarás los elementos que quieras del combo de la izquierda al de la derecha. Cuando acabes este proceso podrás hacer click en el botón de Crear módulos.

Este wizard creará dos tipos de módulos:

  • Módulos SNMP para las consultas con OID estático (Sensores, memoria, CPU, etc.).
  • Módulos Plugin para las consultas con OID dinámico o los datos calculados (Procesos, Espacio en disco, memoria usada expresada en porcentaje, etc).


Template warning.png

Para los módulos de tipo plugin usaremos el plugin de SNMP remoto. Por lo que si el plugin no está instalado en el sistema, estas características permanecerán desactivadas. El plugin deberá tener el nombre "snmp_remote.pl". La localización donde esté alojado no importará.

 


SNMP Interfaces wizard



Agent wizard snmp interfaces wizard.png



En el Wizard de agente hay un Wizard SNMP específicamente creado para la navegación de Interfaces.

Este Wizard navega por la rama de SNMP IF-MIB::interfaces, ofreciendo la posibilidad de crear múltiples módulos de varios interfaces con la selección múltiple.


Como el Wizard SNMP, después de seleccionar la IP de destino, comunidad, etc. el sistema hará una consulta SNMP a la máquina destino y rellenará el formulario para la creación de módulos.


Usándolo, podrás seleccionar una o más interfaces del combo de la izquierda. Espués, en el de la derecha aparecerán los elementos comunes a ellos (Descripción, Velocidad, Tráfico entrante/saliente...). Podrás seleccionar uno o más elementos del combo y hacer click en Crear módulos para crear los módulos seleccionados para cada interfaz seleccionada en el combo de la izquierda.




Agent wizard snmp interfaces creation.png



Estudio de MIB con herramientas externas e integración en Pandora FMS

Para realizar un análisis de los posibles OID para utilizar en Pandora FMS, se recomienda utilizar un navegador MIB para analizar las MIB ofrecidas por cada fabricante. Estos navegadores MIB son herramientas de escritorio que leen, procesan, analizan y muestran al usuario el árbol completo de los OID de cada MIB, permitiendo buscar y entender qué OID son las necesarios para monitorizar nuestros dispositivos.

Se proponen las siguientes herramientas de gestión de MIB:

  • iReasoning MIB Browser (Windows, Linux, Java): [3]
  • Get-If Free MIB Browser (Windows): [4]
  • TKMib: Para UNIX, estándar en la mayoría de las distribuciones de GNU/Linux.

Las capturas mostradas se han realizado trabajando sobre la herramienta de iReasoning.

En la primera captura se puede ver una petición del dispositivo con una MIB cargada (MIB2 default) que reconoce algunos de los OID presentes. Estos OID se pueden representar como cadena o de forma numérica. Pandora FMS entiende ambos, pero sólo es capaz de resolver los OID alfanuméricos si tiene las MIB correctas cargadas en el sistema operativo. Lo idóneo, y más portable, es utilizar OID numéricos.



Snmp manager 1.jpg



En la segunda captura podemos ver el resultado de hacer un walk recursivo sobre una rama de la cual no disponemos MIB, resulta en una serie de OID numéricos que no sirven para nada, ya que no se tiene referencia de para qué sirven o qué tipo de datos ofrecen.



Snmp manager 2.jpg



Al margen de todo lo que podamos hacer con una herramienta de exploración MIB, podemos utilizar referencias de OID a través de índices de OID (algunos fabricantes disponen de MIB y referencias de OID), o por medio de enlaces que recopilan OID interesantes. Otros fabricantes de pilas SNMP documentan con lenguaje natural sus catálogos SNMP y son fáciles de entender y obtener el OID que necesitamos (es el caso UCD-SNMP, la pila SNMP que utilizan la mayoría de sistemas Unix). Muchas otras pilas SNMP de sistemas operativos, como los AIX o Windows también están extensamente documentadas.

Enlaces recomendados para trabajar con SNMP

  • Full OID Catalog for CISCO (extremadamente útil): [5]
  • HP Printer MIB: [6]
  • Nagios Exchange - SNMP [7]
  • Algunos OID SNMP frecuentemente usados en routers: [8]

Propiedades avanzadas comunes de los módulos de red

La siguiente pantalla muestra las propiedades avanzadas para la configuración de los módulos de red:

Cap5 snmp 8.png


Description

Descripción del módulo. De forma predeterminada ya existe una descripción, que se puede cambiar.

Custom ID

Identificador personalizado necesario si se desea que el servidor envíe mensajes multicast con información sobre los agentes o utilizar este campo para integrar los datos de Pandora FMS en un sistema externo de información, como una CMDB.

Interval

Intervalo de ejecución del módulo, puede ser distinto al del agente, de hecho en el ejemplo lo es.

Post process

posprocesado del módulo. Sirve para multiplicar o dividir el valor devuelto, como por ejemplo cuando se obtienen bytes y se desea mostrar el valor en Megabytes.

Min. Value

Valor mínimo del módulo. Cualquier valor por debajo de éste se tomará como inválido y se descartará.

Max. Value

Valor máximo del módulo. Cualquier valor por encima de éste se tomará como inválido y se descartará.

Export target

Sirve para exportar los valores devueltos por el módulo a un servidor de exportación. Sólo está disponible en la versión Enterprise de Pandora FMS y si se ha configurado un servidor de exportación. Consultar la sección referente al servidor de exportación para obtener más detalles.


Module advanced.png


Unit

Sirve para asignar una unidad a los datos del módulo.

Tags available

Sirve para asignar alguno de los tags disponibles al módulo.

Quiet

Los datos del módulo se siguen almacenando, pero se paran los eventos y las alertas.


Module advanced2.png


Critical instructions

Se mostrarán instrucciones cuando el estado del módulo sea crítico.

Warning instructions

Se mostrarán instrucciones cuando el estado del módulo sea warning.

Unknown instructions

Se mostrarán instrucciones cuando el estado del módulo sea desconocido.

Cron

Cuando se selecciona esta opción, los intervalos del módulo serán ignorados y se ejecutará en la fecha indicada aquí.

Timeout

Tiempo que espera el agente a la ejecución del módulo expresado en segundos.

Category

Si se necesita agrupar o categorizar los módulos de forma especial, se puede asignar una categoría.

Monitorización de Windows remotos con WMI

Para monitorizar de forma remota un equipo o un servicio de un equipo Windows de forma remota, a través de WMI. Las consultas se hacen en WQL, una especie de lenguaje SQL específico de Microsoft para consultas internas al sistema operativo, y se puede realizar cualquier consulta que aparezca en la base de datos de Microsoft.

Existen herramientas, como WMI Explorer que permiten explorar el árbol entero de valores WMI y que pueden resultar muy útiles para localizar aquellos valores WMI que más nos interesan ya que los servidores Windows "standard" pueden disponer de más de 1,000 consultas diferentes, y con software adicional, con sus propias fuentes WMI, este número se incrementa. Por ello no se trata sólo de disponer de un catálogo de módulos ya hechos, sino de disponer de las herramientas para encontrar lo que mas útil consideramos en nuestro caso.

Captura de pantalla de WMI Explorer funcionando en Windows



Wmiexplorer.png



NOTA: para utilizar el servicio de monitorización por WMI, hay que activarlo en el fichero de configuración del servidor de pandora /etc/pandora/pandora_server.conf de la siguiente manera:

 # wmiserver : 1 or 0. Set to 1 to activate WMI server with this setup
 # DISABLED BY DEFAULT
   wmiserver 1

Para comenzar a monitorizar por WMI, primero se deberá crear el agente correspondiente para monitorizar el servicio, por ello se empezará por ahí.

En la sección de administración de la consola de Pandora FMS pulse sobre Manage agents.

Nono.png


En la siguiente pantalla pulse el botón Create agent:



Nona.jpg


Rellene los datos para su nuevo agente y pulse el botón Create agent:



Rellene.jpg


Una vez que haya creado el agente, pulse sobre la solapa superior de los módulos (Modules). En ella, seleccione crear un nuevo módulo de red y pulse el botón Create:



Feo.jpg


En el siguiente formulario se presentarán los campos necesarios para poder monitorizar remotamente el equipo Windows a través de WMI. Se deberán rellenar los campos necesarios, como:

Name

Nombre del módulo

Type

Tipo de dato monitorizado

Target

IP del equipo remoto a monitorizar.

Namespace

Espacio de nombres WMI, en algunas consultas este campo es diferente de cadena vacía (por defecto), dependiendo del proveedor de información de la aplicación que se monitorice.

Username

Nombre del usuario administrador o de otro usuario que tenga privilegios para ejecutar consultas WMI de forma remota.

Password

Contraseña para el usuario administrador o el usuario suministrado.

WMI Query

Consulta WMI, similar a una sentencia en SQL, veamos algunos ejemplos:

SELECT LoadPercentage from Win32_Processor WHERE DeviceID = "CPU0"
SELECT SerialNumber FROM Win32_OperatingSystem
SELECT AvailableBytes from Win32_PerfRawData_PerfOS_Memory
SELECT DiskWriteBytesPersec from Win32_PerfRawData_PerfDisk_PhysicalDisk WHERE name = "_Total"

Key string

Opcional, campo para comparar con la cadena devuelta por la consulta, y de existir el módulo devuelve 1 ó 0, en lugar de la cadena en sí.

Field number

El número del campo devuelto empezando desde 0 (las consultas WMI pueden devolver más de un campo). En la mayoría de las veces es 0 o 1.

Rellene los campos necesarios:



Campos.jpg



Las opciones avanzadas son iguales que para todos los módulos de red, consulte la sección de los campos avanzados de red si necesita obtener más información. Note que el módulo ha obtenido la dirección IP del agente. Si lo desea, ésta puede ser diferente. Una vez que termine de definir el módulo, pulse el botón Create.

Si no conoce los parámetros exactos, puede seleccionar uno de los predeterminados incluidos en la base de datos de Pandora FMS. Para ello, seleccione el componente de módulo WMI:



Galleta.jpg


Y después seleccione una comprobación WMI de las posibles:



Galletita.jpg



La información necesaria se rellena automáticamente, salvo el usuario y la contraseña. Note que debe introducir un usuario con permisos de administración y su contraseña, de lo contrario el módulo no podrá devolver ningún valor:



Otro.jpg


Una vez que haya terminado de configurar el módulo, pulse el botón Create.

En la siguiente pantalla se mostrarán los módulos para el agente, el módulo Windows version añadido:



General.png


Como se ve, existe una advertencia sobre los módulos. La advertencia sólo significa que aún no se ha recibido ningún dato en el módulo, ya que se acaban de añadir. Una vez que se comiencen a recibir datos, la advertencia desaparecerá.

Para ver los datos del módulo recién creado, pulse sobre la solapa superior View, y en ella vaya a la parte de abajo, donde se mostrarán los datos una vez se empiecen a recibir.



Generala.png



La versión Enterprise de Pandora FMS dispone de más de 400 módulos WMI de monitorización remota para Windows, cubriendo las tecnologías:

  • Active Directory
  • BIOS
  • Información del sistema
  • Información de Windows
  • Impresoras
  • MSTDC
  • IIS
  • LDAP
  • Microsoft Exchange

Wizard WMI

En el Wizard de agente (Pestaña en la vista de administración de un agente), hay un Wizard WMI, usado para navegar y crear módulos con consultas WMI a un agente específico.



Agent wizard wmi wizard.png



Deberás especificar el usuario y password del Administrador de la máquina destino para hacer las primeras consultas WMI. Esta información será utilizada para la creación de módulos.



Wmi wizard module creator.png



Con el Wizard WMI es posible crear módulos de diferentes tipos de información WMI:

  • Servicios: Se crearán monitores booleanos en estado normal si el servicio está corriendo y estado crítico cuando se encuentre detenido.
  • Procesos: Los monitores de procesos recibirán información solamente cuando el proceso esté activo. De lo contrario, caerán en estado desconocido.
  • Espacio libre en disco'
  • Componentes WMI: En este caso escogerás entre los componentes WMI registrados en el sistema (Administración->Gestionar módulos->Componentes de red)

Seleccionas el tipo de módulo y pasas los elementos que quieras del combo de la izquierda al de la derecha. Cuando finalices este proceso haz click en el botón Crear módulos.

Monitorización con Plugins (Complementos)

A diferencia del resto de componentes, de forma predeterminada Pandora FMS no incluye ningún complemento pre-configurado, por lo tanto primero se deberá crear y configurar un complemento, para después añadírselo al módulo de un agente. No obstante Pandora FMS sí incluye complementos en los directorios de instalación, pero como ya se ha dicho no están configurados en la base de datos.

Para añadir un complemento existente a Pandora FMS, ir a la sección de administración de la consola, y en ella, pulsar sobre Manage servers; después pulsar Manage plugins:



Verdecito1.jpg



Una vez en la pantalla de gestión de los complementos, pulsar el botón Add para crear un nuevo complemento, ya que no habrá ninguno.



Verdecito2.jpg


Rellenar el formulario de creación de complementos con los siguientes datos:

Plugin creation.png

Create plugin2.png

Create plugin3.png

Name

Nombre del complemento, en este caso UDP port check.

Plugin type

Hay dos tipos de complementos:los estándar (standard) y los de tipo Nagios. Los complementos estándar son scripts que ejecutan acciones y admiten parámetros. Los complementos de Nagios son, como su nombre indica, complementos de Nagios que se pueden usar en Pandora FMS. La diferencia estriba principalmente en que los plugins de nagios devuelven un error level para indicar si la prueba ha tenido éxito o no.

Si quiere usar un plugin de tipo Nagios y quiere obtener un dato, no un estado (Bien/Mal), puede utilizar un plugin de tipo Nagios en el modo "Standard".

En este caso (para el plugin de ejemplo, UDP port check), seleccionaremos Standard.

Max. timeout

Es el tiempo de expiración del complemento. Si no se recibe una respuesta en ese tiempo, se marcará el módulo como desconocido y no se actualizará su valor. Este es un factor muy importante a la hora de implementar monitorización con plugins, ya que si el tiempo que tarda en ejecutar el plugin es mayor que este numero, nunca podremos obtener valores con él. Este valor siempre debe ser mayor que el tiempo que tarde normalmente en devolver un valor el script/ejecutable usado como plugin. Si no se indica nada, se utilizará el valor indicado en la configuracion como plugin_timeout.

En este caso, seleccionamos 15.

Description

Descripción del complemento. Escribir una breve descripción, como por ejemplo: Check a remote UDP port (by using NMAP). Use IP address and Port options.

Plug-in command

Es la ruta a donde está el comando del complemento. De forma predeterminada, si la instalación ha sido estándar, estarán en el directorio /usr/share/pandora_server/util/plugin/. Aunque puede ser cualquier ruta del sistema. Para este caso, escribir /usr/share/pandora_server/util/plugin/udp_nmap_plugin.sh en el campo.

El servidor de Pandora ejecutará ese script, por lo que éste debe tener permisos de acceso y de ejecución sobre él.

Plug-in parameters

Una cadena con los parámetros del plugin, que irán tras el comando y un espacio en blanco. Este campo acepta macros tales como _field1_ _field2_ ... _fieldN_.

Parameters macros

Es posible agregar macros ilimitadas para usarlas en el campo de los parámetros del plugin. Estas macros aparecerán como campos de texto en la configuración del módulo.

Cada macro tiene 3 campos:

  • Description: Una cadena corta descriptiva de la macro. Será la etiqueta que aparecerá junto al campo en el formulario.
  • Valor por defecto: Valor asignado al campo por defecto.
  • Ayuda: Un texto explicativo de la macro.

Ejemplo de la configuración de macros:



Macro configuration.png



Ejemplo de esta misma macro en el editor del módulo:



Macro editor.png



Macros internas

De una forma similar a las alertas, también se pueden utilizar macros internas en la configuración de plugins.

Las macros soportadas son las siguientes:

  • _agent_: Nombre del agente al que pertenece el módulo.
  • _agentdescription_: Descripción del agente al que pertenece el módulo.
  • _agentstatus_ : Estado actual del agente.
  • _address_: Dirección del agente al que pertenece el módulo.
  • _module_: Nombre del módulo.
  • _modulegroup_: Nombre del grupo del módulo
  • _moduledescription_: Descripción del módulo.
  • _modulestatus_: Estado del módulo.
  • _moduletags_: Tags asociados al módulo.
  • _id_agent_: ID del agente, util para construir directamente la URL o redireccionar a la consola de Pandora FMS.
  • _policy_: Nombre de la política a la que pertenece el módulo (si se da el caso).
  • _interval_: Intervalo de ejecución del módulo.
  • _target_ip_: Dirección IP del destino del módulo.
  • _target_port_: Puerto del destino del módulo.
  • _plugin_parameters_: Parámetros de Plug-in del módulo.
  • _email_tag_: Emails asociados a tags de módulos.

Después de configurarlo, pulsar el botón Create y comprobar que se ha creado correctamente el complemento:



Verdecito2.jpg


El código del complemento se puede mirar en la dirección proporcionada, siendo éste:

#!/bin/bash
# This is called like -p xxx -t xxxx
HOST=$4
PORT=$2
nmap -T5 -p $PORT -sU $HOST | grep open | wc -l

Que básicamente une el comando y los parámetros, reemplazando las macros por sus valores y ejecuta un nmap UDP (-sU) rápido (-T5) y que cuente (wc –l) la cantidad de puertos abiertos(grep open).

Una vez creado el complemento, para poder usarlo en un agente, se deberá crear un agente en caso de que no se haya hecho antes. En la sección de administración de la consola de Pandora FMS pulse sobre Manage agents:



Verdecito5.jpg



En la siguiente pantalla pulse el botón Create agent:



Verdi1.jpg


Rellene los datos para su nuevo agente y pulse el botón Create agent:


Trescientos.jpg

Una vez que haya creado el agente, pulse sobre la solapa superior de los módulos (Modules). En ella, seleccione crear un nuevo módulo de red y pulse el botón Create:


Trescientos1.jpg

En el siguiente formulario, rellene los campos vacíos, seleccione el tipo de módulo Generic module to adquire numeric data, especifique la dirección IP contra la que realizar el análisis, y también el puerto sobre el que hacerlo:




Example1 edition module.png


Una vez que haya finalizado pulse el botón Create.

En la siguiente pantalla se mostrarán los módulos para el agente, el módulo Nmap añadido:



Topito1.jpg


Como se ve, existe una advertencia sobre los módulos. La advertencia sólo significa que aún no se ha recibido ningún dato en el módulo, ya que se acaban de añadir. Una vez que se comiencen a recibir datos, la advertencia desaparecerá.

Para ver los datos del módulo recién creado, pulse sobre la solapa superior View, y en ella vaya a la parte de abajo, donde se mostrarán los datos una vez se empiecen a recibir.



Topito2.jpg


Para ver los datos de los módulos de tipo cadena de texto (en el ejemplo, la descripción del sistema System Description) vaya a la solapa superior de los datos,Data:

Ejemplo #1: Módulo de complemento para MySQL

Este es otro ejemplo, algo más complejo de como implementar un plugin, en este caso otro plugin por defecto que viene con Pandora, el plugin de chequeo de MYSQL.

Cree un módulo de complemento (Administration -> Manage servers -> Manage plugins) para MySQL con los siguientes datos:

  • Nombre: MySQL
  • Plugin type: Standard
  • Max. timeout: 10 seconds
  • Descripcion:

MySQL check plugin

  • Plugin command: /usr/share/pandora_server/util/plugin/mysql_plugin.sh
  • Plugin parameters: -s _field1_ -u _field2_ -p _field3_ -q _field4_
  • Macro _field1_:
    • Descripción: IP Address
    • Valor por defecto: X.X.X.X
  • Macro _field1_:
    • Descripción: User
    • Valor por defecto: User
  • Macro _field1_:
    • Description: Password
    • Valor por defecto: Password
  • Macro _field1_:
    • Descripción: Check
    • Valor por defecto: Connections
    • Ayuda: Possible values: Connections/Com_select/Com_update/Innodb_rows_read

El complemento quedaría como sigue:



Plugin mysql1.png
Plugin mysql2.png
Plugin mysql3.png
Plugin mysql4.png

Este complemento proporciona cuatro comprobaciones:

  • -q Connections: Conexiones
  • -q Com_select: Número de consultas select desde el inicio
  • -q Com_update: Número de consultas update desde el inicio
  • -q Innodb_rows_read: Lecturas de filas Innodb

Cree un módulo en el agente del equipo donde está instalado Pandora FMS y asígnelo; su nombre será Mysql Connections, usando como complemento él mismo (MySQL), como IP localhost, como usuario pandora, como contraseña la contraseña de la base de datos de Pandora, y cp,p comprobación Connections.

El módulo para crear quedaría como sigue:



Plugin mysql module.png
Mysql module2.png


Una vez que lo cree, aparecerá en el listado de módulos:



Fosforo3.jpg


Y la información en la página principal (solapa View):



Faltaba.jpg


Ejemplo #2: Módulo de complemento para servidor SMTP

A partir de la versión 4.0.2 el plugin remoto de SMTP viene incluido de serie. Si está usando una versión anterior, puede instalar el servidor de la librería de módulos pública de Pandora FMS (ver pandorafms.org).

Este plugin envia un correo utilizando un servidor remoto, se puede especificar IP del servidor, puerto, usuario y password y esquema de autenticación, asi como el correo de destino y el correo de destino. Devuelve 1 si funciona y 0 si falla, es decir, se debería utilizar usando el tipo generic_proc.

Esta es una captura de la configuración de un módulo usando el plugin:



Pandora plugin SMTP5.png
Smtp module2.png


Ejemplo #3: Módulo de complemento para servidor DNS

A partir de la versión 4.0.2 el plugin remoto de DNS viene incluido de serie. Si está usando una version anterior, puede instalar el servidor de la librería de módulos pública de Pandora FMS (ver pandorafms.org).

Este plugin verifica que la dirección IP de un dominio dado (p.e: artica.es) es una IP determinada, utilizando como referencia un DNS externo. De esta forma podemos validar si ese dominio está devolviendo la IP correcta, para evitar balanceos innecesarios, ataques DNS, etc. Devuelve 1 si funciona y 0 si falla, es decir, se deberia utilizar usando el tipo generic_proc.

Esta es una captura de la configuración de un módulo usando el plugin:



Pandora plugin DNS5.png
Dns module2.png


Ejemplo #4: Módulo de complemento para puerto UDP

A partir de la versión 4.0.2, el plugin remoto de puerto UDP viene incluido de serie. Si está usando una versión anterior, puede instalar el servidor de la librería de módulos pública de Pandora FMS (ver pandorafms.org).

Este plugin verifica que para una dirección y un puerto UDP, el puerto responde. Devuelve 1 si funciona y 0 si falla, es decir, se debería utilizar usando el tipo generic_proc.

Esta es una captura de la configuración de un módulo usando el plugin:



Pandora plugin UDP5.png
Udp module2.png


Monitorización intensiva

Un módulo remoto (ya sea un módulo de red, un módulo de plug-in etc.) puede devolver datos poco fiables for diferentes motivos. Por ejemplo, un módulo de ping puede devolver 0 aunque un host esté arriba por problemas de congestión de la red.

Dependiendo de cómo esté configurado Pandora FMS, esto puede desencadenar una serie de eventos no deseados (cambios de estados, disparos de alertas, envío de emails...).

Para solucionar esta situación Pandora FMS dispone de umbrales de FF personalizados para cada módulo. El umbral de FF es el número de veces adicionales que un módulo se ejecutará antes de cambiar su estado (un valor de 0 quiere decir que esta característica está deshabilitada). Sólo si la condición que provoca el cambio de estado se mantiene en todos los reintentos se cambia el estado del módulo.


Ff threshold.png


El intervalo de estas ejecuciones adicionales se puede especificar con el intervalo de FF.


Ff interval.png


Todo esto se ve mejor con un ejemplo: Supongamos que tenemos un módulo WMI que devuelve la cantidad de espacio en disco libre en megabytes. Configuramos este módulo para que se ponga en estado crítico cuando este valor sea menor que 100. A continuación creamos una alerta que envía un email al administrador de sistemas cuando el módulo está crítico para que éste pueda liberar algo de espacio. Pero, por un bug de software, cada cierto tiempo el valor devuelto es mucho menor que el valor actual. Para solucionar este problema configuramos el umbral de FF del módulo a uno y el intervalo de FF a 30 segundos. Esto quiere decir que la primera vez que el módulo reciba un dato menor que 100, el módulo se volverá a ejecutar pasados 30 segundos, y sólo si sigue siendo menor que 100 se pondrá en estado crítico. De otro modo el módulo continúa su ejecución normal.

Esto funciona bien para módulos síncronos, pero los módulos asíncronos necesitan un parámetro de configuración adicional. Como no envían datos en intervalos regulares, comprobar valores consecutivos puede no resultar muy útil si están muy separados en el tiempo. En este caso, hay que especificar un timeout de FF. Lo que implica que los valores consecutivos deben ocurrir dentro del intervalo de tiempo especificado.


Ff timeout.png


Desde la versión 5.1, se pueden definir umbrales de FF individuales para cada estado, de modo que un módulo puede necesitar dos valores consecutivos para cambiar a estado crítico, pero sólo uno para volver a estado normal.

Volver a Indice de Documentacion Pandora FMS