Prometheus Monitoring

Demian Thoma Mär 13, 2020
Prometheus Monitoring

Die Änderung der gesamten Überwachungs-Infrastruktur ist eines der Dinge, die schwieriger zu rechtfertigen sind, da die Umsetzung einige Zeit in Anspruch nimmt und die Auswirkungen nicht sofort ersichtlich sind.

Aber sich von technischen Schulden zu befreien und kürzere Durchlaufzeiten und Verbesserungen zu ermöglichen, ist wesentlicher Teil von Innovation im technischen Bereich. In diesem Beitrag geht es darum, wie wir uns mit unserer neuen Überwachungs-Infrastruktur verbessern konnten.

Wir haben vor kurzem unseren gesamten Überwachungsansatz für Managed Services bei Nine überarbeitet, von einer Blackbox-Überwachung (Ist der Service ausgefallen?) zu einem Whitebox-Überwachungssystem (Warum ist der Service ausgefallen?).

Dies hat zu einem Wechsel von unserem alten auf Nagios basierten System, hin zu einer Lösung rund um Prometheus geführt, die uns viel mehr Einblick in unsere Infrastruktur ermöglicht.

Was ist Prometheus?

pasted image 0In der griechischen Mythologie ist Prometheus ein Titan, Kulturheld und Betrüger, dem die Erschaffung der Menschheit aus Lehm zugeschrieben wird und der den Göttern trotzt, indem er Feuer stiehlt und es der Menschheit als Zivilisation schenkt.

Oder in diesem Fall zeichnet Prometheus Echtzeit-Metriken in einer Zeitreihendatenbank auf, die nach einem Pull-Modell mit flexiblen Abfragen und Echtzeit-Alarmierung aufgebaut sind.

Neue Überwachung und wie uns diese hilft

Wir haben bereits gelernt, dass Prometheus zeitbasierte Metriken sammelt. Unsere zuvor verwendete auf Nagios basierte Lösung, meldete nur die aktuellen Werte einer überwachten Metrik. 

Was ist der Unterschied? Prometheus ermöglicht es, Durchschnittswerte oder sogar Vorhersagen zu berechnen und zu alarmieren. Und es kann auch zur Visualisierung verwendet werden, aber dazu später mehr.

Zum Beispiel:

Brian Brazil drückt es so aus:

Wie oft wurden Sie schon über Speicherplatzüberschreitungen auf der Festplatte benachrichtigt nur um dann festzustellen, dass es Wochen oder sogar Monate dauern wird, bis sich die Festplatte tatsächlich füllt?

Nehmen wir an, Sie erstellen eine Warnung bei einem Schwellenwert von 80%. Wenn Sie eine 10-TB-Festplatte besitzen, erhalten Sie ein Warnung, obwohl Sie noch 2TB Speicherplatz zur Verfügung haben. Wenn der Kunde keine Daten hinzufügt, gibt es zu diesem Zeitpunkt keinen Grund für eine Warnung.

Prometheus ermöglicht es uns eine lineare Vorhersage zu machen, um nur dann zu alarmieren, wenn es wirklich notwendig ist:

- alert: DiskWillFillIn4Hours
    expr: predict_linear(node_filesystem_avail_bytes[1h], 4 * 3600) < 0
    for: 1h
    annotations:
      summary: "Out of disk space in less than 4 hrs (instance )"
      description: "Disk has a size left and will run out of space in less than 4 hrs"

 

Diese Warnung informiert einen Techniker, dass die Festplatte in vier Stunden gefüllt sein wird, falls Daten mit der gleichen Geschwindigkeit wie in der letzten Stunde hinzugefügt werden.

Architektur

pasted image 0-2

https://prometheus.io/docs/introduction/overview/

Prometheus zieht Metriken aus den Anwendungen direkt zusammen, wenn die Anwendungen Metriken im Prometheus-Format direkt zur Verfügung stellen werden, oder aber indirekt über sog. Exporters, die als Gateways zu den Anwendungen dienen und  Metriken im Prometheus-Format bereitstellen.

Benachrichtigungs-Regeln werden auf Prometheus ausgewertet und an den Benachrichtigungs-Manager weitergeleitet. Dieser Benachrichtigungs-Manager leitet dann den Alarm an den entsprechenden Benachrichtigungs-Dienst weiter.

Visualisierung

Da Prometheus eine Zeitreihendatenbank ist, verwenden wir sie nicht nur für die Alarmierungen, sonder die gleichen Daten werden auch für die Visualisierung verwendet. Zum Beispiel können wir Metriken in Grafana inspizieren. Aber mehr dazu in einem Folgebeitrag.

Screenshot 2020-02-24 at 17.38.21

Warum ist Prometheus für jeden geeignet

Nachdem wir Prometheus bereits für die Überwachung unserer Managed Container-Plattform eingesetzt haben, überwachen wir nun unsere gesamte Infrastruktur mit Prometheus. Das sind mehr als 3,5 Millionen Metriken bei über 7000 Services, verteilt über drei Rechenzentren in Zürich.

Aber Prometheus kann nicht nur die Infrastruktur überwachen.t. Es ist auch ein hervorragender Begleiter bei der Überwachung von Anwendungen. Deshalb nutzen wir es auch, um den Einblick in unsere eigenen Tools und Dienste zu überwachen.  Es gibt Entwicklungs-Bibliotheken für die meisten Programmiersprachen, um einfach mit der Instrumentierung einer Anwendung für Prometheus zu beginnen. 

Einige unserer Ingenieure speichern mit Prometheus sogar Metriken von Sensoren in ihrem Haus.

Wenn Sie wissen möchten, wie Prometheus Ihnen helfen kann, Einblicke in Ihre Anwendung zu erhalten, können Sie sich gerne mit uns in Verbindung setzen.

Keinen Blogpost mehr verpassen?  

Jetzt für den nine Blog anmelden