# Parámetros y configuración **Parámetros**
--confRuta al archivo de configuración
--target\_databasesRuta al archivo de configuración que contiene los targets de las bases de datos
--target\_agentsRuta al archivo de configuración que contiene los targets de los agentes
--custom\_queriesRuta 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 > uri = < Cadena de conexión en formato URI; > threads = < Número de hilos que se usaran para la creación de agentes > modules_prefix = < Prefijo de módulos > 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 moitorización de estadísticas de consultas > network = < Activar con 1 para habilitar la moitorización de estadísticas de redes > latency = < Activar con 1 para habilitar la moitorización de estadísticas de latencia > ``` Ejemplo ``` agents_group_id = 10 interval = 300 uri = mongodb://172.17.0.3:27017 threads = 1 modules_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 bases de datos objetivo, separando cada base de datos por comas o por líneas. El formato para una base de datos será su nombre: Ejemplo ``` admin db_analytics db_geospatial db_guides ``` **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_databases --> Agentes de bases de datos en los que se creará el módulo. Selecionar segun el nombre que se le haya asignado al agente de la base de datos. El que se ha puesto en target agents. 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_databases all check_end check_begin name Getcollection description get collection datatype generic_data_string min_warning 10 target db.system.version.find({}) target_databases agente2 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") }) target_databases agente4 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({ "ejemplo: ``` db.mi_coleccion.find({ "_id": ObjectId("655b4a235d797f3769d6b03e") }) ```