kanman in Rufbereitschaft nehmen: Services und Signalquellen

Legen Sie die Services Ihres Teams an, verbinden Sie Uptime-Checks, Alarmierungstools und Log-Quellen und legen Sie fest, was kanman tun darf, wenn etwas schlechter wird.

Diese Anleitung nimmt kanman für einen Service in Rufbereitschaft: Sie beschreiben den Service, verbinden, woher Alarme kommen und wo Fehler gelesen werden können, und legen fest, was kanman tun darf. Wie Incidents funktionieren, erklärt Incidents und Rufbereitschaft.

Services und Quellen anlegen können Inhaber und Admins des Workspaces. Alle Mitglieder sehen sie, können eine Verbindung testen und an Incidents arbeiten.

1. Service anlegen

  1. Öffnen Sie das Team und klicken Sie auf den Tab Services.
  2. Klicken Sie auf Neuer Service.
  3. Geben Sie einen Namen ein, zum Beispiel „Checkout-API“, und optional eine Beschreibung.
  4. Haken Sie die Repositorys an, aus denen der Service gebaut wird. Angeboten werden nur Repositorys, an denen das Team arbeiten darf; weitere fügen Sie unter Einstellungen > Repositorys des Teams hinzu.
  5. Tragen Sie die Umgebungen ein, zum Beispiel production mit ihrer URL.
  6. Klicken Sie auf Speichern. Die Seite des Service öffnet sich.

2. Festlegen, was kanman tun darf

Auf der Seite des Service unter Rufbereitschaft:

Einstellung Standard Bedeutung
Nur beobachten Aus kanman beobachtet, untersucht und berichtet, handelt aber nie.
Dringende Fixes selbst starten Aus Bei Incidents mit Ursache im Code startet kanman sofort einen Fix. Aus: Es fragt zuerst unter Entscheidungen.
Alarme in der Quelle bestätigen und auflösen Aus Nur PagerDuty und Opsgenie. Aus: kanman ändert den Alarm in Ihrem Tool nie.
Niedrigster Schweregrad, der einen Incident eröffnet Hoch Niedrigere Alarme werden nur erfasst.
Rufbereitschaftszeiten für kanman Immer Außerhalb dieser Zeiten erfasst kanman Alarme, eröffnet aber keinen Incident.
Wer benachrichtigt wird Niemand Mitglieder des Workspaces, benachrichtigt in kanman, wenn ein Incident eröffnet und wenn er aufgelöst wird.
Incident-Orte Alle Kanäle des Teams Die Orte des Teams in Slack oder Microsoft Teams, an denen Incidents gepostet werden.

Klicken Sie auf Speichern. Alle Einstellungen beschreibt Rufbereitschaft-Einstellungen.

Incident-Orte in Slack oder Microsoft Teams

kanman postet Incidents an den Orten, an denen Ihr Team mit kanman spricht. Verbinden Sie Slack oder Microsoft Teams und fügen Sie die Kanäle des Teams unter Einstellungen > Kommunikation des Teams hinzu, wie in Slack und Microsoft Teams beschrieben. Haken Sie dann in der Rufbereitschaft unter Incident-Orte die Kanäle an, die Incidents dieses Service erhalten sollen, zum Beispiel einen eigenen Incident-Kanal. Ist nichts angehakt, erhalten alle Kanäle des Teams sie.

Jeder Incident ist ein Thread pro Ort: kanman eröffnet ihn mit Titel, Schweregrad und Service, ergänzt jede Erkenntnis und Aktion als Antwort und postet am Ende die Auflösung. Incident-Posts erscheinen im Chatverlauf des Teams in der App wie jede andere Nachricht von kanman.

3. Signalquellen verbinden

Klicken Sie auf der Seite des Service auf Quelle hinzufügen, wählen Sie die Art, vergeben Sie einen Namen und füllen Sie die Einstellungen aus. Nach dem Speichern eines Alarmierungstools zeigt kanman einmalig die Webhook-URL und das Secret. Die URL hat diese Form:

https://api.kanman.ai/functions/v1/signal-webhook/<Quell-Token>

Übernehmen Sie beides sofort in Ihr Tool. kanman speichert das Secret verschlüsselt und zeigt es nie wieder an; Secret erneuern erzeugt ein neues (das alte ist sofort ungültig). Speist eine Quelle mehrere Services, haken Sie diese in den Einstellungen der Quelle an.

Nutzen Sie bei jeder Quelle Verbindung testen: Ein Uptime-Check läuft einmal, eine Log-Quelle liest die letzten 15 Minuten, ein Alarmierungstool zeigt, ob Alarme angekommen sind. Ein Test eröffnet nie einen Incident.

Uptime-Check

Einstellungen: URL, Methode, Intervall (ab 60 Sekunden), Timeout, erwartete Statuscodes (zum Beispiel 200 oder 2xx), Text, den die Antwort enthalten muss, Request-Body, wie viele Fehlschläge hintereinander einen Incident eröffnen (Standard 2) und der Schweregrad. Für geschützte Endpunkte fügen Sie Request-Header hinzu, zum Beispiel Authorization; ihre Werte werden verschlüsselt gespeichert. kanman prüft nur öffentliche Adressen. Der erste erfolgreiche Check nach einem Ausfall löst den Incident auf.

Prometheus Alertmanager

Legen Sie einen Receiver an und leiten Sie Ihre Alarme dorthin:

receivers:
  - name: kanman
    webhook_configs:
      - url: https://api.kanman.ai/functions/v1/signal-webhook/<Quell-Token>
        send_resolved: true
        http_config:
          authorization:
            type: Bearer
            credentials: <Secret>

kanman liest severity und service (oder job, app) aus den Labels des Alarms und summary und description aus den Annotationen.

Grafana-Alerting

Legen Sie einen Kontaktpunkt vom Typ Webhook mit der URL an. Setzen Sie unter Optional Webhook settings das Schema des Authorization-Headers auf Bearer und die Zugangsdaten auf das Secret. Alternativ tragen Sie das Secret als HMAC signature-Secret ein. Nutzen Sie den Kontaktpunkt in einer Benachrichtigungsrichtlinie.

Datadog

  1. Fügen Sie unter Integrations > Webhooks einen Webhook namens kanman mit der URL hinzu.
  2. Setzen Sie Custom Headers auf {"X-Kanman-Token": "<Secret>"}.
  3. Verwenden Sie diese Payload:
{"id":"$ID","alert_id":"$ALERT_ID","aggregate":"$AGGREG_KEY","title":"$EVENT_TITLE","transition":"$ALERT_TRANSITION","priority":"$ALERT_PRIORITY","alert_type":"$ALERT_TYPE","body":"$EVENT_MSG","link":"$LINK","tags":"$TAGS","date":"$DATE"}
  1. Erwähnen Sie @webhook-kanman in den Monitoren, die kanman erreichen sollen. Erholungen lösen den Incident auf.

New Relic

Legen Sie ein Webhook-Ziel mit der URL und dem Secret als Bearer-Token an und fügen Sie es einem Workflow mit der Standard-Payload hinzu. Geschlossene Issues lösen den Incident auf.

PagerDuty

  1. Fügen Sie unter Integrations > Generic Webhooks (v3) ein Abo für den Service mit der URL hinzu.
  2. Wählen Sie die Ereignisse incident.triggered, incident.resolved, incident.reopened, incident.escalated und incident.priority_updated.
  3. PagerDuty zeigt ein eigenes Signing-Secret: Bearbeiten Sie die Quelle in kanman und tragen Sie es unter Signing-Secret aus dem Tool ein.
  4. Optional, damit kanman Incidents bestätigen und auflösen kann: Hinterlegen Sie einen REST-API-Schlüssel und die E-Mail des PagerDuty-Nutzers, als der kanman handelt, und schalten Sie für den Service Alarme in der Quelle bestätigen und auflösen ein.

Opsgenie

Fügen Sie eine Webhook-Integration mit der URL und einem eigenen Header X-Kanman-Token mit dem Secret hinzu. Erstellte und geschlossene Alarme erreichen kanman. Optional: Hinterlegen Sie einen API-Schlüssel und wählen Sie die Region, damit kanman Alarme bestätigen und schließen kann.

Sentry

  1. Legen Sie unter Settings > Developer Settings eine interne Integration mit der URL als Webhook-URL an und schalten Sie Alert Rule Action und die Issue-Ereignisse ein.
  2. Tragen Sie das Client Secret der Integration bei der Quelle unter Signing-Secret aus dem Tool ein.
  3. Fügen Sie den Alarmregeln, die kanman erreichen sollen, die Aktion „Send a notification via kanman“ hinzu. Issue-Alarme und Metrik-Alarme werden unterstützt; ein in Sentry aufgelöstes Issue löst den Incident auf.

Amazon CloudWatch

  1. Legen Sie beim SNS-Topic, an das Ihre Alarme senden, ein HTTPS-Abo mit der URL plus ?key=<Secret> an: https://api.kanman.ai/functions/v1/signal-webhook/<Quell-Token>?key=<Secret>
  2. kanman bestätigt das Abo selbst und prüft die AWS-Signatur jeder Nachricht. Optional tragen Sie die Topic-ARN bei der Quelle ein, damit nur dieses Topic angenommen wird.
  3. Setzen Sie den Schweregrad in der Alarmbeschreibung, zum Beispiel [critical] Checkout 5xx; Alarme ohne Angabe gelten als hoch. ALARM eröffnet, OK löst auf.

Azure Monitor

Fügen Sie in der Aktionsgruppe eine Webhook-Aktion mit der URL plus ?key=<Secret> hinzu und schalten Sie das gemeinsame Alarmschema ein. Ausgelöste Alarme eröffnen, aufgelöste lösen auf. Sev0 ist kritisch, Sev1 hoch, Sev2 mittel, Sev3 niedrig.

Atlassian Statuspage

Fügen Sie einen Webhook-Abonnenten mit der URL plus ?key=<Secret> hinzu. Ausfälle von Komponenten und Incidents auf Ihrer Statusseite erreichen kanman; „operational“ oder ein aufgelöster Incident der Statusseite löst auf.

Andere Tools

Senden Sie Alarme im allgemeinen Format von kanman, signiert mit dem Secret. Format und Signatur beschreibt Rufbereitschaft-Einstellungen.

Logs, Fehler und Traces

Log-Quellen senden nichts; kanman liest sie, während es einen Incident untersucht.

Art Einstellungen Zugangsdaten
Grafana Loki API-URL, Abfrage (LogQL-Selektor, zum Beispiel {app="checkout"}), Tenant Bearer-Token, oder Benutzername und Passwort
Datadog Logs API-URL Ihrer Site (zum Beispiel https://api.datadoghq.eu), Suchabfrage API-Schlüssel und Application-Key mit Leserechten auf Logs
Amazon CloudWatch Logs Region, Log-Gruppe, Filtermuster Zugriffsschlüssel, der die Ereignisse der Log-Gruppe filtern darf (nur lesend)
Sentry Organisation, Projekt, API-URL bei selbst gehostetem Sentry Auth-Token mit Leserechten auf Issues und Ereignisse
Kubernetes Namespace, Label-Selektor, Container Keine: Ihr selbst gehosteter Runner liest die Logs mit eigenem Zugriff in Ihrem Netzwerk

kanman liest nur Fehler und Warnungen rund um den Beginn des Incidents und behält die gemeldeten Fehlerzeilen in der Zeitleiste des Incidents.

4. Ausprobieren

Senden Sie einen Testalarm aus Ihrem Tool, oder lassen Sie einen Uptime-Check auf eine Seite zeigen, die einen Fehler liefert. Innerhalb einer Minute erscheint der Incident unter Incidents und in Ihrem Kanal, und kanman beginnt zu posten, was es findet.

Zuletzt aktualisiert: January 1, 0001

kanman öffnen