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 permite enviar alertas para serviços de terceiros por meio de uma integração de webhook. Este tópico usa o Lark como exemplo para demonstrar como criar e configurar um webhook para alertas.
Etapa 1: Obter uma URL de webhook
Abra o Lark e faça login.
Clique no ícone + e, em seguida, clique em Create Group para crie um grupo destinado ao recebimento de alertas.
Clique no ícone de configurações do grupo 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 o Display name e a Description e clique em Add.
-
Na seção Webhook URL, clique em Copy Link e, depois, em Finish.
Na seção Security Settings, marque a caixa de seleção Custom Keywords e adicione a palavra-chave
alert.
Etapa 2: Criar uma integração de webhook
Faça login no console do Managed Service for Prometheus. No painel de navegação à esquerda, escolha .
-
Selecione a aba Webhook integration, clique em Create webhook no canto superior direito e configure os parâmetros a seguir no painel Create webhook.
Parâmetro
Descrição
Webhook name
Insira um nome personalizado para o webhook.
Request method
Selecione o método de solicitação (POST ou GET) e insira uma URL que comece com http:// ou https://. A URL não pode exceder 100 caracteres.
Neste exemplo, selecione POST e cole a URL do webhook obtida na Etapa 1: Obter uma URL de webhook na caixa de texto à direita.
Header, param
Defina o cabeçalho da solicitação e os parâmetros. Cada cabeçalho e parâmetro não pode ultrapassar 200 caracteres.
Clique em + Add para adicionar mais informações de cabeçalho ou parâmetro. O cabeçalho de solicitação padrão é
Content-Type: text/plain; charset=UTF-8. O número total de cabeçalhos e parâmetros não pode exceder seis.Neste exemplo, defina os dois cabeçalhos a seguir:
-
Arms-Content-Type : json
-
Content-Type : application/json
Se você selecionar POST como método de solicitação, também deverá configurar os parâmetros abaixo.
Notification template
Modelo para notificações de alertas disparados. Use o placeholder $content para gerar o conteúdo da notificação. O modelo não pode exceder 500 caracteres. Para mais informações, consulte Configure notification templates and webhook templates.
Veja a seguir um exemplo de modelo de notificação:
{ "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 exemplo do 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
Modelo para notificações enviadas quando um alerta é resolvido. Use o placeholder $content para gerar o conteúdo da notificação. O modelo não pode exceder 500 caracteres. Para mais detalhes, consulte Configure notification templates and webhook templates.
Confira um exemplo abaixo:
{ "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 }}" }No exemplo do Lark, defina 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 }} \nResolved alert content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } } -
(Opcional) Clique em Test para verifique sua configuração.
Clique em OK.
Etapa 3: Configurar uma política de notificação
Crie ou edite uma política de notificação. Em Notification objects, selecione Universal webhook e escolha a integração de webhook criada anteriormente. Para mais informações, consulte Notification policy.
O tempo limite para uma solicitação de webhook é de 5 segundos. Se o endpoint não responder dentro desse período, a entrega da notificação falhará.