(Optional) Konfiguration des Alert Managers für die Ausgabe von JSON an Amazon SNS - Amazon Managed Service für Prometheus

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

(Optional) Konfiguration des Alert Managers für die Ausgabe von JSON an Amazon SNS

Sie können den Alert Manager so konfigurieren, dass er Warnmeldungen im JSON-Format sendet, sodass sie nachgelagert von Amazon SNS in AWS Lambda oder in Webhook-Empfangsendpunkten verarbeitet werden können. Die mit dem Alert Manager von Amazon Managed Service für Prometheus bereitgestellte Standardvorlage gibt die Nachrichtennutzdaten in einem Textlistenformat aus, das möglicherweise nicht einfach zu analysieren ist. Anstatt die Standardvorlage zu verwenden, können Sie eine benutzerdefinierte Vorlage für die Ausgabe des Nachrichteninhalts in JSON definieren, was die Analyse in nachgelagerten Funktionen erleichtert.

Um Nachrichten vom Alert Manager an Amazon SNS im JSON-Format auszugeben, aktualisieren Sie Ihre Alert-Manager-Konfiguration so, dass sie den folgenden Code in Ihrem template_files-Stammbereich enthält:

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 }}
Anmerkung

Diese Vorlage erstellt JSON aus alphanumerischen Daten. Wenn Ihre Daten Sonderzeichen enthalten, kodieren Sie diese, bevor Sie diese Vorlage verwenden.

Um sicherzustellen, dass diese Vorlage in ausgehenden Benachrichtigungen verwendet wird, referenzieren Sie sie in Ihrem alertmanager_config Block wie folgt:

alertmanager_config: | global: templates: - 'default_template'
Anmerkung

Diese Vorlage gilt für den gesamten Nachrichtentext als JSON. Diese Vorlage überschreibt den gesamten Nachrichtentext. Sie können den Nachrichtentext nicht überschreiben, wenn Sie diese spezielle Vorlage verwenden möchten. Alle manuell vorgenommenen Überschreibungen haben Vorrang vor der Vorlage.

Weitere Informationen über: