Al crear una directiva de notificación, puede enviar notificaciones de alerta a una URL de webhook personalizada. La función de gestión de alertas de Application Real-Time Monitoring Service (ARMS) permite enviar alertas a servicios de terceros mediante un webhook. Este tema utiliza Lark como ejemplo para mostrar cómo configurar un webhook que reciba estas notificaciones.
Paso 1: Obtener una URL de webhook de Lark
Configure un bot de webhook de Lark desde el cliente de escritorio de Lark.
Abra Lark e inicie sesión.
Haga clic en el icono + y luego haga clic en New group para crear un grupo destinado a recibir las alertas.
Haga clic en el icono de configuración del grupo y luego seleccione la pestaña Bots.
En la pestaña Bots, haga clic en Add Bot.
En el panel Add Bot, seleccione Custom Bot.
En la página de configuración, establezca los campos Bot name y Description, y luego haga clic en Add.
-
En la sección resultante, haga clic en Copy para guardar la URL del webhook y luego haga clic en Complete.
En la sección Security Settings, seleccione la casilla Custom Keywords e introduzca la palabra clave alert en el cuadro de texto.
Paso 2: Crear un webhook
Inicie sesión en la consola de ARMS. En el panel de navegación izquierdo, elija .
Seleccione la pestaña Webhook Integration y luego haga clic en Create Webhook.
-
En el cuadro de diálogo Create Webhook, configure los siguientes parámetros.
Parámetro
Descripción
Webhook name
Obligatorio. Nombre personalizado para el webhook.
Post/Get
Obligatorio. Método HTTP. La URL no debe exceder los 256 caracteres.
En este ejemplo, seleccione Post y pegue la URL del webhook obtenida en Step 1: Get a webhook URL from Lark en el cuadro de texto de la derecha.
Header and Param
Opcional. Especifica el encabezado de la solicitud, el cual no puede superar los 200 caracteres. Haga clic en +Add para agregar otros encabezados o parámetros. El encabezado de solicitud predeterminado es Content-Type: text/plain; charset=UTF-8, y el número total de encabezados y parámetros no puede exceder 6.
En este ejemplo, configure los siguientes dos Headers:
Arms-Content-Type : json
Content-Type : application/json
Notification template
Opcional. Plantilla para las notificaciones enviadas cuando se activa una alerta. Este parámetro solo está disponible para el método Post. Puede usar el marcador de posición
$contentpara incluir el contenido de la notificación. La plantilla no puede exceder los 500 caracteres. Para obtener más información, consulte Configure a notification template and a webhook template.{ "Alert Name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster Name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application Name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification Policy":"{{ .dispatchRuleName }}", "Alert Time":"{{ .startTime }}", "Alert Content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }Para Lark, puede utilizar el siguiente formato de texto:
{ "msg_type": "text", "content": { "text": "Alert Name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster Name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application Name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Notification Policy: {{ .dispatchRuleName }} \nAlert Time: {{ .startTime }} \nAlert Content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }Template to Clear Alerts
Opcional. Plantilla para las notificaciones enviadas cuando se resuelve una alerta. Este parámetro solo está disponible para el método Post. Puede usar el marcador de posición
$contentpara incluir el contenido de la notificación. La plantilla no puede exceder los 500 caracteres. Para obtener más información, consulte Configure a notification template and a webhook template.{ "Alert Name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster Name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application Name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification Policy":"{{ .dispatchRuleName }}", "Recovery Time":"{{ .endTime }}", "Alert Content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }Para Lark, puede utilizar el siguiente formato de texto:
{ "msg_type": "text", "content": { "text": "Alert Name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster Name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application Name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Recovery Time: {{ .startTime }} \nNotification Policy: {{ .dispatchRuleName }} \nCleared Alert Content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } } Opcional: Haga clic en Send Test para comprobar la configuración.
Haga clic en OK.
Paso 3: Configurar una directiva de notificación
Cree o edite una directiva de notificación. Establezca Notification Objects como Universal Webhook y luego seleccione el webhook que creó. Para obtener más información, consulte Notification policy.
Una solicitud de webhook expira si no se recibe respuesta en 5 segundos, lo que provoca un error en la notificación.