So überwachen Sie MySQL mit Zabbix

So überwachen Sie MySQL mit Zabbix

Dokumentation zur Zabbix-Bereitstellung

Nach der Bereitstellung von Zabbix

Zabbix-Agent-Betrieb

1. Um MySQL zu überwachen, müssen Sie zuerst MySQL installieren

[root@localhost ~]# yum -y installiere MariaDB MariaDB-Server

2. Schreiben Sie Skripte für MySQL-Überwachungselemente

Autorisieren Sie zuerst einen Benutzer im Zabbix-Agenten, sonst wird beim Testen keine Berechtigung erteilt

[root@localhost ~]# mysql
Willkommen beim MariaDB-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MariaDB-Verbindungs-ID ist 33
Serverversion: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab und andere.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

MariaDB [(keine)]> gewähre alles auf *.* an „check“@„localhost“, identifiziert durch „123“;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

Die Hauptinhalte der MySQL-Überwachung sind

  • Der Status des Masters und Slaves (Sie müssen zuerst den Master und Slave unten konfigurieren)
  • Verkehrserkennung und -versand, Annahme regelmäßiger Vorgänge wie Hinzufügen, Löschen, Ändern und Überprüfen
  • Die Größe einer Datenbank oder Tabelle
  • tps (Anzahl der pro Sekunde verarbeiteten Abfragen) qps (Anzahl der pro Sekunde verarbeiteten Anforderungen)
[root@localhost ~]# mkdir /etc/zabbix/scipts
[root@localhost ~]# cd /etc/zabbix/scipts/
[root@localhost-Skripte]# vim mysql.sh 
#!/bin/bash
mysql="mysql -ucheck -p123"
Fall $1 in 
 #mysql Master-Slave-Status Slave-Status)
  $mysql -e "Slave-Status anzeigen\G" |grep "Ja" |wc -l
 ;; 
 # MySQL-Verkehr akzeptiert empfangene Bytes)
  mysqladmin erweiterter Status |grep "Bytes_received" |awk '{print $4}'
 ;;
 # MySQL-Verkehr sentBytes_sent)
  mysqladmin erweiterter Status |grep "Bytes_sent" |awk '{print $4}'
 ;;
 #MySQL regulärer Betrieb fügt Com_insert hinzu)
  mysqladmin erweiterter Status |grep -w "Com_insert" |awk '{print $4}'
 ;;
 #Com_delete (MySQL-Routinevorgang löschen)
  mysqladmin erweiterter Status |grep -w "Com_delete" |awk '{print $4}'
 ;;
 # MySQL-Routineoperationen in Com_update ändern)
  mysqladmin erweiterter Status |grep -w "Com_update" |awk '{print $4}'
		;;
 # MySQL-Routinevorgangsprüfung (Com_select)
  mysqladmin erweiterter Status |grep -w "Com_select" |awk '{print $4}'
 ;;
 #mysql tps
 tps)
  mysqladmin-Status |awk '{print $6/$2}'
 ;;
 #mysql qps=(Rollback+Commit)/Betriebszeit
 qps)
  Rollback = $ (mysqladmin erweiterter Status |grep -w "Com_rollback" |awk '{print $4}')
  commit=$(mysqladmin erweiterter Status |grep -w "Com_commit" |awk '{print $4}')
  Betriebszeit = $ (mysqladmin-Status |awk '{print $2}')
  Anzahl=$[$rollback+$commit]
  echo "$count $uptime" > /tmp/a.txt
  cat /tmp/a.txt |awk '{print $1/$2}'
 ;;
 # Datenbankgröße Wir nehmen MySQL-Datenbank als Beispiel db)
  $mysql -e "Wählen Sie Summe(Datenlänge) aus information_schema.tables, wobei table_schema='mysql'" |sed -n '2p'
 ;;
 # Tabellengröße Wir nehmen die Benutzertabelle unter MySQL als Beispiel (tb)
  $mysql -e "Wählen Sie Summe(Datenlänge) aus information_schema.tables, wobei table_schema='mysql' und table_name='Benutzer'" |sed -n '2p'
 ;;
esac

3. Schlüsselwert anpassen und zabbix-agent neu starten

[root@localhost-Skripte]# cd /etc/zabbix/zabbix_agentd.d/
[root@localhost zabbix_agentd.d]# vim mysql.conf
BenutzerParameter=mysql[*],/etc/zabbix/scipts/mysql.sh $1
[root@localhost zabbix_agentd.d]# systemctl zabbix-agent neu starten

4. Installieren Sie zuerst zabbix-get im Zabbix-Server-Test

[root@localhost ~]# yum -y installiere zabbix-get

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[slave_status]
2
[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[Bytes_empfangen]
850970
[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[Bytes_gesendet]
224906
[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[Com_insert]
3001
[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[Com_delete]
135
[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[Com_update]
128
[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[Com_select]
19
[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[qps]
0,864842
[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[tps]
1,92936
[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[db]
555118
[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[tb]
420

Fehlerbehandlung

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[slave_status]
sh: /etc/zabbix/scipts/mysql.sh: Unzureichende Berechtigungen. Unzureichende Berechtigungen zur Skriptausführung. Gehen Sie zu zabbix-agent und fügen Sie Berechtigungen hinzu [root@localhost zabbix_agentd.d]# chmod +x /etc/zabbix/scipts/mysql.sh 

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[slave_status]
FEHLER 1227 (42000) in Zeile 1: Zugriff verweigert; Sie benötigen (mindestens eines) der SUPER,REPLICATION CLIENT-Privilegien für diesen Vorgang

Weil der Benutzer keine Berechtigung hat, den Zabbix-Agenten anzuzeigen. Autorisieren Sie einen Benutzer, [root@localhost ~]# mysql im Skript hinzuzufügen
Willkommen beim MariaDB-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MariaDB-Verbindungs-ID ist 33
Serverversion: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab und andere.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

MariaDB [(keine)]> gewähre alles auf *.* an „check“@„localhost“, identifiziert durch „123“;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

[root@localhost-Skripte]# vim mysql.sh 
#!/bin/bash
mysql="mysql -ucheck -p123"
Fall $1 in 
 #mysql Master-Slave-Status Slave-Status)
  $mysql -e "Slave-Status anzeigen\G" |grep "Ja" |wc -l
 ;;

Fügen Sie Überwachungselemente und Diagramme auf der Zabbix-Seite hinzu

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

MySQL-Verkehrsdaten anzeigen

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

MySQL QPS TPS anzeigen

Bildbeschreibung hier einfügen

MySQL Master-Slave-Status anzeigen

Bildbeschreibung hier einfügen

Allgemeine MySQL-Vorgänge anzeigen

Bildbeschreibung hier einfügen

Zeigen Sie die Größe der MySQL-Datenbanktabelle an

Bildbeschreibung hier einfügen

MySQL Master-Slave-Konfiguration

1. Zabbix-Server

[root@localhost ~]# vim /etc/my.cnf 

Bildbeschreibung hier einfügen

[root@localhost ~]# systemctl MariaDB neu starten
[root@localhost ~]# mysql
Willkommen beim MariaDB-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MariaDB-Verbindungs-ID ist 7
Serverversion: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab und andere.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

MariaDB [(keine)]> Masterstatus anzeigen;
+------------------+----------+--------------+------------------+
| Datei | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 175170 | | |
+------------------+----------+--------------+------------------+
1 Zeile im Satz (0,00 Sek.)
MariaDB [(keine)]> gewähre alles auf *.* an „tom“@„%“, gekennzeichnet durch „123“;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

MariaDB [(keine)]> Berechtigungen leeren;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

2. Zabbix-Agent

[root@localhost ~]# vim /etc/my.cnf 

Bildbeschreibung hier einfügen

[root@localhost ~]# systemctl MariaDB neu starten
[root@localhost ~]# mysql
Willkommen beim MariaDB-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MariaDB-Verbindungs-ID ist 2
Serverversion: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab und andere.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

MariaDB [(keine)]> ändere Master in
 -> master_host='192.168.27.136',
 -> master_user='tom',
 -> Master-Passwort = '123',
 -> master_log_file='mysql-bin.000001',
 -> master_log_pos=175170;
Abfrage OK, 0 Zeilen betroffen (0,01 Sek.)

MariaDB [(keine)]> Slave starten;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

MariaDB [(keine)]> Slave-Status anzeigen \G;
*************************** 1. Reihe ***************************
  Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet
   Master_Host: 192.168.27.136
   Master_Benutzer: tom
   Master_Port: 3306
  Verbindungswiederholung: 60
  Master_Log_File:mysql-bin.000001
  Read_Master_Log_Pos: 175170
  Relay-Logdatei:mysql-relay.000004
  Relay_Log_Pos: 529
 Relay_Master_Log_File: mysql-bin.000001
  Slave_IO_Running: Ja
  Slave_SQL_Running: Nein
  Replicate_Do_DB: 
  Replikat_Ignorieren_DB: 
  Tabelle_replizieren: 
 Tabelle_Ignorieren_replizieren: 
 Wild_Do_Tabelle replizieren: 
 Tabelle_Wild_Ignore_replizieren: 
   Letzte_Fehlernummer: 1146
   Last_Error: Fehler „Tabelle ‚zabbix.history_uint‘ existiert nicht“ bei Abfrage. Standarddatenbank: ‚zabbix‘. Abfrage: ‚insert into history_uint (itemid,clock,ns,value) values ​​​​(23287,1602301747,810415730,1)‘
   Skip_Counter: 0
  Exec_Master_Log_Pos: 173424
  Relay_Log_Space: 2565
  Until_Condition: Keine
  Bis_Log_Datei: 
  Bis_Log_Pos: 0
  Master_SSL_Allowed: Nein
  Master_SSL_CA_Datei: 
  Master_SSL_CA_Pfad: 
  Master_SSL_Zertifikat: 
  Master_SSL_Chiffre: 
  Master_SSL_Schlüssel: 
 Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: Nein
  Last_IO_Errno: 0
  Letzter_E/A-Fehler: 
  Last_SQL_Errno: 1146
  Last_SQL_Error: Fehler „Tabelle ‚zabbix.history_uint‘ existiert nicht“ bei Abfrage. Standarddatenbank: ‚zabbix‘. Abfrage: ‚insert into history_uint (itemid,clock,ns,value) values ​​​​(23287,1602301747,810415730,1)‘
 Server-IDs replizieren_ignorieren: 
  Master_Server_Id: 1
1 Zeile im Satz (0,00 Sek.)

FEHLER: Keine Abfrage angegeben

Fehlerbehandlung

[root@localhost ~]# vim /etc/my.cnf 

Bildbeschreibung hier einfügen

[root@localhost ~]# systemctl MariaDB neu starten
[root@localhost ~]# mysql
Willkommen beim MariaDB-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MariaDB-Verbindungs-ID ist 4
Serverversion: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab und andere.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

MariaDB [(keine)]> Slave-Status anzeigen \G;
*************************** 1. Reihe ***************************
  Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet
   Master_Host: 192.168.27.136
   Master_Benutzer: tom
   Master_Port: 3306
  Verbindungswiederholung: 60
  Master_Log_File:mysql-bin.000001
  Read_Master_Log_Pos: 199126
  Relay-Logdatei:mysql-relay.000006
  Relay_Log_Pos: 3950
 Relay_Master_Log_File: mysql-bin.000001
  Slave_IO_Running: Ja
  Slave_SQL_Running: Ja
  Replicate_Do_DB: 
  Replikat_Ignorieren_DB: 
  Tabelle_replizieren: 
 Tabelle_Ignorieren_replizieren: 
 Wild_Do_Tabelle replizieren: 
 Tabelle_Wild_Ignore_replizieren: 
   Last_Errno: 0
   Letzter_Fehler: 
   Skip_Counter: 0
  Exec_Master_Log_Pos: 199126
  Relay_Log_Space: 4240
  Until_Condition: Keine
  Bis_Log_Datei: 
  Bis_Log_Pos: 0
  Master_SSL_Allowed: Nein
  Master_SSL_CA_Datei: 
  Master_SSL_CA_Pfad: 
  Master_SSL_Zertifikat: 
  Master_SSL_Chiffre: 
  Master_SSL_Schlüssel: 
 Sekunden_Hinter_Master: 0
Master_SSL_Verify_Server_Cert: Nein
  Last_IO_Errno: 0
  Letzter_E/A-Fehler: 
  Last_SQL_Errno: 0
  Letzter_SQL_Fehler: 
 Server-IDs replizieren_ignorieren: 
  Master_Server_Id: 1
1 Zeile im Satz (0,00 Sek.)

Dies ist das Ende dieses Artikels zur Überwachung von MySQL mit Zabbix. Weitere Informationen zur Überwachung von MySQL mit Zabbix 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:
  • Zabbix implementiert die Überwachung mehrerer MySQL-Prozesse
  • Detailliertes Tutorial zur Überwachung von Nginx/Tomcat/MySQL mit Zabbix
  • Detaillierte Erklärung, wie Zabbix den Master-Slave-Status von MySQL überwacht
  • So überwachen Sie MySQL mit dem Percona-Plugin in Zabbix
  • Zabbix 2.4.5 enthält ein Tutorial zur MySQL-Überwachungskonfiguration
  • Grundlegendes Tutorial zur Installation und Konfiguration von Zabbix zur Überwachung von MySQL
  • Zabbix überwacht die MySQL-Instanzmethode

<<:  Detaillierte Erläuterung der Komponentenentwicklung des Vue-Dropdown-Menüs

>>:  Index-Skip-Scan in MySQL 8.0

Artikel empfehlen

Einführung in mögliche Probleme nach der Installation von Tomcat

1. Der Tomcat-Dienst ist nicht geöffnet Geben Sie...

Gängige Angriffe auf Web-Frontends und Möglichkeiten, sie zu verhindern

Die Sicherheitsprobleme, die bei der Frontend-Ent...

Binäre Installation von MySQL 5.7.23 unter CentOS7

Die Installationsinformationen im Internet sind u...

Verstehen Sie alle Aspekte von HTTP-Headern mit Bildern und Text

Was sind HTTP-Header HTTP ist eine Abkürzung für ...

Implementierung der One-Click-TLS-Verschlüsselung für die Docker-Remote-API

Inhaltsverzeichnis 1. Ändern Sie den Port 2375 vo...

Implementierungsschritte zur Installation eines Redis-Containers in Docker

Inhaltsverzeichnis Redis auf Docker installieren ...

Javascript um den Drag-Effekt der Login-Box zu erreichen

In diesem Artikel wird der spezifische Code von J...

So gehen Sie mit vergessenen Passwörtern in Windows Server 2008 R2 um

Was tun, wenn Sie Windows Server 2008R2 vergessen...