Ao criar uma política de notificação, você pode enviar notificações de alerta para uma URL de webhook personalizada. O recurso de gerenciamento de alertas do Application Real-Time Monitoring Service (ARMS) permite enviar alertas para serviços de terceiros por meio de um webhook. Este tópico usa o Lark como exemplo para demonstrar a configuração de um webhook para receber essas notificações.
Etapa 1: Obter uma URL de webhook do Lark
Configure um bot de webhook do Lark no cliente desktop do aplicativo.
Abra o Lark e faça login.
Clique em + e clique em New group para criar um grupo de recebimento de alertas.
Clique em Bots e selecione a aba Bots.
Na aba Bots, clique em Add Bot.
No painel Add Bot, selecione Custom Bot.
Na página de configuração, defina os campos Bot name e Description e clique em Add.
-
Na seção resultante, clique em Copy para salvar a URL do webhook e clique em Complete.
Na seção Security Settings, marque a caixa de seleção Custom Keywords e insira a palavra-chave alert na caixa de texto.
Etapa 2: Criar um webhook
Faça login no console do ARMS. No painel de navegação à esquerda, escolha .
Clique em aba Webhook Integration e clique em Create Webhook.
-
Na caixa de diálogo Create Webhook, configure os seguintes parâmetros.
Parâmetro
Descrição
Webhook name
Obrigatório. Nome personalizado para o webhook.
Post/Get
Obrigatório. Método HTTP. A URL não pode exceder 256 caracteres.
Neste exemplo, selecione Post e cole a URL do webhook obtida na Etapa 1: Obter uma URL de webhook do Lark na caixa de texto à direita.
Header and Param
Opcional. Especifica o cabeçalho da requisição, limitado a 200 caracteres. Clique em +Add para adicionar outros Headers ou Params. O cabeçalho padrão é Content-Type: text/plain; charset=UTF-8, e o total combinado de Headers e Params não pode ultrapassar 6.
Neste exemplo, defina os dois Headers a seguir:
Arms-Content-Type : json
Content-Type : application/json
Notification template
Opcional. Modelo para notificações enviadas quando um alerta é acionado. Disponível apenas para o método Post. Use o placeholder
$contentpara incluir o conteúdo da notificação. O modelo não pode exceder 500 caracteres. Para mais informações, consulte Configurar um modelo de notificação e um modelo de webhook.{ "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 o Lark, use o seguinte 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. Modelo para notificações enviadas quando um alerta é resolvido. Disponível apenas para o método Post. Use o placeholder
$contentpara incluir o conteúdo da notificação. O modelo não pode exceder 500 caracteres. Para mais informações, consulte Configurar um modelo de notificação e um modelo de webhook.{ "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 o Lark, use o seguinte 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: Clique em Send Test para verificar a configuração.
Clique em OK.
Etapa 3: Configurar uma política de notificação
Crie ou edite uma política de notificação. Defina Notification Objects como Universal Webhook e selecione o webhook criado. Para mais informações, consulte Política de notificação.
A requisição de webhook expira se nenhuma resposta for recebida em 5 segundos, causando falha na notificação.