Integrar alertas de OMS con Azure Logic Apps

Siguiendo con las integraciones con OMS, en este artículo te quiero mostrar cómo puedes gestionar las alertas que se lancen, en base a las queries que hayas definido, y que las puedas conectar con Azure Logic Apps con el objetivo de que puedas hacer con ellas lo que quieras.

Lo primero que debes hacer es crear una alerta. Para ello basta con hacer una búsqueda a través de la opción Log Search de OMS y hacer clic en el botón de Alert para generar tu alerta.

Machine shutdown alert

Como puedes ver en la configuración hay una acción llamada Webhook que te permite llamar a una URL con un payload en JSON. En este enlace puedes ver todos los parámetros que tienes disponibles para generar el payload. Para este ejemplo he utilizado los siguientes:

{
    "alert" : "#alertrulename",
    "startTime" : "#searchintervalstarttimeutc",
    "workspaceId": "#workspaceid",
    "description": "#alertrulename fired with #searchresultcount over threshold of #thresholdvalue."
}

Para probar el resultado de esta alerta puedes usar RequestBin y visualizar el resultado. Crea una nueva Bin URL y copiala como la URL del webhook con el payload que estás probando.

Una vez lanzada la llamada podrás ver cuál es el resultado que genera, que además te será útil para el paso siguiente:

OMS Webhook alert – RequestBin result

En mi caso la URL que configure en la alerta va a invocar una logic app que generará un correo personalizado con la alerta que se acaba de lanzar. Para crear una logic app basta con acceder al portal de Azure y a través del botón Create a resource busca el servicio Logic App.

Create a resource – Logic App

Añade como trigger el llamado Request – When a HTTP request is received.

Logic App – Request – When a HTTP request is received

En opciones avanzadas selecciona como método POST.

Logic App – When a HTTP request is received – Show advanced options – POST

Y por último necesitas configurar el esquema del payload. Una forma fácil de definir el esquema de la petición es haciendo clic sobre la opción Use sample payload to generate schema y copiar el resultado que pudiste recuperar de RequestBin cuando estabas probando el payload que devuelve la alerta de OMS. En mi caso, un ejemplo del payload podría ser el siguiente:

{
    "alert" : "#alertrulename",
    "startTime" : "#searchintervalstarttimeutc",
    "workspaceId": "#workspaceid",
    "description": "#alertrulename fired with #searchresultcount over threshold of #thresholdvalue."
}

Haz clic Done y de forma automática generará el esquema.

Logic App – JSON schema generated

El último paso es utilizar la información recibida como parte del correo electrónico que quieres enviar. En este ejemplo he utilizado Outlook.com Send an email, pero puedes utilizar cualquier otro proveedor. Autentícate y completa los campos del correo con los valores de la alerta de OMS.

Logic App – Send an email

Para probarlo, guarda la logic app y copia la URL que se ha generado en el trigger.

Logic App – HTTP POST URL

Reemplaza la URL del webhook de la alerta de OMS y haz clic en el botón Test webhook para comprobar que todo funciona correctamente:

OMS Webhook URL to Logic App

El resultado debería ser similar al siguiente:

¡Saludos!

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.