As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configurar o gerenciador de alertas para enviar mensagens para o Amazon SNS como JSON
Por padrão, o gerenciador de alertas do Amazon Managed Service for Prometheus emite mensagens em formato de lista de texto simples. Isso pode ser mais difícil para outros serviços analisarem. Em vez disso, você pode configurar o gerenciador de alertas para enviar alertas no formato JSON. O JSON pode simplificar o processamento das mensagens a jusante do Amazon SNS em ou em AWS Lambda endpoints de recebimento de webhooks. Em vez de usar o modelo padrão, você pode definir um modelo personalizado para gerar o conteúdo da mensagem em JSON, facilitando a análise em funções posteriores.
Para enviar mensagens do gerenciador de alertas para o Amazon SNS no formato JSON, atualize a configuração do gerenciador de alertas para conter o seguinte código na seu seção raiz template_files
:
default_template: | {{ define "sns.default.message" }}{{ "{" }}"receiver": "{{ .Receiver }}","status": "{{ .Status }}","alerts": [{{ range $alertIndex, $alerts := .Alerts }}{{ if $alertIndex }}, {{ end }}{{ "{" }}"status": "{{ $alerts.Status }}"{{ if gt (len $alerts.Labels.SortedPairs) 0 -}},"labels": {{ "{" }}{{ range $index, $label := $alerts.Labels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $label.Name }}": "{{ $label.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len $alerts.Annotations.SortedPairs ) 0 -}},"annotations": {{ "{" }}{{ range $index, $annotations := $alerts.Annotations.SortedPairs }}{{ if $index }}, {{ end }}"{{ $annotations.Name }}": "{{ $annotations.Value }}"{{ end }}{{ "}" }}{{- end }},"startsAt": "{{ $alerts.StartsAt }}","endsAt": "{{ $alerts.EndsAt }}","generatorURL": "{{ $alerts.GeneratorURL }}","fingerprint": "{{ $alerts.Fingerprint }}"{{ "}" }}{{ end }}]{{ if gt (len .GroupLabels) 0 -}},"groupLabels": {{ "{" }}{{ range $index, $groupLabels := .GroupLabels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $groupLabels.Name }}": "{{ $groupLabels.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len .CommonLabels) 0 -}},"commonLabels": {{ "{" }}{{ range $index, $commonLabels := .CommonLabels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $commonLabels.Name }}": "{{ $commonLabels.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len .CommonAnnotations) 0 -}},"commonAnnotations": {{ "{" }}{{ range $index, $commonAnnotations := .CommonAnnotations.SortedPairs }}{{ if $index }}, {{ end }}"{{ $commonAnnotations.Name }}": "{{ $commonAnnotations.Value }}"{{ end }}{{ "}" }}{{- end }}{{ "}" }}{{ end }} {{ define "sns.default.subject" }}[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}]{{ end }}
nota
Esse modelo cria JSON a partir de dados alfanuméricos. Se seus dados tiverem caracteres especiais, codifique-os antes de usar esse modelo.
Para garantir que esse modelo seja usado nas notificações enviadas, faça referência a ele em seu bloco alertmanager_config
da seguinte forma:
alertmanager_config: | global: templates: - 'default_template'
nota
Esse modelo é para o corpo inteiro da mensagem como o da mensagem JSON. Esse modelo substitui o corpo inteiro da mensagem. Você não pode substituir o corpo da mensagem se quiser usar esse modelo específico. Todas as substituições feitas manualmente terão precedência sobre o modelo.
Para obter mais informações sobre:
-
O arquivo de configuração do gerenciador de alertas, consulte Crie uma configuração de gerenciador de alertas no Amazon Managed Service para que o Prometheus gerencie e encaminhe alertas.
-
Como fazer o upload do seu arquivo de configuração, consulte Faça upload do arquivo de configuração do gerenciador de alertas para o Amazon Managed Service for Prometheus.