Prometheus überwacht MySQL über den Exporter und stellt es mit Grafana-Diagrammen dar Überblick: Prometheus ist ein von SoundCloud entwickeltes Open-Source-Überwachungs- und Alarmsystem und verfügt über eine auf der Sprache Go basierende Zeitreihendatenbank. Prometheus ruft die Metriken auf dem angegebenen Ziel (Target) in einem periodischen Pull-Verfahren entsprechend der konfigurierten Aufgabe (Job) ab. Das Prometheus-Ökosystem umfasst mehrere Komponenten:
Als nächstes beginnen wir mit der Demonstration 1. TestmaschinePrometheus-Server 192.168.56.140 MySQL Host01 192.168.56.103 MySQL Host02 192.168.56.104 2. Konfigurieren Sie MySQL Host01Verwendete MySQL-Version: 8.0.25 MySQL Community Server 3. Erstellen Sie ein Exporteurkontomysqld_exporter erhält Daten durch Abfragen der Statustabelle und der Statusbefehle von MySQL. Daher müssen Sie zuerst das entsprechende Konto in MySQL erstellen Erstellen Sie den Benutzer „Exporteur“@„%“, identifiziert durch „Xiaopang*803“; GRANT REPLICATION CLIENT, PROCESS ON *.* AN 'Exporteur'@'%'; GRANT SELECT ON performance_schema.* TO 'Exporteur'@'%'; Berechtigungen leeren; 4. Laden Sie mysqld_exporter herunter und installieren Sie es wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.13.0/mysqld_exporter-0.13.0.linux-amd64.tar.gz 4.1 Datei bearbeiten und Passwort eingebenBearbeiten Sie die folgende Datei und geben Sie den Benutzernamen und das Passwort des Exporteurs ein (dasselbe wie das oben in MySQL erstellte Konto und Passwort). [root@host01 mysqld_exporter]# vi .my.cnf [Kunde] Benutzer=Exporteur Passwort=Xiaopang*803 4.2 Startdienstdatei hinzufügen[root@host01 ~]# vi /etc/systemd/system/mysqld_exporter.service [Einheit] Beschreibung=mysqld_exporter Nach=Netzwerk.Ziel [Service] Typ=einfach ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf Neustart=bei Fehler [Installieren] WantedBy=Mehrbenutzer.Ziel 4.3 mysqld_exporter startenDienst mysqld_exporter starten 4.4 Testüberprüfungmysqld_exporter verwendet standardmäßig Port 9104. Wir können die folgende Adresse im Browser eingeben. Prüfen Sie, ob eine Datenausgabe erfolgt. Geben Sie http://192.168.56.103:9104/metrics ein. Die Ausgabeinformationen ähneln den folgenden: # HILFE go_gc_duration_seconds Eine Zusammenfassung der Pausendauer von Garbage Collection-Zyklen. # TYP go_gc_duration_seconds Zusammenfassung go_gc_duration_seconds{quantile="0"} 2,5395e-05 go_gc_duration_seconds{quantile="0.25"} 3.5372e-05 go_gc_duration_seconds{quantile="0.5"} 3,9393e-05 go_gc_duration_seconds{quantile="0.75"} 5.5068e-05 go_gc_duration_seconds{quantile="1"} 0,062537624 go_gc_duration_seconds_sum 0,453204071 go_gc_Dauer_Sekunden_Anzahl 2131 # HILFE go_goroutines Anzahl der aktuell vorhandenen Goroutinen. # TYP go_goroutines Messgerät 5. Laden Sie node_exporter herunter und installieren Sie esWenn Sie nur mysqld_exporter installieren, können Sie keine betriebssystembezogenen Daten überwachen. Daher müssen Sie zur Betriebssystemüberwachung node_exporter installieren. wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz tar xvzf node_exporter-1.2.2.linux-amd64.tar.gz -C /usr/local/. cd /usr/local && ln -s node_exporter-1.2.2.linux-amd64/ node_exporter 5.1 Startdienstdatei hinzufügen[root@host01 ~]# vi /etc/systemd/system/node_exporter.service [Einheit] Beschreibung=node_export Dokumentation=https://github.com/prometheus/node_exporter Nach=Netzwerk.Ziel [Service] Typ=einfach Benutzer=root Gruppe=Wurzel ExecStart=/usr/local/node_exporter/node_exporter Neustart=bei Fehler [Installieren] WantedBy=Mehrbenutzer.Ziel 5.2 Starten Sie node_exporterDienst node_exporter starten 5.3 TestüberprüfungStandardmäßig verwendet node_exporter Port 9100. Wir können die folgende Adresse im Browser eingeben. Prüfen Sie, ob eine Datenausgabe erfolgt. Geben Sie http://192.168.56.103:9100/metrics ein. Die Ausgabe sieht ungefähr wie folgt aus: # HILFE go_gc_duration_seconds Eine Zusammenfassung der Pausendauer von Garbage Collection-Zyklen. # TYP go_gc_duration_seconds Zusammenfassung go_gc_duration_seconds{quantile="0"} 2,5934e-05 go_gc_duration_seconds{quantile="0.25"} 4.0072e-05 go_gc_duration_seconds{quantile="0.5"} 4,7616e-05 go_gc_duration_seconds{quantile="0.75"} 6,726e-05 go_gc_duration_seconds{quantile="1"} 0,228887598 go_gc_duration_seconds_sum 0,550266258 go_gc_duration_seconds_count 793 # HILFE go_goroutines Anzahl der aktuell vorhandenen Goroutinen. # TYP go_goroutines Messgerät 6. Installieren Sie Prometheus + Grafana Version verwenden: Prometheus 2.28 Grafana 6.7.6 6.1 Installation Herunterladen des Pakets wget https://github.com/prometheus/prometheus/releases/download/v2.28.1/prometheus-2.28.1.linux-amd64.tar.gz 6.2 Entpacken und Softlinks hinzufügentar xvzf prometheus-2.28.1.linux-amd64.tar.gz -C /usr/local/. cd /usr/lokal/ ln -s prometheus-2.28.1.linux-amd64/prometheus 6.3 Startdienst hinzufügen[root@prometheus-server prometheus]# vi /etc/systemd/system/prometheus.service [Einheit] Beschreibung=Prometheus-Überwachungssystem Dokumentation=Prometheus-Überwachungssystem [Service] Typ=einfach Benutzer=root Gruppe=Wurzel ExecStart=/usr/local/prometheus/prometheus \ --config.file=/usr/local/prometheus/prometheus.yml \ --storage.tsdb.path="data/" \ --storage.tsdb.retention.time=15d \ --web.max-connections=512 \ --web.listen-address=:9090 6.4 MySQL-Überwachung hinzufügenvi /usr/local/prometheus/prometheus.yml scrape_configs: # Der Jobname wird als Label „job=<job_name>“ zu jeder aus dieser Konfiguration extrahierten Zeitreihe hinzugefügt. - Jobname: "mysql" statische_Konfigurationen: - Ziele: ['192.168.56.103:9104'] Beschriftungen: Instanz: mysql_instance1 - Jobname: „Linux“ statische_Konfigurationen: - Ziele: ['192.168.56.103:9100'] Beschriftungen: Instanz: mysql_instance1 6.5 Starten Sie PrometheusDienst Prometheus starten 6.7 Prometheus anzeigenPrometheus-Standardüberwachungsport http://192.168.56.140:9090/ Klicken Sie auf Status -> Ziel. Wenn alles normal ist, können Sie sehen, dass der Status von MySQL/Linux UP ist, wie folgt 7. Laden Sie Grafana herunter und installieren Sie eswget https://dl.grafana.com/oss/release/grafana-6.7.6-1.x86_64.rpm U/min -ivh grafana-6.7.6-1.x86_64.rpm 7.1 Zugriff auf GrafanaDie Anzeigefunktion von Prometheus ist sehr schwach. Um Grafiken besser anzeigen zu können, benötigen wir Grafana Geben Sie http://192.168.56.140:3000/ ein. Konfigurieren Sie die Datenquelle als HTTP-Link von proemtheus (beachten Sie, dass es sich um HTTP und nicht um HTTPS handelt). 7.2 MySQL-Überwachungsvorlage importierenDie Anzeige der Grafana-Daten erfolgt über Vorlagen. Auf der Grafana-Website gibt es viele freigegebene Vorlagen, die Sie selbst erkunden können. Ich habe diese Vorlage vom folgenden Link heruntergeladen. https://grafana.com/api/dashboards/9623/revisions/4/download Problem mit der Versionskonflikt Aufgrund einer Versionsinkongruenz werden einige Elemente nach Abschluss nicht normal angezeigt. Die verwendete Version ist Grafana 5.0, und meine ist 6.x. Aber dieses kleine Problem hat mich nicht gestört, ich habe es selbst geändert. Es kann normal angezeigt werden. Nachfolgend sehen Sie die geänderte JSON-Datei. josn_jb51.rar Änderungsprozess Oft sind viele Dinge noch nicht komplett einsatzbereit. Wir müssen entsprechend unseren Anforderungen einige Änderungen vornehmen. Ich habe ungefähr eine halbe Stunde gebraucht, um herauszufinden, wie ich es ändern kann. Anschließend dauerte es noch einmal ca. zwei Stunden, die entsprechenden Projekte zu modifizieren und fertigzustellen. Während des Änderungsprozesses treten im Wesentlichen zwei Arten von Problemen auf: 1) Die Namen der Grafana 5.x- und 6.x-Komponenten haben sich geändert. „Pufferpoolgröße des gesamten RAM“ kann nicht richtig angezeigt werden, da die Komponentennamen von 6.0 und 5.0 unterschiedlich sind. Ersetzen Sie pmm-singlestat-panel -> singlestat, um es zu erledigen 2) Der Name des vom Exporter extrahierten Attributs hat sich geändert Ich verwende node_exporter-1.2.2 und die zum Betriebssystem extrahierten Eigenschaften stimmen nicht mit den definierten Eigenschaftsnamen in der JSON-Datei überein. Die Methode besteht darin, direkt in „http://192.168.56.103:9100/metrics“ nach dem neuen Attributnamen zu suchen und den alten Attributnamen in der JSON-Datei zu ersetzen. Zum Beispiel: Ersetzen Sie node_memory_MemTotal->node_memory_MemTotal_bytes Ersetzen Sie node_memory_MemTotal->node_memory_MemTotal_bytes Import Da ich einige Änderungen vorgenommen habe, können Sie den JSON-Inhalt direkt beim Importieren eingeben. Klicken Sie auf „Laden“ und wählen Sie dann „Prometheus“ als Datenquelle aus. 7.3 Starten Sie das Stresstest-Tool SysbenchDer Zweck der Aktivierung des Sysbench-Tools besteht darin, Diagramme mit Datenänderungen durch Stresstests zu erstellen (andernfalls werden die Daten nicht verschoben, wenn kein Datenverkehr vorhanden ist). Hier führe ich einen Remote-Test durch (indem ich Sysbench auf einem anderen Computer, Host02, ausführe). Der Zweck besteht darin, Netzwerkverkehrsdaten zu generieren. [root@host02 ~]# sysbench /usr/share/sysbench/oltp_read_write.lua --time=9180 --mysql-host=host01 --mysql-port=3306 --mysql-user=dbusr --mysql-password=Xiaopang*803 --mysql-db=db1 --table-size=50000 --tables=15 --threads=15 --report-interval=10 ausführen sysbench 1.0.20 (unter Verwendung des gebündelten LuaJIT 2.1.0-beta2) Ausführen des Tests mit folgenden Optionen: Anzahl der Threads: 15 Zwischenergebnisse alle 10 Sekunden melden Initialisierung des Zufallszahlengenerators ab aktueller Zeit Arbeitsthreads werden initialisiert … Themen gestartet! [ 10s ] thds: 15 tps: 112,68 qps: 2268,92 (r/w/o: 1589,76/452,30/226,85) lat (ms,95%): 277,21 err/s: 0,00 reconn/s: 0,00 [ 20s ] thds: 15 tps: 113,91 qps: 2282,81 (r/w/o: 1598,47/456,52/227,81) lat (ms,95%): 211,60 err/s: 0,00 reconn/s: 0,00 [ 30s ] thds: 15 tps: 109,80 qps: 2192,95 (r/w/o: 1536,66/436,69/219,59) lat (ms,95%): 240,02 err/s: 0,00 reconn/s: 0,00 [ 40s ] thds: 15 tps: 112,70 qps: 2265,36 (r/w/o: 1583,17/456,79/225,40) lat (ms,95%): 193,38 err/s: 0,00 reconn/s: 0,00 [ 50s ] thds: 15 tps: 101,00 qps: 2013,42 (r/w/o: 1413,32/398,10/202,00) lat (ms,95%): 325,98 err/s: 0,00 reconn/s: 0,00 7.4 Überprüfen Sie Grafana und sehen Sie sich das Ergebnis nach Abschluss an Hier werden nur einige der Diagramme veröffentlicht. Dies ist das Ende dieses Artikels über die Überwachung von Prometheus MySQL mit Grafana. Weitere relevante MySQL Grafana-Inhalte finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Ein praktischer Bericht über XSS-Angriffe in einem VUE-Projekt
Inhaltsverzeichnis 1. Ich habe das Root-Passwort ...
Dieser Artikel veranschaulicht anhand von Beispie...
Einführung: Wenn wir MySQL zum Erstellen einer Ta...
Kürzlich stieß ich auf das Problem, ob die Daten b...
Schritt 1: Laden Sie den MySQL-Treiber herunter c...
Standardmäßig werden Prozesse im Container mit Ro...
Der erste Schritt besteht darin, die Versionsnumm...
Vorwort Das Transaktionsdatenwörterbuch und das a...
Erfordern Das Div unter dem Körper ist vertikal z...
Inhaltsverzeichnis 1. Befehl 2. docker-compose.ym...
Auf immer mehr Websites wird HTML4 durch XHTML ers...
Guten Morgen allerseits, ich habe meinen Artikel ...
Anforderung: Die Seite muss ein Bild anzeigen, ab...
Über Docker Swarm Docker Swarm besteht aus zwei T...
Starten Sie alle gestoppten Docker-Container mit ...