PagerDuty oder Warum die Betriebsabteilung nachts nicht schlafen kann

Je komplexer das System, desto mehr wird es mit Warnungen aller Art überwuchert. Und es besteht die Notwendigkeit, auf dieselben Warnungen zu reagieren, sie zu aggregieren und zu visualisieren. Ich denke, das ist eine Situation, die vielen bis zur Nervosität bekannt ist.

Die Lösung, die diskutiert wird, ist nicht die unerwartetste, aber die Suche liefert keinen vollständigen Artikel zu diesem Thema.

Deshalb habe ich beschlossen, die Erfahrungen von FunCorp zu teilen und darüber zu sprechen, wie der Dienstprozess strukturiert ist, wer anruft, warum und wie man das Ganze betrachten kann.

PagerDuty oder Warum die Betriebsabteilung nachts nicht schlafen kann

Was ist PagerDuty?

Um all diese Probleme zu lösen, machten wir uns auf die Suche nach einem praktischen Tool. Nach einigem Suchen haben wir uns für PagerDuty entschieden. PD schien uns eine recht vollständige und übersichtliche Lösung mit einer Vielzahl von Integrationen und Einstellungen zu sein. Wie ist sie?

Kurz gesagt ist PagerDuty eine Plattform zur Vorfallverarbeitung, die über verschiedene Integrationen eingehende Vorfälle verarbeiten, Dienstbefehle einrichten und dann den diensthabenden Ingenieur je nach Schweregrad des Vorfalls (auf hoher Ebene – ein Anruf, auf niedriger Ebene –) benachrichtigen kann. ein Push von der Anwendung / SMS) .

Wer ist der diensthabende Beamte?

Dies ist wahrscheinlich der erste Ort, an dem Sie mit der Einrichtung von PD beginnen.

Bei FunCorp gibt es, wie bei anderen Unternehmen auch, ein Ehrenamt als diensthabender Beamter. Es wird einmal täglich von Ingenieur zu Ingenieur übermittelt. Es gibt eine sogenannte erste und zweite Reaktionslinie auf eine Warnung von PagerDuty. Angenommen, ein Alarm mit hoher Priorität geht ein und wenn 10 Minuten nach dem Anruf beim diensthabenden Techniker von der ersten Leitung keine Reaktion erfolgt (d. h. er wird nicht in den Status „Bestätigung“ oder „Gelöst“ versetzt), wird der Anruf an den zweiten weitergeleitet Diensthabender Ingenieur. Dies wird in PagerDuty selbst über Eskalationsrichtlinien konfiguriert.

PagerDuty oder Warum die Betriebsabteilung nachts nicht schlafen kann

Wenn der zweite Dienstoffizier nicht antwortet, wird die Benachrichtigung an zurückgegeben der haupt an den diensthabenden Beamten.

Daher kann eine eingehende Warnung mit hoher Priorität nicht unbearbeitet bleiben. 

Schauen wir uns nun an, woher Vorfälle kommen können.

Welche Integrationen verwenden wir?

PD erhält viele verschiedene Vorfälle von verschiedenen Diensten. Derzeit verfügen wir über etwa 25 solcher Dienste und für deren Abwicklung nutzen wir einige vorgefertigte Integrationen.

  • Prometheus

Das wichtigste Metrikerfassungssystem ist Prometheus. Auf Habré wurde bereits viel darüber geschrieben. Ich möchte nur sagen, dass wir mehrere davon für verschiedene Umgebungen haben: Eines sammelt Metriken von virtuellen Maschinen und Dockern, ein anderes von Amazon-Diensten und das dritte von Hardware-Maschinen. Telegraf wird hauptsächlich als Metrikexporteur verwendet.

  • E-Mail

Auch hier ist meiner Meinung nach aus dem Titel alles klar. Diese Integration wird verwendet, um Benachrichtigungen von einigen von Cron ausgeführten Skripten zu senden. PD gibt Ihnen eine bestimmte Adresse, an die Sie Briefe senden. Beim Erstellen eines Dienstes mit einer solchen Integration können Sie Prioritäten festlegen, in welcher Reihenfolge eingehende Vorfälle verarbeitet werden, wie genau eine Warnung erstellt werden soll (für jeden eingehenden Brief, für einen eingehenden Brief + eine bestimmte Regel usw.).

PagerDuty oder Warum die Betriebsabteilung nachts nicht schlafen kann

  • Slack

Meiner Meinung nach eine sehr interessante Integration. Es gibt Zeiten, in denen etwas passiert, aber nicht durch Vorfälle abgedeckt wird. Deshalb haben wir die Integration von Slack hinzugefügt, um einen Vorfall zu erstellen. Das heißt, Sie können an Corporate Slack schreiben /callofduty alles ist langsam und wird bald kaputt gehen und der PD wird es bearbeiten und den Vorfall an den diensthabenden Ingenieur weiterleiten.

Wir machen:

PagerDuty oder Warum die Betriebsabteilung nachts nicht schlafen kann

Wir sehen:

PagerDuty oder Warum die Betriebsabteilung nachts nicht schlafen kann

  • API

HTTP-Integration. Tatsächlich gibt es hier nichts besonders Interessantes, nur eine POST-Anfrage mit einem Text im JSON-Format. Zum Beispiel etwas Interessantes: Wir verwenden es zur externen Überwachung https://www.statuscake.com/. Dieser Dienst überprüft die Erreichbarkeit unserer Websites aus verschiedenen Teilen der Welt. Für den Fall, dass wir einen inakzeptablen Antwortcode erhalten (z. B. 502), wird ein Vorfall erstellt und dann folgt alles der oben beschriebenen Kette. StatusCake selbst verfügt über die Möglichkeit, interne URLs, SSL-Zertifikate oder den Ablauf einer Domäne zu überwachen.

  • FreeNMS

Dies ist ein weiteres Überwachungssystem. Mehr darüber können Sie auf deren Website lesen https://www.librenms.org/. Mit seiner Hilfe überwachen wir Netzwerkschnittstellen und iDRAC von Servern.

PagerDuty oder Warum die Betriebsabteilung nachts nicht schlafen kann

Es gab auch Integrationen wie Datadog, CloudWatch. Sie können mehr darüber erfahren, was mit ihnen passiert ist hierher.

Visualisierung

Das wichtigste System zur Meldung von Vorfällen ist Slack. Alle Vorfälle, die bei PD eingehen, werden in einen speziellen Chat geschrieben, und wenn sich ihr Status ändert, wird dies auch im Chat angezeigt.

PagerDuty oder Warum die Betriebsabteilung nachts nicht schlafen kann

Als sich die Gelegenheit ergab, nützliche Daten auf den Bildschirmen von an der Decke hängenden Monitoren anzuzeigen, wurde uns plötzlich klar, dass wir (in der Entwicklungsabteilung) nichts darauf anzuzeigen hatten. Es gibt ein wunderbares Grafana, aber es deckt nicht alles ab und die Mitarbeiter reagieren auf Warnungen, nicht auf Diagramme.

Nach einer gründlichen, aber erfolglosen Suche auf GitHub nach einem prägnanten und informativen „Board“ für PD beschlossen wir, unser eigenes zu schreiben – nur mit dem, was wir brauchten. Obwohl zunächst die Idee bestand, die PD-Schnittstelle selbst anzuzeigen, sah dies noch unbequemer aus.

Um es zu schreiben, müssen Sie lediglich einen Schlüssel von einem PD mit Nur-Lese-Rechten erhalten.
Und das haben wir bekommen:

PagerDuty oder Warum die Betriebsabteilung nachts nicht schlafen kann

Auf dem Bildschirm werden die aktuell offenen Vorfälle, der Name des aktuell diensthabenden Ingenieurs aus dem ausgewählten Zeitplan und die Zeit ohne Vorfall mit hoher Priorität angezeigt (das Feld mit einem Vorfall mit hoher Priorität wird rot hervorgehoben).

Die Quellen dieser Implementierung finden Sie hier.

Als Ergebnis erhielten wir ein praktisches Dashboard zur Anzeige aller unserer Vorfälle. Ich würde mich freuen, wenn einige von Ihnen unsere Erfahrung nützlich finden.

Source: habr.com

Kommentar hinzufügen