Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Eine Einführung in Prometheus und Grafana

Grafana
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Prometheus ist ein Open-Source-Überwachungssystem auf Metrikbasis. Es sammelt Daten von Diensten und Hosts, indem HTTP-Anforderungen an Metrikendpunkte gesendet werden. Anschließend werden die Ergebnisse in einer Zeitreihendatenbank gespeichert und für Analysen und Warnungen zur Verfügung gestellt.

Why monitor?

  • Aktiviert Warnungen, wenn etwas schief geht, vorzugsweise bevor es schief geht. Damit sich jemand das ansehen kann.
  • Es bietet Einblicke in die Analyse, das Debuggen und die Lösung des Problems.
  • Es ermöglicht Ihnen, Trends / Änderungen im Laufe der Zeit zu sehen. Zum Beispiel, wie viele aktive Sitzungen zu einem bestimmten Zeitpunkt. Dies hilft bei Entwurfsentscheidungen und Kapazitätsplanung.

Die Überwachung bezieht sich normalerweise auf Ereignisse. Ein Ereignis kann das Empfangen einer HTTP-Anforderung, das Senden einer Antwort, das Lesen von der Festplatte und eine Benutzeranmeldung umfassen. Die Überwachung eines Systems kann Profilerstellung, Protokollierung, Nachverfolgung, Metriken, Alarmierung und Visualisierung umfassen.

Blackbox vs. Whitebox monitoring

Die Überwachung fällt unter zwei Hauptkategorien:

Blackbox-Überwachung

Bei der Blackbox-Überwachung erfolgt die Überwachung auf Anwendungs- oder Hostebene, da sie von außen beobachtet wird. Dies kann sehr einschränkend sein.

Whitebox-Überwachung

Whitebox-Überwachung bedeutet die Überwachung der Interna eines Dienstes. Es würde Daten über den Status und die Leistung der internen Komponenten verfügbar machen.

Prometheus

The four golden signals

Laut GoogleWenn Sie nur vier Metriken Ihres Benutzersystems messen können, konzentrieren Sie sich auf die folgenden vier, die als vier goldene Signale bezeichnet werden:

# 1. Latency

Die Zeit, die benötigt wird, um eine Anfrage zu bearbeiten - erfolgreich oder fehlgeschlagen. Es ist wichtig, nicht nur erfolgreiche, sondern auch fehlgeschlagene Anfragen zu verfolgen.

# 2. Traffic

Ein Maß dafür, wie viel Bedarf an Ihr System gestellt wird. Bei einem Webdienst sind dies normalerweise HTTP-Anforderungen pro Sekunde.

# 3. Fehler

Die Rate der fehlgeschlagenen Anforderungen.

# 4. Sättigung

Wie voll Ihr Service ist. Die Erhöhung der Latenz ist häufig ein wichtiger Indikator für die Sättigung. Viele Systeme verschlechtern ihre Leistung erheblich, bevor sie eine 100% ige Auslastung erreichen.

Prometheus metrics types

Es gibt vier Haupttypen von Prometheus-Metriken:

# 1. Zähler

Der Wert eines Zählers erhöht sich immer. Es kann niemals abnehmen, aber es kann auf Null zurückgesetzt werden. Wenn ein Scrape fehlschlägt, bedeutet dies nur einen fehlenden Datenpunkt. Die kumulierte Erhöhung wäre beim nächsten Lesen verfügbar. Beispiele:

  • Gesamtzahl der empfangenen HTTP-Anforderungen
  • Die Anzahl der Ausnahmen.

# 2. Messen

Ein Messgerät ist zu jedem Zeitpunkt eine Momentaufnahme. Es kann sowohl zunehmen als auch abnehmen. Wenn ein Datenabruf fehlschlägt, verlieren Sie ein Beispiel. Der nächste Abruf zeigt möglicherweise einen anderen Wert: Beispiele für Speicherplatz, Speichernutzung.

# 3. Histogramm

Ein Histogramm nimmt Beobachtungen auf und zählt sie in konfigurierbaren Eimern. Sie werden beispielsweise für Anforderungsdauer oder Antwortgrößen verwendet. Sie können beispielsweise die Anforderungsdauer für eine bestimmte HTTP-Anforderung messen. Das Histogramm enthält eine Reihe von Buckets, z. B. 1 ms, 10 ms und 25 ms. Anstatt jede Dauer für jede Anfrage zu speichern, speichert Prometheus die Häufigkeit von Anfragen, die in einen bestimmten Bucket fallen.

# 4. Zusammenfassung

Ähnlich wie bei Beobachtungen mit Histogrammproben werden normalerweise Dauer oder Antwortgrößen angefordert. Es liefert eine Gesamtzahl der Beobachtungen und eine Summe aller beobachteten Werte, sodass Sie den Durchschnitt der beobachteten Werte berechnen können. In einer Minute hatten Sie beispielsweise drei Anfragen, die 2,3,4 Sekunden dauerten. Die Summe wäre 9 und die Anzahl wäre 3. Die Latenz wäre 3 Sekunden.

Components of Prometheus ecosystem

Prometheus Architektur

Der Prometheus-Server

Sammelt Metriken, speichert sie und stellt sie für Abfragen zur Verfügung, sendet Warnungen basierend auf den gesammelten Metriken.

Kratzen

Prometheus ist ein Pull-basiertes System. Um Metriken abzurufen, sendet Prometheus eine HTTP-Anfrage, die als Scrape bezeichnet wird. Es sendet Kratzer basierend auf seiner Konfiguration an Ziele.

Jedes Ziel (statisch definiert oder dynamisch erkannt) wird in regelmäßigen Abständen (Kratzintervall) abgekratzt. Jedes Scrape liest den HTTP-Endpunkt /metrics, um den aktuellen Status der Client-Metriken abzurufen, und behält die Werte in der Prometheus-Zeitreihendatenbank bei.

Da sind mehr Zeitreihendatenbanken Für Überwachungslösungen, die Sie möglicherweise untersuchen möchten.

Client-Bibliotheken

Um einen Dienst zu überwachen, müssen Sie Ihrem Code Instrumente hinzufügen. Für alle gängigen Sprachen und Laufzeiten stehen Client-Bibliotheken zur Verfügung. Wenn Sie diese Bibliotheken verwenden, kann Ihr Code nach dem Hinzufügen einiger Codezeilen Metriken ausgeben. Dies wird als direkte Instrumentierung bezeichnet. Mit diesen Bibliotheken können Sie interne Metriken definieren und diese auch über einen HTTP-Endpunkt verfügbar machen. Wenn Prometheus den HTTP-Endpunkt für Metriken abkratzt, sendet die Clientbibliothek die Metriken an den Server.

Offizielle Client-Bibliotheken werden von Prometheus für Go, Java, Python und Ruby angeboten. Prometheus hat ein offenes Ökosystem. Es gibt auch von der Community erstellte Client-Bibliotheken für C, PHP, Node.js, C # /. NET und viele andere.

Exporteure

Viele Anwendungen stellen Metriken im Nicht-Prometheus-Format zur Verfügung. Für diese und für Anwendungen, die Sie nicht besitzen oder für die Sie keinen Zugriff auf Code haben, können Sie keine Instrumente direkt hinzufügen. Zum Beispiel MySQL-, Kafka-, JMX-, HAProxy- und NGINX-Server. In diesen Szenarien verwenden Sie Exporteure.

Ein Exporter ist ein Tool, das Sie zusammen mit der Anwendung bereitstellen, von der Sie Metriken möchten. Ein Exporteur fungiert als Stellvertreter zwischen dem Antrag und Prometheus. Es empfängt Anforderungen vom Prometheus-Server, sammelt Daten aus den Zugriffsprotokollen und Fehlerprotokollen der Anwendung, wandelt sie in das richtige Format um und kehrt schließlich zum Prometheus-Server zurück.

Einige der beliebtesten Exporteure sind:

  • Windows - für Windows Server-Metriken
  • Knoten - für Linux-Servermetriken
  • Blackbox - für DNS- und Website-Leistungsmetriken
  • JMX - für Java-basierte Anwendungsmetriken

Sobald die Anträge instrumentiert wurden oder die Exporteure vorhanden sind, müssen Sie Prometheus mitteilen, wo sie sich befinden. Dies kann mithilfe der statischen Konfiguration erfolgen. In dynamischen Umgebungen ist dies nicht möglich. Daher wird die Serviceerkennung verwendet.

Alarmieren

Die Alarmierung mit Prometheus besteht aus zwei Teilen -

Warnungsregeln senden Warnungen an den Alertmanager.

Der Alertmanager verwaltet diese Alerts dann. Es sendet Benachrichtigungen über viele sofort einsatzbereite Integrationen wie E-Mail, Slack, Hipchat und PagerDuty. Der Alertmanager kann auch eine Stummschaltung oder Aggregation durchführen, um die Anzahl der Benachrichtigungen zu verringern.

Hier ist die Guide zur Überwachung des Linux-Servers mit Prometheus und Dashboard.

Visualizing with Dashboards

Prometheus verfügt über eine Reihe von APIs, mit denen PromQL-Abfragen Rohdaten für Visualisierungen erstellen können.

Obwohl Prometheus einen Ausdrucksbrowser enthält, der für Ad-hoc-Abfragen verwendet werden kann, ist das beste verfügbare Tool Grafana. Grafana lässt sich vollständig in Prometheus integrieren und kann eine Vielzahl von Dashboards erstellen.

Sie müssen Prometheus als Datenquelle für Grafana konfigurieren.

Sie können Dashboards hinzufügen, indem Sie:

  • Von der Community erstellte Dashboards importieren
  • Bauen Sie Ihre eigenen
  • Verwenden eines vordefinierten Dashboards.

So sieht ein vordefiniertes Nodexporter-Dashboard aus:

Grafana Node Exporter

Grafana hat eine WeltPing Modul, mit dem Sie Site- und DNS-Leistungsmetriken weltweit überwachen können.

Zusammenfassung

Prometheus hat nur sehr wenige Anforderungen. Die Ausführung kann recht einfach sein, da es sich um eine einzelne Binärdatei mit einer Konfigurationsdatei handelt. Es kann Tausende von Zielen verarbeiten und Millionen von Proben pro Sekunde aufnehmen. Prometheus wurde entwickelt, um das Gesamtsystem, den Zustand und das Verhalten des Systems zu verfolgen.

Grafana ist das beste verfügbare Tool zur Visualisierung von Metriken und lässt sich nahtlos integrieren Prometheus.

Danke an unsere Sponsoren
Weitere großartige Lektüren zum Thema Cloud Computing
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder