Parámetros y configuración
Parámetros
| --conf | Ruta al archivo de configuración |
| --target_databases | Ruta al archivo de configuración que contiene los targets de las bases de datos |
| --target_agents | Ruta al archivo de configuración que contiene los targets de los agentes |
| --custom_queries | Ruta al archivo de configuración que contiene llos módulos con consultas personalizadas |
Archivo de configuración (--conf)
agents_group_id = < ID del grupo en el que se crearán los agentes >
interval = < Intervalo de monitorización de los agentes en segundos >
threads = < Número de hilos que se usaran para la creación de agentes >
scan_databases = < Activar con 1 para habilitar este token para monitorizar las bases de datos de las instancias configuradas >
agent_per_database = < Activar con 1 para habilitar este token para monitorizar las bases de datos de las instancias configuradas. >
db_agent_prefix = < Prefijo para los agentes de base de datos creados. >
modules_prefix = < Prefijo para los módulos creados >
execute_custom_queries = < Activar con 1 para habilitar el uso de consultas personalizadas >
analyze_connections = < Activar con 1 para habilitar la monitorización de conexiones >
engine_uptime = < Activar con 1 para habilitar la monitorización del tiempo en ejecución >
query_stats = < Activar con 1 para habilitar la monitorización de estadísticas de consultas >
network = < Activar con 1 para habilitar la monitorización de estadísticas de redes >
latency = < Activar con 1 para habilitar la monitorización de estadísticas de latencia >
Ejemplo
agents_group_id = 10
interval = 300
threads = 1
modules_prefix = Mongodb.
scan_databases = 1
agent_per_database = 1
db_agent_prefix = Mongodb.
execute_custom_queries = 1
analyze_connections = 1
network = 1
query_stats = 1
latency = 1
engine_uptime = 1
Listado de bases de datos objetivo (--target_databases)
El contenido del fichero será un listado de instancias objetivo, separando cada instancia por comas o por líneas. Se debe especificar el URI de conexion de cada una.
Ejemplo
mongodb://172.17.0.2:27017
mongodb://172.17.0.7:27017
Si que quiere monitorizar bases concretas de una instancia, se deben especificar con "|" y separando cada base de datos con ";".
Ejemplo :
mongodb://172.17.0.7:27017|pandora_db;pandora_db2
Si que quiere descartar bases concretas de una instancia, se deben especificar con "|" y separando cada base de datos con ";" , incluyendo un ! antes del "|":
Ejemplo :
mongodb://172.17.0.7:27017!|pandora_db;pandora_db2
Listado de agentes objetivo (--target_agents)
El contenido del fichero será un listado de bases de nombres de agentes, separando cada agente por comas o por líneas. Estos nombres de agentes se usarán para volcar la información de cada base de datos objetivo en el nombre de agente indicado correspondiente, en lugar de dejar que el plugin genere los nombres de agentes de forma automática.
La posición de cada nombre de agente en el listado debe coincidir con la posición de la base de datos objetivo en su propio listado, es decir, el nombre para la primera base de datos objetivo será el primer nombre de este listado, teniendo en cuenta que las líneas en blanco son ignoradas.
Ejemplo
agente1,,agente3
agente4
agente5,agente6,agente7,,agente9
Consultas personalizadas (--custom_queries)
Se debe introducir un módulo por cada consulta personalizada que se pretenda monitorizar. Los módulos deben seguir una estructura, que es la siguiente:
check_begin --> Etiqueta de abertura del módulo
name --> Nombre del módulo
description --> Descripción del módulo.
operation --> Tipo de operación, value | full -> value devuelve un valor simple, full devuelve todas las filas de una cadena
datatype --> Tipo de módulo
min_warning --> Configuración del umbral mínimo de warning
max_warning --> Configuración del umbral máximo de warning
str_warning --> Configuración de string de warning
warning_inverse --> Activar el intervalo inverso con 1 para umbral de warning
min_critical --> Configuración del umbral mínimo de critical
max_critical --> Configuración del umbral máximo de critical
str_critical --> Configuración de string de critical
critical_inverse --> Activar el intervalo inverso con 1 para umbral de crítico
module_interval --> Este intervalo se calcula como un multiplicador del intervalo del agente.
target --> Consulta personalizada
target_instances --> Las consultas personalizadas se ejecutaran en las bases de datos pertenecientes a las instancias configuradas aqui. Si no se especifica se monitaran todas, igual que si se especifica "all". Para elegir una o varias particulares separar por ","
target_databases --> Las consultas personalizadas se ejecutaran en las bases de datos configuradas aqui. Si no se especifica se monitaran todas, igual que si se especifica "all". Para elegir una o varias particulares separar por ","
check_end --> Etiqueta de cierre del módulo
Ejemplo
check_begin
name DatabaseStats
description Database statistics
operation value
datatype generic_data
target db.runCommand({ dbStats: 1 })
target_instances mongodb://172.17.0.2:27017
target_databases pandora_db, pandora_db2
check_end
check_begin
name Getcollection
description get collection
datatype generic_data_string
min_warning 10
target db.system.version.find({})
target_instances all
target_databases all
check_end
check_begin
name Getdocument
description get document
#operation value
datatype generic_data_string
min_warning 10
target db.mi_coleccion.find({ "_id": ObjectId("655b4a235d797f3769d6b03e") })
check_end
Consultas para el parámetro target de los módulos
Se pueden ejecutar comandos siguiendo el siguiente formato:
db.runCommand(< comando >)
o
runCommand(< comando >)
Conocer la respuesta esperada, para configurar el tipo de módulo en string o data según se requiera.
Por precaución solo se ejecutará el siguiente tipo de comandos : dbStats,collStats,find,cound,aggregate,listCollections
Se pueden ejecutar consultas find para obtener datos de las colecciones y documentos:
db.< colección >.find({})
o
< colección >.find({})
Con la posibilidad de especificar consultas dentro del metodo find:
db.< coleccion >.find({ "<columna de documento": "valor de la columna" })
ejemplo:
db.mi_coleccion.find({ "_id": ObjectId("655b4a235d797f3769d6b03e") })