# Prometheus

# 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**

<table border="1" id="bkmrk---conf-ruta-al-archi" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 20.6735%;">--conf</td><td style="width: 79.4389%;">Ruta al archivo de configuración</td></tr></tbody></table>

**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/](https://marketplace.pandorafms.com/)

Una vez cargado, se podrán monitorizar instancias de Prometheus creando tareas de *Discovery* desde la sección *Management &gt; Discovery &gt; App*

[![Captura desde 2025-11-26 12-16-37.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-11/scaled-1680-/captura-desde-2025-11-26-12-16-37.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-11/captura-desde-2025-11-26-12-16-37.png)  
  
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 :

[![Captura desde 2025-11-26 12-22-06.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-11/scaled-1680-/captura-desde-2025-11-26-12-22-06.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-11/captura-desde-2025-11-26-12-22-06.png)

- **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)

[![Captura desde 2025-11-26 12-27-06.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-11/scaled-1680-/captura-desde-2025-11-26-12-27-06.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-11/captura-desde-2025-11-26-12-27-06.png)

- **Custom queries:** Aqui se pueden definir las consultas personalizadas. El formato es una query por línea y es el siguiente: &lt; Nombre de la metrica &gt; = &lt; Consulta personalizada &gt;. Por ejemplo :  
      
    [![Captura desde 2025-11-26 12-49-37.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-11/scaled-1680-/captura-desde-2025-11-26-12-49-37.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-11/captura-desde-2025-11-26-12-49-37.png)
- **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: &lt; Umbrales deseados en el modulo, separados por "|" &gt;. Por ejemplo :  
      
    [![Captura desde 2025-11-26 12-50-55.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-11/scaled-1680-/captura-desde-2025-11-26-12-50-55.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-11/captura-desde-2025-11-26-12-50-55.png)
- **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: &lt; Nombre del nuevo agente. Todas las métricas en las que no se especifique agente se incluiran en el agente principal &gt;. Por ejemplo :

[![Captura desde 2025-11-26 12-58-38.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-11/scaled-1680-/captura-desde-2025-11-26-12-58-38.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-11/captura-desde-2025-11-26-12-58-38.png)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.

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-06/scaled-1680-/D1bimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-06/D1bimage.png)

# 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.