Logo GH

Alerts und Benachrichtigungen: PagerDuty, Opsgenie

Alerts und Benachrichtigungen: PagerDuty, Opsgenie

1) Warum eine separate alert-Plattform

Ziel ist es, ein unmittelbares und relevantes Signal an die richtige Person/das richtige Team zu senden und den Incident-Prozess auszulösen: Anerkennung (ack), Eskalation, Kommunikation, Postmortem. PagerDuty und Opsgenie liefern:
  • Routing über Dienste/Tags/Umgebungen.
  • Eskalationen und Zeitpläne (Bereitschaftsdienst, Follow-the-Sun).
  • Deduplizierung/Ereigniskorrelation.
  • Ruhige Fenster (Wartung/Freeze) und Mute-Regeln.
  • Integrationen mit Monitoring, CI/CD und ChatOps.

Unterstützung: SLO-Schwelle → Alert → Mensch/Maschine → Runbook → Rollback/Fix → Postmortem.

2) Signalmuster und Schweregrad (severity)

Empfohlene Skala:
  • critical (page) - SLO-Verletzung/Geldwegfehler (Ein-/Auszahlung), sinkende Verfügbarkeit, Burn-Rate.
  • high (page/ticket) - signifikante Verschlechterung ohne expliziten SLO-Durchbruch.
  • medium (Ticket) - Kapazität, Backdegradation, Retrai.
  • low (Informationen) - Trends, Warnungen.

Regel: Seite nur per SLO oder expliziter Business Trigger.

3) Routing-Architektur

1. Quelle (Prometheus/Alertmanager, Grafana, Cloud Monitoring, eigene Webhooks).
2. Шлюз (PagerDuty/Opsgenie service/integration).
3. Richtlinien: Routen nach Tag ('service', 'env', 'region'), severity, payload.
4. Eskalationen: Abfolge von Dienstebenen (L1→L2→menedzher).
5. Kommunikation: ChatOps-Kanäle, Statusseiten, Mailings.

Beispiel für Key Tags (standardisieren)

„service“, „env“, „region“, „version“, „runbook“, „release _ id“, „route“, „tenant“ (wenn B2B/Multi-Tenant).

4) On-Call und Eskalationsfahrpläne

Schedules: primary/secondary, роли (SRE, DBRE, Sec).
Rotationen: Tag/Nacht, Follow-the-Sun, Wochenende.
Overrides: Urlaub/Krankheit.
Eskalationen: ack-timeout 5-10 min → die nächste Schicht. Während der Arbeitszeit - in der Profilabteilung; draußen ist ein On-Call-Spielplatz.

Tipp: Halten Sie kurze Eskalationsschritte in der Nacht (weniger Ermüdung) und länger am Tag (es gibt einen Kontext).

5) Integration mit Alertmanager (Grundmuster)

yaml receivers:
- name: pagerduty pagerduty_configs:
- routing_key: ${PAGERDUTY_ROUTING_KEY}
severity: '{{ if eq. Labels. severity "critical" }}critical{{ else }}error{{ end }}'
class: '{{.Labels. service }}'
component: '{{.Labels. env }}'
group: '{{.Labels. region }}'
description: '{{.Annotations. summary }}'
details:
service: '{{.Labels. service }}'
env: '{{.Labels. env }}'
runbook: '{{.Annotations. runbook }}'
release: '{{.Annotations. release }}'
route:
receiver: pagerduty group_by: ["service","env","region"]
group_wait: 30s group_interval: 5m repeat_interval: 2h

Opsgenie (webhook)

yaml receivers:
- name: opsgenie opsgenie_configs:
- api_key: ${OPSGENIE_API_KEY}
responders:
- name: "SRE Primary"
type: team priority: '{{ if eq. Labels. severity "critical" }}P1{{ else }}P3{{ end }}'
details:
trace: '{{.Labels. trace_id }}'
runbook: '{{.Annotations. runbook }}'

6) Rauschen, Dedup und Korrelation

Dedup-Schlüssel: Verwenden Sie einen stabilen Fingerabdruck (z. B. Service + Route + Code).
Gruppierung: 'group _ by' nach Service/Umgebung, damit die 5xx Kaskade nicht Dutzende von Seiten generiert.
Meets/Silent Windows: für die Dauer von Migrationen/Releases/Lasttests.
Unterdrückung aus dem Grund: Wenn es bereits einen P1-Vorfall für 'api-gateway @ prod' gibt, unterdrücken Sie die untergeordneten P2/P3.

Anti-Muster: CPU/Memory-Paging ohne bestätigten Einfluss auf SLO.

7) Verknüpfung mit Releases und Auto-Aktionen

Bei der kanarischen Deploy erhält PagerDuty/Opsgenie eine Alert vom SLO-Gate → Webhook in CI/CD → Pause/Rollback (Argo Rollouts/Helm).
Alert enthält: 'release _ id', 'image. tag', Link zur Pipeline und zum Runbook des Rollback-Schritts.

Beispiel für einen Link-Runbook in Anmerkungen


runbook: https://runbooks. company/rollback/api-gateway#canary

8) ChatOps und Kommunikation

Automatische Erstellung eines Incident-Kanals in Slack/Teams, Verknüpfung mit einem Ticket.
Slash-команды: `ack`, `assign @user`, `status set`, `postmortem start`.
Status-Seite: Automatische Aktualisierung bei P1/P2.

9) Lebenszyklus des Vorfalls (Minimum)

1. Trigger (alert von SLO/Sensoren).
2. Page (primary on-call).
3. Ack (Bestätigung, TTA).
4. Kommunikation (Kanal/Status).
5. Mitigate (Rollback/Feature-Flag/Isolation).
6. Resolve (TTR).
7. Postmortem (Zeitlinie, Ursachen, Aktionen, Lektionen, Aufgabeninhaber).

Role-kit: IC (incident commander), Ops lead, Comms, Scribe.

10) Nützliche Felder von payload (normalize)

json
{
"service": "payments-api",
"env": "prod",
"region": "eu-central-1",
"severity": "critical",
"event_class": "slo_burn",
"summary": "Withdraw 5xx > 0. 5% for 10m",
"runbook": "https://runbooks/payments/withdraw-5xx",
"release_id": "rel-2025-11-03-14-20",
"image": "ghcr. io/org/payments:1. 14. 2",
"trace_id": "8a4f0c2e9b1f42d7",
"annotations": { "canary": "25%" }
}

11) Integration von Signalquellen

Prometheus/Alertmanager ist die Hauptquelle von SLO/RED.
Grafana Alerting - einfacher für Dashboards/Business-Metriken.
OpenTelemetry/SpanMetrics - Latenz/Fehler entlang der Routen.
K8s-Ereignisse - Cluster-Crashs (Control-Plane, PDB-Störungen).
DB/Queues - lag/locks/replication.
App-Webhooks - Domain-Signale (PSP-Fehler, Betrugsschub).

12) Richtlinien und Compliance

RBAC zum Erstellen/Ändern von Richtlinien, Zeitplänen, Mutes.
Audit: Wer hat den Status, die Zeitstempel, anerkannt/zugewiesen/geändert.
PII-Minimierung in den Pailoads (Ticket-ID statt Email/Telefon des Nutzers).
DR-Plan: Was tun, wenn PagerDuty/Opsgenie nicht verfügbar ist (Fallback-Kanal).

13) Praxisbeispiele (PagerDuty vs Opsgenie)

MöglichkeitPagerDutyOpsgenie
Eskalationen/ZeitpläneReife, flexibelReife, flexibel
Vorfallsrollen/VorlagenStarke Incident WorkflowsIncident Templates/Stakeholders
Auto-Kanäle/CommsGute IntegrationenDeep Slack/MS Teams
Preisgestaltung/LizenzenOft teurer, viele Add-onsZum Start meist günstiger
Tag-RoutingStark (Service Directory)Stark (Routing Rules)
Beide Plattformen schließen 95% der gleichen Szenarien; Wählen Sie nach Kosten, UX und Ihren Stack-Integrationen.

14) Ruhige Fenster und Frost

Freeze: Verbot von Paging in geplanten Release-Fenstern, so dass nur P1 übrig bleibt.
Jut nach den Tags: 'env = stage', 'region = dr', 'service = batch'.
Temporär mute: bei DB Migration/Loadtests - mit explizitem Besitzer.

15) Leistungsmetriken (SRE/DORA für Alert)

MTTA/MTTR (im Rahmen von Befehlen/Diensten/Schichten).
% Alert mit Runbook (Ziel ≥ 95%).
Anteil der Page Alert nach SLO (Ziel ≥ 90%).
Verhältnis nützlich/laut (Ziel ≥ 3:1).
% Auto-Aktivitäten (Pause/Rollback über Webhook) - wachsen.
Burn-down postmortem Aktionsgegenstände in 14/30 Tagen.

16) Anti-Muster

Paige auf der „Hardware“ (CPU, Festplatte), ohne den Benutzer zu beeinflussen.
Das Fehlen von „group _ by“ → der „Sturm“ der Alert.
Keine leisen Fenster - die Releases färben alles rot.
Payloads ohne' service/env/runbook'- es ist unmöglich zu routen/handeln.
Es gibt keine einheitliche Skala von Severity und Regeln (jede Quelle - auf ihre eigene Weise).
„Ewige“ Warnungen, die niemand repariert (Alert-Pflicht).

17) Checkliste Umsetzung (0-45 Tage)

0-10 Tage

Harmonisierung der Severity-Skala und Standardisierung der Tags/Anmerkungen.
Erstellen Sie Dienste in PagerDuty/Opsgenie, konfigurieren Sie Zeitpläne und grundlegende Eskalationen.
Binden Sie Alertmanager/Grafana ein, aktivieren Sie' group _ by 'und dedup.

11-25 Tage

Geben Sie SLO-Alerts (Multi-Window-Burn) ein, fügen Sie einen Runbook-Link hinzu.
ChatOps einrichten: Auto-Channels, ack/assign-Befehle.
Aktivieren Sie stille Fenster für Releases/Migrationen.

26-45 Tage

Integrieren Sie Auto-Pause/Rollback für Kanarienvögel (Webhooks).
Einführung von MTTA/MTTR-Berichten und Allert-Hygiene (Geräuschreinigung).
Standardisieren Sie Postmortem und Kontrolle über Aktionselemente.

18) Fertige Snippets

Grafana Alerting → PagerDuty (JSON Body Mupping)

json
{
"routing_key": "${PAGERDUTY_ROUTING_KEY}",
"event_action": "trigger",
"payload": {
"summary": "{{.RuleName }}: {{ index. Labels \"service\" }}",
"severity": "{{ if eq (index. Labels \"severity\") \"critical\" }}critical{{ else }}error{{ end }}",
"source": "grafana",
"component": "{{ index. Labels \"env\" }}",
"group": "{{ index. Labels \"region\" }}"
},
"links": [
{ "href": "{{.DashboardURL }}", "text": "Dashboard" },
{ "href": "{{ index. Labels \"runbook\" }}", "text": "Runbook" }
]
}

Webhook aus dem Alert → Argo Rollouts Pause

bash curl -X POST "$ARGO_API/rollouts/pause" \
-H "Authorization: Bearer $TOKEN" \
-d '{"name":"api-gateway","namespace":"prod"}'

Opsgenie - Routing-Regel (Pseudo)

yaml if:
tags: ["service:payments","env:prod"]
severity: ["P1","P2"]
then:
route_to: "SRE-Payments"
notify: ["Primary OnCall","Secondary"]

19) Schlussfolgerung

Eine starke Alert-Schaltung ist ein Prozess + Disziplin: SLO-orientierte Schichtung, kompetentes Routing und Eskalationen, einheitliche Tags und Pailoads, leise Fenster, ChatOps und automatische Aktionen (Pause/Rollback). Wählen Sie PagerDuty oder Opsgenie für Budget und UX, aber halten Sie sich an die gleichen Lärm-, Dienst- und Haftungsregeln - dann ist die Seite selten, genau und nützlich und die Vorfälle sind kurz und überschaubar.

Contact

Kontakt aufnehmen

Kontaktieren Sie uns bei Fragen oder Support.Wir helfen Ihnen jederzeit gerne!

Integration starten

Email ist erforderlich. Telegram oder WhatsApp – optional.

Ihr Name optional
Email optional
Betreff optional
Nachricht optional
Telegram optional
@
Wenn Sie Telegram angeben – antworten wir zusätzlich dort.
WhatsApp optional
Format: +Ländercode und Nummer (z. B. +49XXXXXXXXX).

Mit dem Klicken des Buttons stimmen Sie der Datenverarbeitung zu.