Marklogic monitoring

Este plugin muestra múltiples métricas de las instalaciones de MarkLogic.

Introducción

El plugin de Pandora FMS para la monitorización de motores de bases de datos MarkLogic NoSQL, provee el conjunto de módulos necesarios para controlar el estado de los siguientes elementos de la arquitectura de ML:

Se mostrará información de cada uno de los elementos monitorizados, extrayendo esta información de la API Rest provista por defecto por el producto ML.

Podrá configurar el nivel de detalle que requiera, excluyendo elementos de la monitorización, o habilitando la generación de módulos de información avanzada.

Matriz de compatibilidad

Desarrollado bajo LATEST en MarkLogic 9.

No deberían encontrarse problemas de compatibilidad para ninguna versión del API inferior a esta.

Prerequisitos

Se requiere la siguiente información para configurar correctamente el complemento de monitorización MarkLogic:

Agente: máquina que ejecutará el complemento.

Configuración

Para configurar el plugin se necesita completar los siguientes elementos:

Configuración de acceso a la API Rest de MarkLogic

Configure los parámetros necesarios para garantizar que el plugin es capaz de conectar con la API, este bloque de configuración es estrictamente necesario.

Ejemplo:

# MarkLogic NoSQL Server access configuration
ml_server = your.marklogic.server
ml_port = 8002
ml_user = admin
ml_pass = admin
ml_realm = public
use_ssl = 0

Configuración de destino de información

El plugin dispone de dos modos de trabajo.

Como plugin de agente, enviará a la salida estándar como módulos  los mensajes informativos de operaciones realizadas. La información extraída de la API se enviará a su servidor de Pandora utilizando el método configurado en el archivo de configuración.

Ejemplo de configuración de métodos de transferencia:

# Pandora Server configuration
mode = tentacle
tentacle_ip = your.pandora.server
tentacle_port = 41121
tentacle_opts =
tentacle_client = /usr/bin/tentacle_client
local_folder = /var/spool/pandora/data_in
#tentacle_client = "C:\Program Files\pandora_agent\util\tentacle_client.exe"
temp = /tmp

Actualmente, se admiten los siguientes modos de transferencia:

Como plugin de servidor, los datos extraídos se enviarán en un XML en paralelo, tal y como sucede en el modo plugin de agente, pero en este caso, los mensajes de operación se mostrarán por la salida estándar de error (STDERR) y se retornará un valor numérico identificativo del estado de la ejecución. Este tipo de ejecución se puede lanzar desde el servidor de pandora o el cron de sistema.

Configuración de los agentes generados

Configuración de nombre

La información extraída de la instalación de MarkLogic NoSQL se envía a Pandora FMS clasificada como agentes por cada elemento significativo encontrado en el sistema.

Para controlar estos agentes y poder encontrarlos fácilmente en su sistema, se dispone de la posibilidad de configurar el nombre utilizando una cabecera de nombre común.

# Agent name personalization
agent_name_header = ML_

Siguiendo este ejemplo, todos los agentes generados por el complemento tendrán el nombre (agent_name): ML_<tipo de objeto>_<Nombre>

Donde el tipo de objeto sigue el siguiente esquema:

En el caso de los agentes de tipo Servicio/aplicación (S), es posible configurar el complemento para que los agentes generados indiquen el tipo de servidor del que se trata en su agent_name (HTTP, Task, webDAV, XDBC u ODBC):

# Show server type (http, task, webDAV, xdbc, or odbc) in the agent name.
show_server_type_in_agentname = 1

Quedando el nombre de agente como: ML_S_<Nombre> [<tipo>]

Nota importante: Tenga en cuenta que si se activa esta opción, los agentes de tipo Servicio/aplicación preexistentes dejarán de recibir datos del complemento, y se generarán agentes nuevos con el tipo de servidor incluido en su agent_name.

Configuración de grupo

Puede personalizar el intervalo del agente y el grupo al que pertenece personalizando la siguiente configuración:

# Agent configuration
agent_interval = 300
agent_group = MarkLogic

Puede indicar al complemento que, en caso de no existir, cree el grupo al que se asignarán los agentes. 

Nota importante: no utilizar la auto-creación de grupo si su Pandora FMS forma parte de un entorno con metaconsola. La edición o creación de grupos en nodos con metaconsola activa, pueden corromper la integridad de la sincronización de grupos del conjunto total de nodos y metaconsola.

Si su instalación no tiene metaconsola, puede configurar la auto-creación de grupo configurando los siguientes elementos:

# Create Group ~ Pandora FMS Console API
#  DO NOT ENABLE IT IF THERE IS AN ACTIVE METACONSOLE IN YOUR ENVIRONMENT
autocreate_group = 1

# Pandora API configuration
api_url = http://your.pandora.server/pandora_console/include/api.php
api_user = admin
api_user_pass = pandora
api_pass = 1234

# Group definition (global name: agent_group)
group_icon = Servers

Configuración de los módulos

Utilizando el fichero de configuración, puede personalizar los siguientes parámetros de los módulos generados por el complemento:

# Module configuration
# Module interval
module_interval = 1

# Tags (comma separated)
# Ensure tags exists in your environment
module_tags  = NoSQL

# Module group (default)
module_group =

# Warning instructions
#warning_instructions = Some text to guide team to solve a warning condition

# Critical instructions
#critical_instructions = Some text to guide team to solve a critical condition

# Define as many tokens as templates are needed to be applied
# global_alerts = critical condition
# global_alerts = warning condition

Personalización de la monitorización

Puede controlar los elementos de su infraestructura que van a ser monitorizados:

# Information filter
check_hosts = 1
check_databases = 1
check_forests = 1
check_servers = 1

Además de la monitorización de puerto para los Appserver con el parámetro check_server_ports:

check_server_ports = 1

Esta opción permite monitorizar la conectividad vía TCP del puerto de servicio de los Appservers, creando un módulo remoto en los agentes que indica su estado operativo.

Puede también personalizar el nivel de detalle (número de módulos) que genera el complemento habilitando el modo detallado o desactivándolo:

# Detailed information (generate extra modules)
show_detailed_hosts = 0
show_detailed_databases = 0
show_detailed_forests = 0
show_detailed_servers = 1

Nota: Se recomienda habilitar la información detallada en los módulos de entidades servicio.

Puede configurar excepciones de los elementos para evitar monitorizar entidades no deseadas:

# Databases
# System databases: triggers, modules, security, schema
exlude_databases =

# Forests
# System forests: triggers, modules, security, schema
exlude_forests =

# Servers
exlude_servers =

 

Ejecución manual

Para ejecutar el complemento de monitorización del sistema MarkLogic NoSQL, debe ejecutarlo pasando como argumento el fichero de configuración:

$ perl pandora_marklogic.pl
Pandora FMS Plugin for MarkLogic NoSQL Monitoring

At least one parameter is needed by this plugin:
Usage: pandora_marklogic.pl pandora_ml.conf

En caso de error podrá consultar los posibles fallos encontrados en la descripción del módulo de mensaje de plugin:

$ perl pandora_marklogic.pl pandora_ml.conf
<module>
    <name><![CDATA[Plugin message]]></name>
    <type>generic_proc</type>
    <data><![CDATA[0]]></data>
    <description><![CDATA[ No response from http://your.marklogic.server:8002/manage/LATEST/hosts?format=json
  No response from http://your.marklogic.server:8002/manage/LATEST/databases?format=json
    No response from http://your.marklogic.server:8002/manage/LATEST/forests?format=json
  No response from http://your.marklogic.server:8002/manage/LATEST/servers?format=json
 ]]></description>
    <tags>NoSQL</tags>
</module>

Ejemplo de despliegue a través del CRON de Sistema:

# START: Marklogic plugin
*/5 * * * * root perl /usr/share/pandora_server/util/pandora_marklogic.pl /usr/share/pandora_server/util/testing.conf
# END: Marklogic plugin

 

Módulos generados por el plugin

A continuación puedes encontrar un resumen de los módulos generados por el plugin por tipo de instancia:

Hosts

Databases

Forests

Servers (services)