Opsgenie
Manual de uso del plugin opsgenie
- Introduccion
- Matriz de compatibilidad
- Pre requisitos
- Parámetros y configuracion
- Ejecución manual
- Configuracion en PandoraFMS
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
- 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á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:
3. Se le añade nombre, descripción y timeout:
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.
5. Se configuran las macros anteriores, añadiendo en cada una el valor del parámetro:
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:
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".
8. El plugin se ejecutara eventualmente según la configuración realizada, generando las alertas según vaya procesando los datos.