Opsgenie

Manual de uso del plugin opsgenie

Introduccion

Este script es un plugin interno de Pandora FMS diseñado para integrar eventos y alertas con Opsgenie, permitiendo sincronizar de forma automática el estado de los módulos de monitorización con el sistema de gestión de incidencias.

El plugin recibe información generada por Pandora FMS (agente, módulo, severidad, valor del dato, etc.) y la utiliza para crear, actualizar y cerrar alertas en Opsgenie, aplicando lógica avanzada de control, reintentos automáticos y validación del estado real de la alerta.

Además, añade notas informativas, enlaces directos al agente en Pandora FMS, y gestiona estados especiales como alertas recuperadas o módulos relacionados con la licencia del sistema. El script también incorpora mecanismos de robustez frente a errores transitorios de API, validación de URL, y opciones configurables para ajustar la prioridad, el comportamiento de reintentos y el nivel de registro.

En resumen, este plugin actúa como un conector fiable y automatizado entre Pandora FMS y Opsgenie, garantizando que los eventos de monitorización generen alertas consistentes, actualizadas y correctamente gestionadas en la plataforma de incidentes.

Matriz de compatibilidad

Sistemas donde se ha probado

Rocky, ubuntu

Sistemas donde debería funcionar

Cualquier sistema linux 


Pre requisitos

Parámetros y configuracion

Parámetro Descripción
--agent Alias del agente en Pandora FMS. Se puede obtener mediante la macro del servidor _agentalias_.
--agentid ID numérico del agente en Pandora FMS. Se puede obtener usando la macro _id_agent_.
--module Nombre del módulo de Pandora FMS que está generando el evento o dato. Se puede obtener con la macro _module_.
--data Valor numérico o texto correspondiente a los datos del módulo. Se obtiene con la macro _data_.
--address Dirección IP o hostname del agente monitorizado. Se puede obtener con la macro _address_.
--apikey API Key de Opsgenie necesaria para autenticar las peticiones contra su API.
--pandoraurl URL completa de la consola de Pandora FMS, incluyendo /pandora_console/.
Valor por defecto: https://symity.pandorafms.com/pandora_console/
--license

Modo de licencia.

"0" → desactivado (por defecto)

"1" → activado

--user Usuario que aparecerá como autor de la acción en Opsgenie.
Valor por defecto: "Pandora"
--source Fuente o identificador del origen en Opsgenie, útil para categorizar alertas.
Valor por defecto: "pandora"
--status Estado textual del módulo de Pandora FMS. Se puede obtener con la macro modulestatus.
También puede usarse el valor "MAX" para asignar prioridad 1 en Opsgenie.
--verbose

Activa el modo verbose para mostrar información adicional en los logs.

"0" → desactivado (por defecto)

"1" → activado

"2" → activado, mayor nivel de detalle

--logfile

Si se especifica un archivo, todos los logs se escribirán en dicho archivo en lugar de ser mostrados por consola. 

--max-retry Número máximo de reintentos permitidos cuando la API de Opsgenie devuelve error.
Valor por defecto: 3
--wait-time Tiempo de espera (en segundos) entre cada reintento de las llamadas a Opsgenie.
Valor por defecto: 2
-h, --help Muestra la ayuda del programa y termina la ejecución.


Ejecución manual

El formato de ejecución del plugin es el siguiente :

./pandora_opsgenie \
    --agent <alias del agente> \
    --agentid <ID del agente> \
    --module <nombre del módulo> \
    --data <valor de los datos> \
    --address <dirección del agente> \
    --apikey <clave API de Opsgenie> \
    [--status <estado del módulo o MAX>] \
    [--pandoraurl <URL de Pandora FMS>] \
    [--license <0 o 1>] \
    [--user <usuario en Opsgenie>] \
    [--source <origen en Opsgenie>] \
    [--verbose <0, 1 o 2>] \
    [--logfile <ruta del archivo de log>] \
    [--max-retry <número máximo de reintentos>] \
    [--wait-time <segundos entre reintentos>]

Por ejemplo:

./pandora_opsgenie \
    --agent "Servidor_Madrid" \
    --agentid "5012" \
    --module "CPU Load" \
    --data "_data_" \
    --address "192.168.10.55" \
    --apikey "1a2b3c4d-55ef-47d2-9f81-3b8c2d4e7f92" \
    --status "CRITICAL" \
    --pandoraurl "https://172.10.0.2.pandorafms.com/pandora_console/" \
    --user "Pandora" \
    --source "pandora" \
    --verbose "1"

Configuracion en PandoraFMS

Para configurar el plugin en PandoraFMS, se deben seguir los siguientes pasos :

1. Subir el plugin a PandoraFMS, por ejemplo en la siguiente ruta:

/usr/share/pandora_server/util/plugin

2. Dirigirse al apartado plugins y crear uno nuevo:

imagen.png

  3. Se le añade nombre, descripción y timeout:

Captura desde 2025-12-12 11-41-48.png

4. Se añade la ruta del plugin en el comando y los parámetros necesarios para la ejecución de este. 

Para cada parámetro se debe configurar una macro, siendo la sintaxis de esta macro la siguiente : _fieldx_, siendo x el numero posicional del parámetro.

Captura desde 2025-12-12 11-58-31.png

5. Se configuran las macros anteriores, añadiendo en cada una el valor del parámetro:

Captura desde 2025-12-12 12-00-12.png

6. Una vez configurado se debe crear un módulo en un agente que ejecute el plugin. En el menu de módulos de un agente creamos un módulo de tipo plugin nuevo:

Captura desde 2025-12-12 12-06-12.png

7. En el menú de configuración del módulo, le ponemos un nombre, seleccionamos el plugin antes configurado y se le debe dar a "crear".

Captura desde 2025-12-12 12-08-55.png

8. El plugin se ejecutara eventualmente según la configuración realizada, generando las alertas según vaya procesando los datos.