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 las 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 >
user = < Usuario de conexión >
password = < Contraseña >
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 >
database_summary = < Activar con 1 para habilitar la monitorización de estadísticas de la base de datos >
transactional_log = < Activar con 1 para habilitar la monitorización de estadísticas de log >
db_size = < Activar con 1 para habilitar la monitorización de estadísticas del tamaño de la base de datos >
cache_stats = < Activar con 1 para habilitar la monitorización de estadísticas de cache >
Ejemplo
agents_group_id = 10
interval = 300
user = sa
password = HHgD85V@
threads = 1
modules_prefix =
execute_custom_queries = 1
analyze_connections = 1
database_summary = 1
transactional_log = 1
db_size = 1
cache_stats = 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 podrá ser cualquiera de los siguientes:
ip/sid
ip:puerto/sid
En caso de no indicarse el puerto, se usará el puerto 50000 TCP por defecto para la conexión al objetivo.
Ejemplo
172.17.0.2:50000/SAMPLE
Cada línea del archivo debe representar una base de datos de destino independiente utilizando uno de estos formatos. Este archivo se utiliza para especificar las bases de datos que el complemento debe supervisar.
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.
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 apertura del módulo
name --> Nombre del módulo
description --> Descripción del módulo.
operation --> Tipo de operación: value (devuelve un valor simple) | full (devuelve todas las filas como string).
datatype --> Tipo de módulo: generic_data | generic_data_string | generic_proc.
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.
crontab --> Expresión cron de 5 campos (minuto, hora, día del mes, mes, día de la semana).
Solo se ejecuta la query cuando la fecha/hora actual coincide con la expresión.
Si no se especifica, la query se ejecuta en cada intervalo.
Formato: crontab <minuto> <hora> <día_mes> <mes> <día_semana>
Ejemplos:
* * * * * → cada minuto (siempre)
0 9 * * 1-5 → de lunes a viernes a las 09:00
*/15 * * * * → cada 15 minutos
* 12-15 * * 1 → los lunes entre las 12:00 y 15:59
target --> Consulta personalizada (solo se permiten SELECT).
target_databases --> Agentes de bases de datos en los que se creará el módulo.
Si se quiere aplicar a todos los elementos, se puede especificar: All o no especificarse directamente.
check_end --> Etiqueta de cierre del módulo
Módulo básico (sin crontab, se ejecuta siempre)
check_begin
name Select 1
description
operation value
datatype generic_data
min_warning 5
target VALUES (1);
target_databases all
check_end
Módulo contra una base de datos concreta
check_begin
name sace_controlators.total_registers
description Number of registros in sace_controlators table
operation value
datatype generic_data
min_warning 20
target SELECT COUNT(*) AS TotalRegistros FROM esquema.sace_controlators;
target_databases pandora
check_end
Módulo con operación full
check_begin
name operators.max_value.sace_controlators
description max value in column operators
operation full
datatype generic_data
target SELECT MAX(operators) AS ValorMaximo FROM esquema.sace_controlators;
target_databases pandora
check_end
Módulo con crontab (solo se ejecuta de lunes a viernes a las 09:00)
check_begin
name informe_diario
description Daily report query
operation value
datatype generic_data
target SELECT COUNT(*) AS registros FROM esquema.log_procesos WHERE fecha = CURRENT DATE;
target_databases all
crontab 0 9 * * 1-5
check_end
Módulo con crontab (solo en horario laboral de 8:00 a 18:00)
check_begin
name conexiones_activas_oficina
description Active connections during office hours
operation value
datatype generic_data
target SELECT COUNT(*) FROM SYSIBMADM.MON_CONNECTION_SUMMARY;
target_databases all
crontab * 8-17 * * 1-5
check_end
Módulo con crontab cada 30 minutos
check_begin
name check_cada_media_hora
description Check every 30 minutes
operation value
datatype generic_data
target SELECT COUNT(*) FROM SYSIBMADM.SNAPLOCKWAIT;
target_databases all
crontab */30 * * * *
check_end
Funcionamiento del filtro por crontab
- Al inicio de cada ejecución del plugin, se evalúan todas las custom queries.
- Las queries que no tienen el campo
crontabse ejecutan siempre (comportamiento clásico, retrocompatible). - Las queries que sí tienen
crontabsolo se incluyen si la fecha/hora actual coincide con la expresión cron. - Las queries descartadas por crontab no generan conexiones a base de datos ni consultas SQL.
- El filtro se aplica una sola vez antes de lanzar los hilos de monitorización.
Formato de la expresión cron
La expresión sigue el formato estándar de 5 campos separados por espacios:
| Campo | Valores permitidos |
|---|---|
| Minuto | 0-59 |
| Hora | 0-23 |
| Día del mes | 1-31 |
| Mes | 1-12 |
| Día semana | 0-7 (0 y 7 = domingo, 1 = lunes) |
Cada campo admite los siguientes formatos:
*— cualquier valorN— valor exacto (ej:5)N-M— rango (ej:9-17)*/N— cada N unidades (ej:*/15= cada 15 minutos)N-M/N— rango con paso (ej:0-30/10= 0, 10, 20, 30)A,B,C— lista de valores separados por comas