Prometheus
Este documento describe la funcionalidad prometheus de de PandoraFMS, compuesta por el plugin de discovery.
- Introducción
- Pre requisitos
- Parámetros y configuracion
- Ejecucion manual
- Discovery
- Agentes y módulos generados por el plugin
Introducción
Este plugin tiene como finalidad monitorizar Prometheus, mediante consultas personalizadas que extraen información clave para evaluar el rendimiento y el estado del servicio. Los datos obtenidos se reflejan en Pandora FMS en forma de módulos que proporcionan valores estadísticos dentro de un agente o varios según la configuración realizada.
Pre requisitos
- Conectividad a la instancia de Prometheus
El plugin es un binario que contiene las dependencias empaquetadas por lo que no es necesaria la instalación de ningún tipo de dependencia para su uso.
Parámetros y configuracion
Parámetros
| --conf | Ruta al archivo de configuración |
Archivo de configuración (--conf)
[CONF]
agents_group = < ID del grupo para los agentes >
interval = < Intervalo de creación de los agentes >
prefix = < Prefijo para los agentes creados >
agent_name = < Nombre del agente principal. Por defecto : Prometheus >
url = < Url de la instancia prometheus. Por ejemplo : http://172.0.1.3:9090 >
username = < Nombre de usuario de la instancia. Solo necesario si esta configurado la autenticación básica >
password = < Contraseña de la instancia. Solo necesario si esta configurado la autenticación básica >
transfer_mode = < Modo de transferencia de los agentes. Opciones : tentacle y local >
tentacle_ip = < Dirección IP de tentacle >
tentacle_port = < Puerto de tentacle >
tentacle_opts = < Opciones extra de tentacle >
temporal = < Ruta de ficheros temporales >
[QUERIES]
< Nombre de la metrica > = < Consulta personalizada >
[THRESHOLDS]
< Nombre de la metrica > = < Umbrales deseados en el modulo, separados por "|" >
[AGENTS]
< Nombre de la metrica > = < Nombre del nuevo agente. Todas las métricas en las que no se especifique agente se incluiran en el agente principal >
Ejemplo
[CONF]
agents_group = 17
interval = 300
prefix = "Kube-"
agent_name = Prometheus
username = admin
password = admin123
tentacle_ip = 172.42.42.101
tentacle_port = 41121
[QUERIES]
node_cpu_avg = avg_over_time(node_cpu_seconds_total[15m])
up_status = up
cpu_idle_avg = node_cpu_seconds_total{mode="idle",cpu="0"}
http_requests_sum = http_requests_total
disk_free_last = node_filesystem_avail_bytes{mountpoint="/"}
memory_used_avg = node_memory_MemAvailable_bytes
node_cpu_seconds = node_cpu_seconds_total{mode="idle",cpu="0"}[15m]
[THRESHOLDS]
cpu_idle_avg = min_critical 75|min_warning 60
[AGENTS]
node_cpu_seconds = Prometheus cpu
Ejecucion manual
El formato de la ejecución del plugin es el siguiente:
./pandora_prometheus --conf < ruta al fichero de configuración >
Por ejemplo:
./pandora_prometheus --conf /usr/share/pandora_server/util/plugin/prometheus.conf
La ejecución devolverá una salida en formato JSON con información sobre la ejecución, y generará un fichero XML para cada agente monitorizado que enviará al servidor de Pandora FMS por el método de transferencia indicado en la configuración.
Discovery
Este plugin puede integrarse con el Discovery de Pandora FMS.
Para ello se debe cargar el paquete ".disco" que puede descargar desde la librería de Pandora FMS:
https://marketplace.pandorafms.com/
Una vez cargado, se podrán monitorizar instancias de Prometheus creando tareas de Discovery desde la sección Management > Discovery > App
Para cada tarea se solicitarán los siguientes datos mínimos:
- Url : Url de la instancia de prometheus
- Tentacle IP: Dirección de tentacle
- Tentacle port: Puerto de tentacle
- Tentacle extra options : Opciones extra de tentacle
En la siguiente página se nos requerirán los siguientes :
- Agent Name: Nombre para el agente principal
- Use prefix: Prefijo para los agentes creados
- Prefix: Prefijo para los agentes creados
- Auth basic: Activar para el chequeo de autenticación básica
- Username: Usuario para la instancia prometheus (solo requerido si esta configurado autenticación básica)
- Password: Contraseña para la instancia prometheus (solo requerido si esta configurado autenticacion básica)
- Custom queries: Aqui se pueden definir las consultas personalizadas. El formato es una query por línea y es el siguiente: < Nombre de la metrica > = < Consulta personalizada >. Por ejemplo :
- Define tresholds: Aqui se pueden definir los umbrales para los módulos generados por las consultas personalizadas. El formato es una definición de umbrales por línea y es el siguiente: < Umbrales deseados en el modulo, separados por "|" >. Por ejemplo :
- Define agents: Aqui se puede definir la creación de agentes para los módulos generados por las consultas personalizadas. El formato es una definición por línea y es el siguiente: < Nombre del nuevo agente. Todas las métricas en las que no se especifique agente se incluiran en el agente principal >. Por ejemplo :
Las tareas completadas con éxito tendrán un resumen de ejecución con la siguiente información:
- Total agents : Número total de agentes generados por la tarea.
- Total modules: Número total de módulos generados por la tarea.
Agentes y módulos generados por el plugin
El plugin creara un agente principal que contendra todas las metricas especificas a las que no se les asigne un agente. El plugin creara un agente para diferentes metricas si se especifica en la configuración.
- Si una consulta personalizada devuelve metricas para más de un objeto, la integración creara un módulo por cada metrica de objeto devuelto en la respuesta.
- Si una consulta personalizada devuelve solo una metrica para el objeto, es módulo generado sera generic_data y contendrá el valor devuelto por la respuesta.
- Si una consulta personalizada devuelve varias metricas para un solo objeto, el módulo generado sera generic_data_string y tendra una lista con los valores obtenidos asociado al timestamp de cada valor.