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: Bosques Bases de datos Servidores (servicios) Hosts 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. Acceso desde el agente al puerto 8002 de uno de los nodos de su instalación de MarkLogic NoSQL. Usuario con permisos de lectura que pueda acceder a la API Rest ubicada en /manage/LATEST. Contraseña del usuario. Nombre del realm de la instalación. Conectividad desde el agente al puerto TCP  41121 de su servidor Pandora FMS. Conectividad TCP desde el agente a los puertos de los Appserver a monitorizar (en caso de monitorizar de puertos). 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: Tentacle (envío remoto). Copia local (para trabajo en modo plugin de servidor). 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. Bosques Bases de datos Servidores (servicios) Hosts 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__ Donde el tipo de objeto sigue el siguiente esquema: F : bosque (forest) DB : base de datos (database) S : servicio/aplicación ML (server) H : servidor (host) 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_ [] 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: Establecer el intervalo de los módulos. Lista de etiquetas (tags) que se agregarán a los módulos. Establecer el grupo de módulo (clasificatorio). Instrucciones para situación crítica. Instrucciones para situación de advertencia. Plantillas de alertas asignadas. # 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 generic_proc NoSQL 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 Possible error messages Online (boolean) Total rate Total load Deadlock wait load Journal write rate Secure (boolean) Databases State (boolean) Min capacity Foreign forests lag exceeded Pending lag Total rate Total load Forest count Rebalancing state Forest count Forests State Pending lag Enabled (boolean) Rebalancing state Local disk failover Total rate Total load Query read load Save write load Servers (services) Enabled (boolean) State