Pandora: Documentation es: Monitorizacion remota
Volver a Indice de Documentacion Pandora FMS
Contents
- 1 Monitorización remota
- 1.1 Introducción
- 1.2 Módulos remotos de red
- 1.3 Configuración genérica de un módulo para monitorización de red
- 1.4 Monitorización ICMP
- 1.5 Monitorización TCP
- 1.6 Monitorización SNMP
- 1.7 Propiedades avanzadas comunes de los módulos de red
- 1.8 Monitorización de Windows remotos con WMI
- 1.9 Monitorización con Plugins (Complementos) hasta la versión 4.0.x
- 1.10 Monitorización con Plugins (Complementos) desde la versión 5.0
1 Monitorización remota
1.1 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.
1.2 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).
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.
1.3 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 Manage agents:
En la siguiente pantalla, pulse el botón Create agent:
Rellene los datos para su nuevo agente y pulse el botón Create agent:
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:
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.
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:
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:
Para añadir otro tipo de comprobaciones de red, proceda de forma similar a la anterior, pero seleccionando otro tipo de módulos.
1.4 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.
1.5 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:
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.
1.6 Monitorización SNMP
1.6.1 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.
1.6.2 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, podiendo funcionar así como un "agente satélite" o "agente proxy" (segun literatura).
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.
1.6.3 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:
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:
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:
Una vez que seleccione este componente, puede elegir entre las MIB disponibles para él:
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.
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:
En rojo se resaltan los datos recibidos por el módulo de datos SNMP System Description.
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.
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.
1.6.4.1 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.
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].
1.6.4.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.
1.6.5 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.
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.

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]
1.7 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:
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.
1.8 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.
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.
En la siguiente pantalla pulse el botón Create agent:
Rellene los datos para su nuevo agente y pulse el botón Create agent:
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:
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:
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:
Y después seleccione una comprobación WMI de las posibles:
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:
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:
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.
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:
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
1.9 Monitorización con Plugins (Complementos) hasta la versión 4.0.x
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:
Una vez en la pantalla de gestión de los complementos, pulsar el botón Create para crear un nuevo complemento, ya que no habrá ninguno.
Rellenar el formulario de creación de complementos con los siguientes datos:
Name
Nombre del complemento, en este caso Nmap.
Plugin 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.
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, NMAP), 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, escribimos 15.
IP address option
Sirve para definir la interfaz de paso del parámetro de la dirección IP que se le pasa al plugin. Todos los plugins deben recibir al menos la dirección IP de destino de la prueba, que se le proporciona al asociar un modulo de tipo plugin a un agente.
Para que Pandora sepa como pasarle ese parámetro al plugin, se le debe decir con qué parámetro se le ha de pasar, y esto depende siempre del plugin y su interfaz, en este caso se le pasa con -t.
Port option
De igual manera que en el caso anterior, es necesario definir la interfaz que emplea el plugin. En este caso, el puerto destino de la prueba, que puede ser opcional. En este ejemplo, usaremos -p para pasar el puerto TCP destino de la prueba Nmap.
Password option / User option
Mas parámetros de interfaz, usados como campos usuario y password respectivamente. En este caso no lo usaremos, y lo dejaremos en blanco.
Description
Descripción del complemento. Escribir una breve descripción, como por ejemplo: Test # UDP open ports y si es posible especificar la interfaz completa de parámetros como ayuda para que alguien que revise posteriormente la definición del plugin sepa que parámetros acepta.
Pulsar el botón Create y comprobar que se ha creado correctamente el complemento:
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 utiliza los parámetros proporcionados de dirección IP y una opción de puertos para ejecutar 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:
En la siguiente pantalla pulse el botón Create agent:
Rellene los datos para su nuevo agente y pulse el botón Create agent:
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:
En el siguiente formulario, rellene los campos vacíos, seleccione el tipo de módulo Generic module to adquire numeric data, elimine las opciones de usuario y contraseña, especificando la dirección IP contra la que realizar el análisis, y también el puerto sobre el que hacerlo:
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:
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.
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:
1.9.1 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 command: /usr/share/pandora_server/util/plugin/mysql_plugin.sh
- Plugin type: Standard
- Max. timeout: 10
- IP address option: -s
- User option: -u
- Password option: -p
- Description: -q Connections
- -q Com_select
- -q Com_update
- -q Innodb_rows_read
El complemento quedaría como sigue:
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, y como contraseña la contraseña de la base de datos de Pandora. Introduzca en el campo Plugin parameters lo siguiente: –q Connections.
El módulo para crear quedaría como sigue:
Una vez que lo cree, aparecerá junto al módulo de Nmap:
Y la información en la página principal (solapa View):
Y la información detallada (solapa Data):
1.9.2 Ejemplo #2: Módulo de complemento para servidor SMTP
A partir de la version 4.0.2 el plugin remoto de SMTP 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 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:
1.9.3 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 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 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 debería utilizar usando el tipo generic_proc.
Esta es una captura de la configuración de un módulo usando el plugin:
1.9.4 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:
1.10 Monitorización con Plugins (Complementos) desde la versión 5.0
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:
Una vez en la pantalla de gestión de los complementos, pulsar el botón Create para crear un nuevo complemento, ya que no habrá ninguno.
Rellenar el formulario de creación de complementos con los siguientes datos:
Name
Nombre del complemento, en este caso Nmap.
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, NMAP), 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, escribimos 15.
Description
Descripción del complemento. Escribir una breve descripción, como por ejemplo: Test # UDP open ports y si es posible especificar la interfaz completa de parámetros como ayuda para que alguien que revise posteriormente la definición del plugin sepa que parámetros acepta.
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:
Ejemplo de esta misma macro en el editor del módulo:
Después de configurarlo, pulsar el botón Create y comprobar que se ha creado correctamente el complemento:
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:
En la siguiente pantalla pulse el botón Create agent:
Rellene los datos para su nuevo agente y pulse el botón Create agent:
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:
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:
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:
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.
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:
1.10.1 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:
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:
Una vez que lo cree, aparecerá junto al módulo de Nmap:
Y la información en la página principal (solapa View):
Y la información detallada (solapa Data):
1.10.2 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:
1.10.3 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:
1.10.4 Ejemplo #4: Módulo de complemento para puerto UDP
A partir de la version 4.0.2 el plugin remoto de puerto UDP 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 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: