Technische Dokumentation von Prometheus – Konzept

 Prometheus ist ein Open-Source-Projekt mit folgendem Link:

Prometheus-Homepage, Dokumentation und Downloads – Service Monitoring System – OSCHINA – Chinesische Open-Source-Technologie-Austausch-Community

Basiskonzept:

 

        Prometheus ist ein Open-Source-Systemüberwachungs- und Warnsystem, das aus dem BorgMon-Überwachungssystem von Google entwickelt wurde. Es wird hauptsächlich zur Überwachung und Messung verschiedener Zeitreihendaten wie Systemleistung, Netzwerklatenz, Anwendungsfehler usw. verwendet. Prometheus sammelt Überwachungsdaten, speichert sie in einer Zeitreihendatenbank und verwendet dann die PromQL-Abfragesprache für die Datenanalyse und -visualisierung. Zu den Kernkomponenten von Prometheus gehören Prometheus Server, Exporters und Pushgateway. Es unterstützt mehrere Service-Erkennungsmechanismen wie Kubernetes, EC2, GCE usw., um den Betriebsstatus von Diensten automatisch zu erkennen und zu überwachen. Prometheus bietet außerdem Sicherheits- und Berechtigungskontrollmechanismen wie Authentifizierung, Autorisierung usw., um die Sicherheit des Datenzugriffs zu gewährleisten. Es ist nach k8s das zweitgrößte von CNCF gehostete Projekt und wird häufig bei der Überwachung verschiedener Rechenzentrumsumgebungen eingesetzt.

Hat die folgenden Eigenschaften:

  • Hochdimensionales Datenmodell

  • benutzerdefinierte Abfragesprache

  • Visuelle Datenanzeige

  • effiziente Lagerstrategie

  • Einfach zu bedienen und zu warten

  • Stellen Sie verschiedene Client-Entwicklungsbibliotheken bereit

  • Warnungen und Alarme

  • Datenausgabe

Lernen Sie wichtige Konzepte von Prometheus kennen

  1. Überwachungsindikatoren (Metriken): Prometheus sammelt verschiedene Überwachungsdaten und speichert sie als Zeitreihendaten. Diese Daten beschreiben verschiedene Aspekte des Systems durch spezifische Metriken, wie z. B. CPU-Auslastung des Systems, Netzwerkverkehr, Anwendungsfehler usw.
  2. Speicherpersistenz: Prometheus speichert die gesammelten Überwachungsdaten in einer Zeitreihendatenbank, die speziell für die Speicherung umfangreicher Zeitreihendaten konzipiert ist. Prometheus unterstützt mehrere Speicher-Backends, z. B. lokale Festplatte, Remote-Speicher usw.
  3. Abfragesprache: Prometheus verwendet PromQL als Datenabfragesprache. Mit PromQL können Benutzer Überwachungsdaten aus dem Repository abfragen, analysieren und auf verschiedene Arten visualisieren.
  4. Warnregeln: Prometheus stellt Warnregeln zum Auslösen von Warnungen basierend auf Schwellenwerten von Überwachungsdaten bereit. Benachrichtigungen können an verschiedene Empfänger wie E-Mail, Slack, PagerDuty usw. gesendet werden.
  5. Datenvisualisierung: Prometheus bietet eine Dashboard-Schnittstelle (Dashboard) zur Anzeige von Überwachungsdaten und Alarmstatus. Benutzer können ihre eigenen Dashboards per Drag & Drop erstellen und Konfigurationen anpassen.
  6. Diensterkennung: Prometheus unterstützt verschiedene Diensterkennungsmechanismen wie Kubernetes, EC2, GCE usw., um den Betriebsstatus von Diensten automatisch zu erkennen und zu überwachen.
  7. Sicherheit und Zugriffskontrolle (Security and Access Control): Prometheus stellt auch Mechanismen zur Sicherheit und Zugriffskontrolle wie Authentifizierung, Autorisierung usw. bereit, um die Sicherheit des Datenzugriffs zu gewährleisten.
  8. Datenextraktion: Prometheus unterstützt auch das Extrahieren von Daten aus anderen Datenquellen, z. B. die Verwendung von Pushgateway, um Daten, die nicht direkt von Prometheus erfasst werden können, an Pushgateway zu übertragen, und dann extrahiert Prometheus Daten aus Pushgateway.

Prometheus unterstützt mehrere Service-Erkennungsmechanismen, um den Ausführungsstatus von Diensten automatisch zu erkennen und zu überwachen:

  1. Kubernetes: Prometheus kann in den Kubernetes-Cluster integriert werden, um Dienste und Container in Kubernetes über die Kubernetes-API automatisch zu erkennen und zu überwachen. Dieser Diensterkennungsmechanismus eignet sich für verteilte Systeme, die in einer Kubernetes-Umgebung ausgeführt werden.
  2. EC2 (Elastic Cloud Compute): EC2 ist ein Cloud-Dienst, der von Amazon Web Services (AWS) bereitgestellt wird. Prometheus kann EC2-Instanzen über die EC2-API erkennen und überwachen. Dieser Service-Erkennungsmechanismus eignet sich für verteilte Systeme, die in der AWS-Umgebung ausgeführt werden.
  3. GCE (Google Cloud Engine): GCE ist ein von Google Cloud bereitgestellter Cloud-Dienst. Prometheus kann GCE-Instanzen über die GCE-API erkennen und überwachen. Dieser Diensterkennungsmechanismus eignet sich für verteilte Systeme, die in der Google Cloud-Umgebung ausgeführt werden.

Diese Diensterkennungsmechanismen ermöglichen es Prometheus, verschiedene Dienste und Instanzen automatisch zu erkennen und zu überwachen und so den Überwachungsprozess zu vereinfachen und zu automatisieren.

Zu verwendende Szenen:

Prometheus ist ein weit verbreitetes Open-Source-Systemüberwachungs- und Warnsystem, das für eine Vielzahl von Szenarien geeignet ist. Hier sind einige häufige Nutzungsszenarien:

  1. Cloud-natives Ökosystem: Prometheus ist eines der verwalteten Projekte der CNCF (Cloud Native Computing Foundation) und eng in Cloud-native-Technologien wie Kubernetes integriert. Es wird häufig im Cloud-nativen Ökosystem verwendet, um Dienste und Container in Kubernetes-Clustern automatisch zu erkennen und zu überwachen.
  2. Verteilte Systeme und Microservices: Prometheus eignet sich für verteilte Systeme und Microservice-Architekturen und kann Leistungsindikatoren verschiedener Dienste und Anwendungen überwachen, wie z. B. CPU-Auslastung, Speicherverbrauch, Netzwerklatenz usw.
  3. Überwachung der Systemleistung und des Zustands: Prometheus kann die Leistung und den Zustand des gesamten Systems überwachen, einschließlich Servern, Netzwerkgeräten, Betriebssystemen und mehr. Es kann verschiedene Leistungsindikatoren auf Systemebene erfassen, z. B. CPU-Auslastung, Festplattennutzung, Netzwerkbandbreite usw.
  4. Überwachung von Geschäftsindikatoren: Prometheus kann auch zur Überwachung von Geschäftsindikatoren wie Anwendungsfehlerrate, Benutzeraktivität, Geschäftstransaktionsvolumen usw. verwendet werden. Diese Metriken können Entwicklern und Geschäftsanalysten dabei helfen, die Systemleistung und die Geschäftsbedingungen besser zu verstehen.
  5. Automatisierte Bereitstellung und Containerverwaltung: Prometheus kann in automatisierte Bereitstellungs- und Containerverwaltungstools wie Docker, Kubernetes, Helm usw. integriert werden. Es überwacht die Prozesse zum Erstellen, Löschen und Aktualisieren von Containern und automatisiert den Prozess und die Ergebnisse von Bereitstellungen.
  6. Echtzeitalarm und Notfallreaktion: Prometheus und AlertManager können Alarmregeln festlegen und Alarme auslösen. Benachrichtigungen können an verschiedene Empfänger gesendet werden, z. B. per E-Mail, Slack, PagerDuty usw., um Echtzeitwarnungen und Notfallmaßnahmen zu ermöglichen.

Grund für die Verwendung

  1. Open-Source- und Community-Unterstützung: Prometheus ist ein Open-Source-Projekt mit einer großen Community-Unterstützung und Benutzerbasis. Dies erleichtert Benutzern den Zugriff auf verschiedene Ressourcen und Support wie Dokumentation, Beispiele und Plugins.
  2. Benutzerfreundlichkeit: Prometheus verfügt über eine einfache Architektur und ist einfach zu installieren und zu konfigurieren. Es verwendet ein einfaches Datenmodell und eine einfache Abfragesprache, sodass Benutzer Daten einfach sammeln, speichern und analysieren können.
  3. Datenerfassung und Skalierbarkeit: Prometheus unterstützt eine Vielzahl von Datenerfassungsmethoden, z. B. statische Konfiguration, Serviceerkennung und automatische Erkennung. Es kann auch die Leistung und Kapazität der Überwachung durch Skalierung steigern.
  4. Datenabfrage und -visualisierung: Prometheus verfügt über eine integrierte leistungsstarke Datenabfragesprache (PromQL), mit der Benutzer Daten einfach abfragen und analysieren können. Darüber hinaus bietet Prometheus auch Visualisierungsfunktionen, mit denen Daten Benutzern in Form von Diagrammen angezeigt werden können.
  5. Alarmfunktion: Prometheus arbeitet mit AlertManager zusammen, um Alarmregeln festzulegen und Alarme auszulösen. Benachrichtigungen können an verschiedene Empfänger gesendet werden, z. B. per E-Mail, Slack, PagerDuty usw., um Echtzeitwarnungen und Notfallmaßnahmen zu ermöglichen.
  6. Enge Integration mit Cloud-nativen Technologien: Prometheus ist eng mit Cloud-nativen Technologien wie Kubernetes integriert und kann Dienste und Container in Kubernetes-Clustern automatisch erkennen und überwachen. Daher ist die Verwendung von Prometheus in einer Cloud-nativen Umgebung eine natürliche Wahl.

Vergleich ähnlicher Produkte:

Zu den Produkten des gleichen Typs wie Prometheus gehören Open-Falcon, Zabbix und Graphite. So vergleichen sie:

1. Open-Falcon: Open-Falcon ist ein Open-Source-Überwachungssystem mit leistungsstarken Datenerfassungs-, Speicher- und Analysefunktionen. Es unterstützt mehrere Datenquellen und Protokolle und verfügt über einen flexiblen Alarmmechanismus. Open-Falcon verfügt über eine flexible Architektur, die flexibel erweitert und mit vielen anderen Technologien integriert werden kann. Im Vergleich zu Prometheus verfügt Open-Falcon über mehr Funktionen bei der Datenerfassung und Alarmierung, ist jedoch einfacher im Datenmodell und in der Abfragesprache.

2. Zabbix: Zabbix ist ein ausgereiftes Überwachungssystem mit großem Funktionsumfang und starker Leistung. Es unterstützt eine Vielzahl von Überwachungsmethoden, einschließlich aktiver und passiver Überwachung, und kann Überwachungsskripte anpassen. Zabbix verwendet eine relationale Datenbank zum Speichern von Daten und verfügt über leistungsstarke Berichts- und Analysefunktionen. Im Vergleich zu Prometheus ist Zabbix in Bezug auf Funktionen und Leistung ausgereifter, in Bezug auf Datenmodell und Abfragesprache jedoch traditioneller.

Macrotime Data-Zabbix China

3. Graphite: Graphite ist ein System, das sich auf die Datenspeicherung und Visualisierung von Leistungsindikatoren konzentriert. Es verwendet ein einfaches Datenmodell und ermöglicht die Speicherung benannter Zeitreihendaten. Graphite verfügt über schnelle Abfrage- und Visualisierungsfunktionen, seine Fähigkeiten sind jedoch im Vergleich zu anderen Überwachungssystemen begrenzt. Im Vergleich zu Prometheus bietet Graphite Vorteile bei der Datenvisualisierung und -speicherung, ist jedoch einfacher im Datenmodell und in der Abfragesprache.

        Jedes dieser Systeme hat Vor- und Nachteile und die Auswahl des Systems hängt von den spezifischen Anforderungen und Nutzungsszenarien ab. Prometheus bietet Vorteile in Bezug auf Datenmodell, Abfragesprache und Community-Unterstützung , erfordert jedoch möglicherweise zusätzliche Komponenten in Bezug auf Datenerfassung und -speicherung . Open-Falcon verfügt über mehr Funktionen in der Datenerfassung und Alarmierung, während Zabbix in Bezug auf Funktionen und Leistung ausgereifter ist und Graphite sich auf die Speicherung und Visualisierung von Leistungsindexdaten konzentriert.

Vergleich der Versionsaktualisierungen:

  1. Prometheus 2.0.0: Diese Version bringt eine neue Speicher-Engine mit, die in Kombination mit Änderungen am Abrufsystem erhebliche Leistungsverbesserungen bringen kann. Darüber hinaus ist es möglich, Millionen von Samples pro Sekunde vom Prometheus-Server zu sammeln. Außerdem ist die neue Speicher-Engine nicht abwärtskompatibel, aber es gibt eine Möglichkeit, transparent auf alte Daten zuzugreifen, die noch in 1.x gespeichert sind. Darüber hinaus verbessert diese Version die veraltete Semantik in PromQL, sodass jetzt nur noch ein Scrape-Intervall erforderlich ist, um eine Zeitreihe ungültig zu machen, anstatt die gesamten 5 Minuten zu warten. Das Regeldateiformat wurde ebenfalls auf YAML geändert, wobei die Regeln in Gruppen organisiert und nacheinander ausgeführt werden. Aus Sicherheitsgründen sind die Admin- und Lifecycle-APIs standardmäßig deaktiviert.
  2. Prometheus 1.8.0: Zu den wichtigsten Änderungen in dieser Version gehören eine verbesserte Konfiguration für das Remote-Schreiben und Abrufen von Beispielen, die eine bessere Kontrolle über die Speichernutzung ermöglicht; eine verbesserte HTTP-Aufnahme, einschließlich Fehlerbehandlung und -konfiguration; verbesserte Überwachung, einschließlich einer laufenden Drosselung. Die Anzahl der HTTP-Anfragen; und verbesserte Kompatibilität des Textanzeigeformats, wodurch mehr Situationen unterstützt werden.

        Jede Version von Prometheus verfügt über einige Aktualisierungen und Verbesserungen, darunter Speicher-Engine, PromQL, Regeldateiformat und andere Aspekte. Benutzer können je nach Bedarf die passende Version auswählen. Gleichzeitig wird Prometheus ständig weiterentwickelt und verbessert, um den sich ändernden Überwachungsanforderungen und der technischen Umgebung gerecht zu werden.

Supongo que te gusta

Origin blog.csdn.net/weixin_72186894/article/details/132159485
Recomendado
Clasificación