Artículo
· 23 sep, 2021 Lectura de 4 min

Aprovecha al máximo InterSystems SAM - Cómo implementar tu propio administrador de alertas

InterSystems SAM es una gran herramienta para monitorizar tus clústeres de InterSystems IRIS e InterSystems IRIS For Health en instalaciones físicas o en un entorno de nube. En este artículo se describe cómo puedes implementar un administrador de alertas personalizado. Actualmente esta es una función no documentada y muy probablemente desconocida de InterSystems SAM. Con futuras versiones probablemente será más fácil aprovechar este útil concepto.

Para ser breve, en este artículo solo mencionaré InterSystems IRIS, pero todo aplica a InterSystems IRIS e InterSystems IRIS For Health. 

InterSystems SAM es un clúster de cinco contenedores y cada uno de ellos desempeña una función específica. Estos son:

  • Grafana para crear paneles de control con los que visualizar las métricas del sistema que selecciones. Es decir, tanto las métricas que InterSystems IRIS proporciona con la configuración predeterminada, como tus propias métricas (de la aplicación).
  • Prometheus, una herramienta de monitorización nativa de la nube, que recopila datos de series temporales de las instancias de destino
  • Nginx como el servidor web
  • Alertmanager, que recopila las alertas de InterSystems IRIS y de Prometheus
  • SAM Manager, que es el núcleo del SAM. Es una instancia de InterSystems IRIS en la que se almacenan todos los datos métricos

InterSystems SAM activa dos diferentes clases de alertas.

Las alertas que se activan se muestran en el portal del SAM, pero ¿qué sucedería si quieres notificar a alguien responsable del clúster InterSystems IRIS monitorizado y quieres hacerlo a través de diferentes canales de comunicación como el correo electrónico o el SMS, para que pueda hacerse cargo del clúster y solucionar el problema? Ahí es donde entra en acción un administrador de alertas personalizado.  

En este artículo se describen los pasos necesarios para implementar tu propio administrador de alertas para tu instancia del SAM Manager. En este ejemplo, el administrador de alertas enviará un correo electrónico a una dirección de correo electrónico preconfigurada, junto con la información de la alerta. 

La clave aquí es que hay una clase abstracta "oculta" %SAM.AbstractAlertsHandler en la instancia del SAM Manager. Mira la referencia de la clase:

 
Primero, tienes que extraer tu propio administrador de alertas de esta clase abstracta y después implementar el método de clase HandleAlerts. El método recibe una matriz JSON con los detalles de la alerta.

Así que en mi sencillo ejemplo, el administrador de alertas es una clase SAM.AlertHandler con subclases %SAM.AbstractAlertsHandler. La implementación del método HandleAlerts() es sencilla. Mira el código completo:

Delega el trabajo al método SendAlert. Asume que tienes una cuenta de correo electrónico de usuario, que puedes utilizar para las alertas. La contraseña del correo electrónico se almacena en la base de datos, pero la contraseña se encripta utilizando la función de InterSystems IRIS para el encriptado de "elementos de datos". Por lo tanto, tienes que crear una clave de encriptación en el SAM Manager y esta clave se debe cargar. De lo contrario, el administrador de alertas no podrá enviar el correo electrónico. Mi proveedor de correo electrónico requiere SSL/TLS para enviar el correo electrónico. He definido una configuración SSL ForMail en la instancia de SAM Manager. El resto del código es sencillo. Mira el código:

   

En el cuerpo del correo electrónico copia la matriz JSON que recibió con los detalles de la alerta y la envía a los destinatarios. 

Queda un problema pendiente. No puedes crear y editar directamente la clase de administrador de alertas en tu instancia del SAM Manager. La configuración predeterminada no permite conexiones desde tu IDE (IRIS Studio o VSCode) a la instancia del SAM Manager.

Para resolver esto he creado y editado la clase del administrador de alertas en mi instancia de InterSystems IRIS, y la he importado al namespace del SAM proveniente de mi instancia del SAM Manager. Otra opción sería modificar el archivo docker-compose para iniciar InterSystems SAM, pero no quería tocar este tema. 

Una vez que hayas cargado correctamente tu clase del administrador de alertas en tu instancia del InterSystems SAM Manager, el método HandleAlerts se ejecutará para cada alerta que se active en tu clúster de InterSystems IRIS monitorizado.

¡Espero que os resulte útil!

Comentarios (1)2
Inicie sesión o regístrese para continuar