Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurare il gestore degli avvisi per inviare messaggi ad Amazon SNS come JSON
Per impostazione predefinita, il gestore degli avvisi di Amazon Managed Service for Prometheus emette i messaggi in un formato di elenco di testo semplice. Questo può essere più difficile da analizzare per altri servizi. Puoi invece configurare il gestore degli avvisi per inviare avvisi in formato JSON. JSON può semplificare l'elaborazione dei messaggi downstream da Amazon SNS negli endpoint di ricezione dei webhook o negli AWS Lambda endpoint di ricezione dei webhook. Invece di utilizzare il modello predefinito, puoi definire un modello personalizzato per l'output del contenuto del messaggio in JSON, semplificando l'analisi nelle funzioni downstream.
Per inviare messaggi da alert manager ad Amazon SNS in formato JSON, aggiorna la configurazione di alert manager in modo che contenga il seguente codice all'interno della sezione principale 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
Questo modello crea JSON da dati alfanumerici. Se i tuoi dati contengono caratteri speciali, codificali prima di utilizzare questo modello.
Per assicurarti che questo modello venga utilizzato nelle notifiche in uscita, fai riferimento ad esso nel tuo blocco alertmanager_config
come segue:
alertmanager_config: | global: templates: - 'default_template'
Nota
Questo modello è per l'intero corpo del messaggio in formato JSON. Questo modello sovrascrive l'intero corpo del messaggio. Non è possibile sovrascrivere il corpo del messaggio se desideri utilizzare questo modello specifico. Tutte le sostituzioni eseguite manualmente avranno la precedenza sul modello.
Per ulteriori informazioni su:
-
Il file di configurazione di alert manager, consulta Crea una configurazione di gestione degli avvisi in Amazon Managed Service for Prometheus per gestire e indirizzare gli avvisi.
-
Caricamento del file di configurazione, consulta Carica il file di configurazione del gestore degli avvisi su Amazon Managed Service for Prometheus.