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 >
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 >
fragmentation_ratio = < Activar con 1 para habilitar la monitorización de estadísticas de ratio de fragmentación >
cache_stats = < Activar con 1 para habilitar la monitorización de estadísticas de cache >
scan_databases = < Activar con 1 para descubrir las bases de datos del objetivo PostgreSQL >
agent_per_database = < Activar con 1 para crear un agente independiente por cada base de datos descubierta >
db_agent_prefix = < Prefijo para los nombres de los agentes individuales de cada base de datos >
entities_list = < Ruta al fichero persistente de entidades descubiertas >
enable_entities_interval = < Activar con 1 para habilitar la revalidación periódica del fichero de entidades >
entities_interval = < Intervalo de revalidación del fichero de entidades en segundos >
check_storage_stats = < Activar con 1 para habilitar estadísticas de almacenamiento de las bases de datos >
check_query_performance = < Activar con 1 para habilitar estadísticas de rendimiento de consultas >
check_connection_stats = < Activar con 1 para habilitar estadísticas de conexiones por base de datos >
check_transaction_stats = < Activar con 1 para habilitar estadísticas de actividad transaccional >
check_table_stats = < Activar con 1 para habilitar estadísticas estructurales de tablas >
check_advanced_perf = < Activar con 1 para habilitar métricas avanzadas de rendimiento >
Nota: También es posible proporcionar las credenciales mediante el token credentials en formato JSON codificado en Base64 (mismo formato que las credenciales de tipo Custom del Credential store de Pandora FMS). Si está definido tiene prioridad sobre user y password.
credentials = < JSON codificado en Base64 con los campos "user" y "password" >
Ejemplo
agents_group_id = 10
interval = 300
user = sa
password = HHgD85V@
threads = 1
modules_prefix =
execute_custom_queries = 1
analyze_connections = 1
engine_uptime = 1
query_stats = 1
fragmentation_ratio = 1
cache_stats = 1
scan_databases = 1
agent_per_database = 1
db_agent_prefix =
entities_list = /tmp/postgresql_entities_list.txt
enable_entities_interval = 1
entities_interval = 300
check_storage_stats = 1
check_query_performance = 1
check_connection_stats = 1
check_transaction_stats = 1
check_table_stats = 1
check_advanced_perf = 1
Listado de bases de datos objetivo (--target_databases)
El contenido del fichero será un listado de objetivos PostgreSQL separados por comas o por líneas. Las líneas en blanco y las que comiencen por # se ignoran. Para cada objetivo se admiten los siguientes formatos:
-
IP:PUERTO\BASE— Monitorizar únicamente la base de datos indicada. -
IP:PUERTO|db1;db2;db3— Monitorizar varias bases de datos concretas del objetivo. -
IP:PUERTO!|db1;db2— Excluir las bases de datos indicadas (requiere quescan_databasesesté activo). -
IP:PUERTO— Siscan_databasesestá activo, se descubrirán todas las bases de datos del objetivo; en caso contrario solo se monitorizará la instancia.
Ejemplo
172.17.0.3:5432\postgres
172.17.0.4:5432|pandora;metadatos
172.17.0.5:5432!|template0;template1
# Esta línea es un comentario y será ignorada
172.17.0.6:5432
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
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
target_scope --> Ámbito de aplicación: "instances" (solo instancia), "databases" (solo bases de datos) o "all" (por defecto)
check_end --> Etiqueta de cierre del módulo
Notas importantes sobre las consultas personalizadas:
- Solo se permiten consultas
SELECT. Cualquier otra consulta será descartada con un aviso en la salida del plugin. - La palabra reservada
$__self_dbnameserá sustituida por el nombre de la base de datos en la que se esté ejecutando la consulta (opostgressi se ejecuta a nivel de instancia). Puede usarse tanto en eltargetcomo en elname. - Se acepta también
sqlcomo sinónimo detarget. - Si no se especifica
target_scopese asumiráall(compatible con versiones anteriores). - Si no se especifica
target_databasesse asumiráall(compatible con versiones anteriores). - El
nameresultante de la sustitución de$__self_dbnamese completará con el prefijo del módulo (modules_prefix) y, si corresponde, con el nombre de la base de datos.
Ejemplo
check_begin
name Select 1
description Number of invalid objects
operation value
datatype generic_data
min_warning 5
target SELECT 1 FROM dual
target_databases all
check_end
check_begin
name NumeroConexiones
description Number of connections
operation value
datatype generic_data
min_warning 5
target SELECT COUNT(*) AS NumeroConexiones FROM pg_stat_activity
target_databases pandora
target_scope databases
check_end
check_begin
name $__self_dbname.files_table
description Invalid objects (detail)
operation full
datatype generic_data
target SELECT COUNT(*) AS NumeroRegistros FROM files
target_databases pandora
check_end