1. Einführung in PrometheusPrometheus ist eine Open-Source-Kombination aus Überwachungs-, Alarm- und Zeitreihendatenbank, die ursprünglich von SoundCloud entwickelt wurde. Im Laufe der Entwicklung sind immer mehr Unternehmen und Organisationen bereit, Prometheus zu übernehmen, und die Community ist sehr aktiv. Sie haben es in ein Open-Source-Projekt ausgegliedert und lassen es von einem Unternehmen betreiben. Im Buch von Google SRE wird auch erwähnt, dass Prometheus eine Implementierung ist, die ihrem BorgMon-Überwachungssystem ähnelt. Das gängigste Kubernetes-Containerverwaltungssystem wird normalerweise mit Prometheus überwacht. Das Grundprinzip von Prometheus besteht darin, den Status überwachter Komponenten regelmäßig über das HTTP-Protokoll zu erfassen. Dies hat den Vorteil, dass jede Komponente, die eine HTTP-Schnittstelle bereitstellt, an das Überwachungssystem angeschlossen werden kann, ohne dass ein SDK oder ein anderer Integrationsprozess erforderlich ist. Dies eignet sich sehr gut für virtualisierte Umgebungen wie VM oder Docker. Prometheus sollte eines der wenigen Überwachungssysteme sein, das für Docker-, Mesos- und Kubernetes-Umgebungen geeignet ist. Die HTTP-Schnittstelle, die Informationen zu überwachten Komponenten exportiert, wird Exporter genannt. Derzeit verfügen die meisten von Internetunternehmen häufig verwendeten Komponenten über Exporter, die direkt verwendet werden können, z. B. Varnish, Haproxy, Nginx, MySQL, Linux-Systeminformationen (einschließlich Festplatte, Speicher, CPU, Netzwerk usw.). Bestimmte unterstützte Quellen finden Sie unter: https://github.com/prometheus. Im Vergleich zu anderen Überwachungssystemen sind die Hauptfunktionen von Prometheus:
2. Überblick über die Prometheus-ArchitekturDieses Diagramm veranschaulicht die Gesamtarchitektur von Prometheus und einige seiner Ökosystemkomponenten: Der Serviceprozess ist wie folgt: Der Prometheus-Daemon ist für das regelmäßige Abrufen von Messdaten vom Ziel verantwortlich. Jedes Abrufziel muss eine HTTP-Serviceschnittstelle für das regelmäßige Abrufen bereitstellen. Prometheus: unterstützt das Festlegen von Crawling-Zielen über Konfigurationsdateien, Textdateien, Zookeeper, Consul, DNS-SRV-Suche usw. Es unterstützt viele Arten der Diagrammvisualisierung, wie etwa das sehr exquisite Grafana, das integrierte Promdash und seine eigene Vorlagen-Engine usw. Es bietet auch HTTP-API-Abfragemethoden zum Anpassen der erforderlichen Ausgabe. Alertmanager: Dies ist eine von Prometheus unabhängige Komponente, die Prometheus-Abfrageanweisungen unterstützen und eine sehr flexible Alarmmethode bereitstellen kann. PushGateway: Diese Komponente unterstützt den Client dabei, Metriken aktiv an PushGateway zu übertragen, während Prometheus nur regelmäßig Daten vom Gateway abruft. Wenn Sie statsd verwendet haben, werden Sie feststellen, dass es sehr ähnlich ist, mit der Ausnahme, dass statsd Daten direkt an den Server sendet, während Prometheus hauptsächlich auf die aktive Erfassung durch den Prozess angewiesen ist. Die meisten Prometheus-Komponenten sind in Go geschrieben und können einfach als statische Binärdateien erstellt und bereitgestellt werden. Besuchen Sie prometheus.io für vollständige Dokumentation, Beispiele und Anleitungen. 3. Prometheus-DatenmodellGrundsätzlich wird die gesamte Speicherung in Prometheus in Zeitreihen implementiert. Dieselben Metriken (Metrikname) und Bezeichnungen (eine oder mehrere Bezeichnungen) bilden eine Zeitreihe, und unterschiedliche Bezeichnungen repräsentieren unterschiedliche Zeitreihen. Um einige Abfragen zu unterstützen, wird manchmal vorübergehend ein Zeitreihenspeicher generiert. Metrikname und -bezeichnung, Indikatorname und -bezeichnung Jede Zeitreihe besteht aus einem eindeutigen „Metriknamen“ und einer Reihe von „Beschriftungen (Schlüssel=Wert)“. Indikatorname: Im Allgemeinen wird dem Überwachungsobjekt ein Name zugewiesen, z. B. http_requests_total. Es gelten einige Namensregeln und der Name kann Buchstaben, Zahlen usw. enthalten. Es beginnt normalerweise mit Anwendungsname_Überwachungsobjekt_Wert Typ_Einheit. Zum Beispiel: push_total, userlogin_mysql_duration_seconds, app_memory_usage_bytes. Tags: werden verwendet, um verschiedene Dimensionen einer Zeitreihe zu identifizieren. Ob eine HTTP-Anfrage beispielsweise POST oder GET verwendet und was ihr Endpunkt ist, wird durch Tags gekennzeichnet. Die endgültige Kennung lautet: http_requests_total{method="POST",endpoint="/api/tracks"}. Denken Sie daran, dass durch das Hinzufügen oder Entfernen eines Tags für den Metriknamen http_requests_total eine neue Zeitreihe erstellt wird. Die Abfrageanweisung kann die Aggregationsergebnisse basierend auf der Kombination der oben genannten Tags abfragen. Wenn wir diese Anweisung aus der Perspektive einer herkömmlichen Datenbank betrachten, können wir http_requests_total als Tabellennamen, das Tag als Feld, den Zeitstempel als Primärschlüssel und ein Float64-Feld als Wert betrachten. (Alle Werte in Prometheus werden als float64 gespeichert). 4. Vier Datentypen von PrometheusSchalter Der Zähler wird zum Sammeln von Werten wie der Anzahl der Anfragen, der Anzahl der abgeschlossenen Aufgaben und der Anzahl der Fehler verwendet. Es nimmt ständig zu und nie ab. Nach einem Neustart des Vorgangs wird es zurückgesetzt. Beispiel: http_response_total{method=”GET”,endpoint=”/api/tracks”} 100, crawlen Sie http_response_total{method=”GET”,endpoint=”/api/tracks”} 100 nach 10 Sekunden. Messgerät Messen Sie allgemeine Werte, wie etwa Temperaturänderungen oder Änderungen bei der Speichernutzung. Es kann größer oder kleiner gemacht werden. Nach einem Neustart des Vorgangs wird es zurückgesetzt. Beispiel: memory_usage_bytes{host="master-01"} 100 < der erfasste Wert, memory_usage_bytes{host="master-01"} 30, memory_usage_bytes{host="master-01"} 50, memory_usage_bytes{host="master-01"} 80 < der erfasste Wert. Histogramm Ein Histogramm kann als Balkendiagramm verstanden werden, das häufig verwendet wird, um das Ausmaß von Ereignissen zu verfolgen, beispielsweise die Dauer von Anfragen und die Größe von Antworten. Das Besondere daran ist, dass es den Inhalt der Datensätze gruppieren kann und die Funktionen zum Zählen und Summieren aller Werte bereitstellt. Beispiel: {weniger als 10=5 Mal, weniger als 20=1 Mal, weniger als 30=2 Mal}, Anzahl=7 Mal, Summe=die Summe der 7 Mal. Zusammenfassung Die Zusammenfassung ähnelt stark dem Histogramm und wird häufig verwendet, um das Ausmaß von Ereignissen zu verfolgen, beispielsweise die Dauer von Anfragen und die Größe der Antworten. Es bietet außerdem Funktionen zum Zählen und Summieren aller Werte. Beispiel: Anzahl = 7-mal, Summe = 7-mal die Wertauswertung. Es bietet eine Quantilfunktion, mit der die Tracking-Ergebnisse im Prozentverhältnis geteilt werden können. Ein Quantilwert von 0,95 bedeutet beispielsweise, dass 95 % der Daten im Stichprobenwert berücksichtigt werden. 5. Installieren und Ausführen von Prometheus (Docker-Version)Im Folgenden wird beschrieben, wie Sie Prometheus und Grafana verwenden, um die Leistung des lokalen Servers zu überwachen. Zur Überwachung der lokalen Maschine wird nur ein Exporter benötigt node_exporter – zur Erfassung von Maschinensystemdaten Grafana ist eine Open-Source-Datenvisualisierungsplattform mit zahlreichen Funktionen, die häufig zur Visualisierung von Zeitreihendaten verwendet wird. Es bietet integrierte Unterstützung für die folgenden Datenquellen: Nachfolgend sehen Sie das Architekturdiagramm, das wir während der Installation verwendet haben: Hinweis: Dieser Artikel verwendet Ubuntu-16.04.5-Server-AMD64, es wird nur ein Server benötigt! Docker installieren apt-get install -y docker.io Hinweis: In Online-Artikeln heißt es, dass Sie Docker-Engine und Docker-CE installieren müssen, was Unsinn ist. Die Tasche ist überhaupt nicht auffindbar! Installieren Sie einfach docker.io und fertig! Wenn es sich um ein CentOS-System handelt, verwenden Sie yum install -y docker-io zur Installation Herunterladen des Imagepakets Docker Pull Prom/Knoten-Exporteur Docker zieht Prom/Prometheus Docker zieht Grafana/Grafana Starten Sie den Node-Exporter docker run -d -p 9100:9100 \ -v "/proc:/host/proc:ro" \ -v "/sys:/host/sys:ro" \ -v "/:/rootfs:ro" \ --net="Gastgeber" \ prom/Knoten-Exporteur Warten Sie einige Sekunden, um zu sehen, ob der Port aktiv ist. root@ubuntu:~# netstat -anpt Aktive Internetverbindungen (Server und hergestellt) Proto Recv-Q Send-Q Lokale Adresse Fremde Adresse Status PID/Programmname tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1147/sshd tcp 0 36 192.168.91.132:22 192.168.91.1:63648 HERGESTELLT 2969/0 tcp 0 0 192.168.91.132:22 192.168.91.1:63340 HERGESTELLT 1321/1 tcp6 0 0 :::9100 :::* LISTEN 3070/node_exporter Besuchen Sie die URL: http://192.168.91.132:9100/Metriken Die Wirkung ist wie folgt: Dies sind alles gesammelte Daten, mit denen Sie Daten anzeigen können Starten Sie Prometheus Erstellen Sie ein neues Verzeichnis prometheus und bearbeiten Sie die Konfigurationsdatei prometheus.yml mkdir /opt/prometheus cd /opt/prometheus/ vim prometheus.yml Der Inhalt ist wie folgt: weltweit: Scrape-Intervall: 60 s Auswertungsintervall: 60s scrape_configs: - Jobname: Prometheus statische_Konfigurationen: - Ziele: ['localhost:9090'] Beschriftungen: Beispiel: Prometheus - Jobname: Linux statische_Konfigurationen: - Ziele: ['192.168.91.132:9100'] Beschriftungen: Instanz: localhost Hinweis: Ändern Sie die IP-Adresse. Hier ist 192.168.91.132 die lokale Adresse. Starten Sie Prometheus docker run -d \ -p 9090:9090 \ -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \ Abschlussball/Prometheus Warten Sie einige Sekunden und überprüfen Sie den Portstatus root@ubuntu:/opt/prometheus# netstat -anpt Aktive Internetverbindungen (Server und hergestellt) Proto Recv-Q Send-Q Lokale Adresse Fremde Adresse Status PID/Programmname tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1147/sshd tcp 0 36 192.168.91.132:22 192.168.91.1:63648 HERGESTELLT 2969/0 tcp 0 0 192.168.91.132:22 192.168.91.1:63340 HERGESTELLT 1321/1 tcp6 0 0 :::9100 :::* LISTEN 3070/node_exporter tcp6 0 0 :::22 :::* LISTEN 1147/sshd tcp6 0 0 :::9090 :::* LISTEN 3336/Docker-Proxy Besuchen Sie die URL: http://192.168.91.132:9090/graph Die Wirkung ist wie folgt: Zugriffsziele, die URL lautet wie folgt: http://192.168.91.132:9090/Ziele Die Wirkung ist wie folgt: Wenn der Status nicht „UP“ ist, warten Sie einen Moment und er wird „UP“ sein. Starten Sie Grafana Erstellen Sie einen neuen leeren Ordner grafana-storage zum Speichern von Daten mkdir /opt/grafana-storage Festlegen von Berechtigungen chmod 777 -R /opt/grafana-storage Da der Grafana-Benutzer Dateien in dieses Verzeichnis schreibt, ist es relativ einfach und grob, 777 direkt festzulegen! Starten Sie Grafana docker run -d \ -p 3000:3000 \ --name=grafana \ -v /opt/grafana-storage:/var/lib/grafana \ grafana/grafana Warten Sie einige Sekunden und überprüfen Sie den Portstatus root@ubuntu:/opt/prometheus# netstat -anpt Aktive Internetverbindungen (Server und hergestellt) Proto Recv-Q Send-Q Lokale Adresse Fremde Adresse Status PID/Programmname tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1147/sshd tcp 0 36 192.168.91.132:22 192.168.91.1:63648 HERGESTELLT 2969/0 tcp 0 0 192.168.91.132:22 192.168.91.1:63340 HERGESTELLT 1321/1 tcp6 0 0 :::9100 :::* LISTEN 3070/node_exporter tcp6 0 0 :::22 :::* LISTEN 1147/sshd tcp6 0 0 :::3000 :::* LISTEN 3494/Docker-Proxy tcp6 0 0 :::9090 :::* LISTEN 3336/Docker-Proxy tcp6 0 0 192.168.91.132:9100 172.17.0.2:55108 HERGESTELLT 3070/node_exporter Besuchen Sie die URL: http://192.168.91.132:3000/ Standardmäßig werden Sie zur Anmeldeseite weitergeleitet. Der Standardbenutzername und das Standardkennwort lauten beide admin. Nach der Anmeldung werden Sie aufgefordert, Ihr Passwort zurückzusetzen. Sie können das Admin-Passwort erneut eingeben! Nachdem das Passwort festgelegt wurde, werden Sie auf die Startseite weitergeleitet. Klicken Sie auf Datenquelle hinzufügen. Da die Spiegelungsmethode verwendet wird, ist die Version relativ neu. Es weicht von den in den Artikeln im Internet gezeigten Bildern ab! Name: Prometheus Typ wählt Prometheus, weil die Daten von dort bezogen werden URL Geben Sie die IP+Port von Prometheus ein Klicken Sie unten auf „Speichern und testen“. Wenn ein grünes Symbol angezeigt wird, bedeutet dies, dass alles in Ordnung ist. Gehen Sie zurück zur Startseite und klicken Sie auf Neues Dashboard Klicken Sie auf Diagramm Die Wirkung ist wie folgt: Klicken Sie unter dem Titel auf „Bearbeiten“. Die Wirkung ist wie folgt: Geben Sie CPU ein. Unten wird eine Eingabeaufforderung angezeigt. Hier überwachen wir node_load15, was die Systemlast für 15 Minuten anzeigt. Klicken Sie unten auf Abfrage hinzufügen Die Wirkung ist wie folgt: Gesamtspeicher hinzufügen Hier wird noch eine Zeile stehen Klicken Sie rechts, um den gesamten Speicher zu löschen Klicken Sie auf „Allgemein“ und ändern Sie den Titel in „Chinesisch“ Der Charteffekt ist wie folgt: Klicken Sie oben auf die Schaltfläche Speichern Geben Sie Ihren Namen ein Die Wirkung ist wie folgt: Klicken Sie auf die Homepage und Sie sehen Referenzlinks für diesen Artikel: http://www.ywnds.com/?p=9656 Dies ist das Ende dieses Artikels über den detaillierten Prozess zum Erstellen von Prometheus+Grafana auf Basis von Docker. Weitere relevante Inhalte zum Erstellen von Prometheus+Grafana mit Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Beispiel für einen reinen CSS3-Mindmap-Stil
>>: Vue implementiert die vollständige Auswahlfunktion
ScreenCloud ist eine tolle kleine App, von der Si...
Schauen Sie sich zuerst den Code an Code kopieren ...
Die Einrichtung eines MySQL-Index ist für den eff...
1. Server-Setup Das Remote-Repository unterscheid...
1. Einleitung tr wird verwendet, um einen Textabs...
Domänenübergreifende Lösungen jsonp (get simulier...
01. Unendlichkeit Schriftart herunterladen 02. Ban...
Vorwort Jedes Mal, wenn Sie Docker verwenden, um ...
Aus Kodierungsgründen werden beim Hochladen oder ...
1. Implementieren Sie den Anruf Schritt: Legen Si...
GitHub-Adresse, Sie können es mit einem Stern mar...
1. Unter 800 x 600 gibt es keine horizontale Bild...
In unserem aktuellen Projekt müssen wir die Googl...
Vorwort Dieser Artikel stellt hauptsächlich die L...
In diesem Artikel werden die einzelnen Schritte d...