1. ÜberwachungsplanungBevor Sie ein Überwachungselement erstellen, sollten Sie sich genau überlegen, was und wie Sie überwachen, wie Sie die Überwachungsdaten speichern, wie Sie die Überwachungsdaten anzeigen, wie Sie mit Alarmen umgehen usw. Um ein Überwachungssystem zu planen, müssen Sie über gute Kenntnisse von Zabbix verfügen. Hier stellen wir nur die Überwachungsanforderungen vor. Anforderung 1: Überwachen Sie den Status von MySQL und geben Sie einen Alarm aus, wenn der Status abnormal ist. Anforderung 2: MySQL-Operationen überwachen und in Diagrammen darstellen; 2. Benutzerdefinierter Skriptüberwachungserweiterungs-AgentDie Erfassung von Überwachungsdaten zwischen Zabbix-Server und Agent erfolgt hauptsächlich dadurch, dass der Zabbix-Server den Agent aktiv nach dem Wert eines Schlüssels fragt. Der Agent ruft die entsprechende Funktion entsprechend dem Schlüssel auf, um den Wert abzurufen und an den Server zurückzugeben. Der Zabbix 2.4.7-Agent verfügt nicht über eine integrierte MySQL-Überwachungsfunktion (der Server stellt jedoch die entsprechende Vorlagenkonfiguration bereit). Daher müssen wir die Benutzerparameterfunktion von Zabbix verwenden, um ein Überwachungsskript für MySQL hinzuzufügen. 3. MySQL-Anmeldebenutzer autorisieren (Agentenseite)mysql> gewährt [email protected] Zugriff auf *.* und identifiziert sich durch „123456“; mysql> Berechtigungen leeren; 4. AgentenkonfigurationÜberlebenserkennung Verwenden Sie den UserParameter-Parameter, um den Agentenschlüssel anzupassen. # mysqladmin -h 127.0.0.1 -u zabbix -p123456 ping mysqld ist am Leben Wenn der MySQL-Status normal ist, wird angezeigt, dass mysqld aktiv ist, andernfalls wird eine Meldung angezeigt, dass die Verbindung nicht hergestellt werden kann. Für die Serverseite sind Sätze wie „mysqld ist aktiv“ schwer zu verstehen. Für den Server ist es am besten, nur 1 und 0 zu erhalten. 1 bedeutet, dass der Dienst verfügbar ist, und 0 bedeutet, dass der Dienst nicht verfügbar ist. Verbessern Sie diesen Befehl dann wie folgt: # mysqladmin -h 127.0.0.1 -u zabbix -p123456 ping |grep -c alive 1 Das Einfügen von Benutzername und Passwort in den Befehl ist für die zukünftige Wartung nicht sinnvoll. Daher erstellen wir unter /var/lib/zabbix/ eine Konfigurationsdatei „.my.cnf“, die den MySQL-Benutzernamen und das Passwort enthält, wie folgt: Benutzer=zabbix Host = 127.0.0.1 Passwort='123456' Mit dieser Datei ändert sich der Befehl zu HOME=/var/lib/zabbix/mysqladmin ping |grep -c lebendig 1 Nachdem Sie diesen Schritt abgeschlossen haben, müssen Sie nur noch diesen Überwachungsbefehl zum Zabbix-Agenten hinzufügen und ihn einem Schlüssel zuordnen, damit der Zabbox-Server über diesen Schlüssel den Status von MySQL abrufen kann. Wir verwenden mysql.ping als Schlüssel für den MySQL-Status. Entfernen Sie zuerst /etc/zabbix/zabbix_agentd.conf Kommentieren Sie die Zeile „Include=/etc/zabbix_agentd.d/“ aus. Erstellen Sie zweitens die Datei userparameter_mysql.conf im Verzeichnis /etc/zabbix/zabbix_agentd.d/. Fügen Sie der Datei den folgenden Befehl hinzu: Benutzerparameter = mysql.ping, HOME = /var/lib/zabbix mysqladmin ping | grep -c lebendig Verwenden Sie den folgenden Befehl, um zu testen, ob es ordnungsgemäß funktioniert. # /usr/sbin/zabbix_agentd -t mysql.ping mysql.ping [t|1] Weitere Leistungsindikatoren 1. Fügen Sie userparameter_mysql hinzu vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf ####Skript zur Überwachung der MySQL-Leistung UserParameter=mysql.status[*],/etc/zabbix/zabbix_agentd.d/check_mysql.sh $1 #####mysql-Version UserParameter=mysql.version,mysql -V 2.check_mysql.sh #!/bin/bash # ----------------------------------------------------------------------------------- # Dateiname: check_mysql.sh # Revision: 1.0 # ----------------------------------------------------------------------------------- # Urheberrecht: # Lizenz: GPL # Benutzername MYSQL_USER = 'zabbix' # Passwort MYSQL_PWD = 'zabbix@123' # Hostadresse/IP MYSQL_HOST='ip' # Port MYSQL_PORT = '3306' #Datenverbindung MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}" # Sind die Parameter korrekt? if [ $# -ne "1" ]; then echo "Argumentfehler!" fi # Datenfall $1 abrufen in Betriebszeit Ergebnis=`${MYSQL_CONN} status 2>/dev/null |cut -f2 -d":"|cut -f1 -d"T"` echo $ergebnis ;; Com_update) Ergebnis = `${MYSQL_CONN} erweiterter Status 2>/dev/null |grep -w "Com_update"|cut -d"|" -f3` echo $ergebnis ;; Langsame Abfragen Ergebnis=`${MYSQL_CONN} status 2>/dev/null |cut -f5 -d":"|cut -f1 -d"O"` echo $ergebnis ;; (Com_Auswahl) Ergebnis = `${MYSQL_CONN} erweiterter Status 2>/dev/null |grep -w "Com_select"|cut -d"|" -f3` echo $ergebnis ;; Com_rollback) Ergebnis = `${MYSQL_CONN} erweiterter Status 2>/dev/null |grep -w "Com_rollback"|cut -d"|" -f3` echo $ergebnis ;; Fragen) Ergebnis=`${MYSQL_CONN} status 2>/dev/null |cut -f4 -d":"|cut -f1 -d"S"` echo $ergebnis ;; Com_insert) Ergebnis = `${MYSQL_CONN} erweiterter Status 2>/dev/null |grep -w "Com_insert"|cut -d"|" -f3` echo $ergebnis ;; Com_delete) Ergebnis = `${MYSQL_CONN} erweiterter Status 2>/dev/null |grep -w "Com_delete"|cut -d"|" -f3` echo $ergebnis ;; Com_commit) Ergebnis = `${MYSQL_CONN} erweiterter Status 2>/dev/null |grep -w "Com_commit"|cut -d"|" -f3` echo $ergebnis ;; Bytes_gesendet) Ergebnis = `${MYSQL_CONN} erweiterter Status 2>/dev/null |grep -w "Bytes_sent" |cut -d"|" -f3` echo $ergebnis ;; Bytes_empfangen) Ergebnis = `${MYSQL_CONN} erweiterter Status 2>/dev/null |grep -w "Bytes_received" |cut -d"|" -f3` echo $ergebnis ;; Com_begin) Ergebnis = `${MYSQL_CONN} erweiterter Status 2>/dev/null |grep -w "Com_begin"|cut -d"|" -f3` echo $ergebnis ;; *) echo "Verbrauch:$0(Betriebszeit|Com_update|Langsame Abfragen|Com_select|Com_rollback|Fragen|Com_insert|Com_delete|Com_commit|Gesendete Bytes|Empfangene Bytes|Com_begin)" ;; esac 3. Autorisierung:chmod +x /etc/zabbix/zabbix_agentd.d/check_mysql.sh Chown zabbix.zabbix /etc/zabbix/zabbix_agentd.d/check_mysql.sh 4. Test auf zabbix_agent:zabbix_agentd -t mysql.ping 5. Zabbix_server-Testzabbix_get -s ip -P port -k mysql.ping 5. Konfigurieren im Web**Erstellen eines Hosts** Zugehörige Vorlagen Überwachungselemente erstellen Erstellen eines Diagramms Überwachungsbilder ansehen Mit dieser Konfiguration werden weitere Überwachungselemente ausgeführt 6. Zabbix wird mit MySQL-Überwachungselementen geliefertversion: Datenbankversion key_buffer_size: Indexpuffergröße von MyISAM sort_buffer_size: Sortierplatz der Sitzung (einer wird für jeden Thread angefordert) join_buffer_size: Dies ist die minimale Puffergröße, die für Verbindungsvorgänge zugewiesen wird. Diese Verbindungen verwenden normale Index-Scans, Bereichs-Scans oder Verbindungen, die keine Indizes anwenden. max_connections: Die maximal zulässige Anzahl gleichzeitiger Verbindungen. max_connect_errors: Die maximal zulässige Anzahl fehlerhafter Verbindungen für einen Host. Bei Überschreitung werden nachfolgende Verbindungen abgelehnt (Standard: 100). Mit dem Befehl „flush hosts“ können Sie die Ablehnung von „open_files_limits“ entfernen: die Anzahl der Dateien, die das Betriebssystem MySQL öffnen lässt. Sie können anhand des Status von „opened_tables“ feststellen, ob Sie „table_open_cache“ erhöhen müssen. Wenn „opened_tables“ relativ groß ist und weiter zunimmt, bedeutet dies, dass Sie „table_open_cache“ erhöhen müssen. max-heap_tables_size: Die maximale Größe der erstellten Speichertabelle (Standard 16 MB). Dieser Parameter und tmp_table_size begrenzen zusammen den Maximalwert der internen temporären Tabelle (nehmen Sie den kleineren der beiden Parameter). Wenn der Grenzwert überschritten wird, wird die Tabelle in die InnoDB- oder Myisam-Engine geändert (vor 5.7.5 ist Myisam der Standardwert und ab 5.7.6 ist es InnoDB, was durch den Parameter internal_tmp_disk_storage_engine angepasst werden kann). max_allowed_packet: Maximale Größe eines Pakets##########GET INNODB INFO #INNODB-Variablen innodb_version: innodb_buffer_pool_instances: Den InnoDB-Pufferpool in mehrere angegebene Instanzen aufteilen (Standard ist 1) innodb_buffer_pool_size: InnoDB-Pufferpoolgröße, 5.7.5 führte innodb_buffer_pool_chunk_size ein, innodb_doublewrite: ob Doublewrite aktiviert werden soll (standardmäßig aktiviert) innodb_read_io_threads: die Anzahl der IO-Lese-Threads innodb_write_io_threads: die Anzahl der IO-Schreib-Threads########innodb-Status innodb_buffer_pool_pages_total: Die Anzahl der InnoDB-Pufferpoolseiten, die Größe entspricht innodb_buffer_pool_size/(16*1024) innodb_buffer_pool_pages_data: die Anzahl der Seiten mit Daten im InnoDB-Pufferpool########### GET MYSQL HITRATE 1. Abfrage-Cache-Trefferquote: Wenn Qcache_hits+Com_select<>0, dann ist es Qcache_hits/(Qcache_hits+Com_select), andernfalls ist es 0 2. Thread-Cache-Trefferquote: Wenn Verbindungen<>0, dann ist es 1-Threads_created/Connections, andernfalls ist es 0 3. Die Trefferquote des MyISAM-Schlüsselcaches beträgt 1-Key_reads/Key_read_requests, wenn Key_read_requests<>0, andernfalls 0. 4. Die Schreibtrefferrate im MyISAM-Schlüsselcache beträgt 1-Key_writes/Key_write_requests, wenn Key_write_requests<>0, andernfalls 0 5. Schlüsselblock-Nutzungsrate: Wenn Key_blocks_used+Key_blocks_unused<>0, dann Key_blocks_used/(Key_blocks_used+Key_blocks_unused), andernfalls 0 6. Erstellen Sie das Verhältnis der temporären Tabelle für den Festplattenspeicher. Wenn „Created_tmp_disk_tables+Created_tmp_tables<>0“, dann „Created_tmp_disk_tables/(Created_tmp_disk_tables+Created_tmp_tables), andernfalls 0“. 7. Verbindungsnutzungsrate: Wenn max_connections<>0, dann threads_connected/max_connections, sonst 0 8. Offene Datei-Ratio: wenn open_files_limit<>0, dann open_files/open_files_limit, sonst 0 9. Tabellen-Cache-Nutzung Wenn table_open_cache<>0, dann open_tables/table_open_cache, sonst 0 Dies ist das Ende dieses Artikels über die Beispielmethode zur Überwachung von MySQL durch Zabbix. Weitere relevante Inhalte zur Überwachung von MySQL durch Zabbix 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:
|
<<: HTML-Code für feste Titelspalte und spezifische Implementierungscode für die Titelkopftabelle
>>: Müssen die Texte der Website noch gestaltet werden?
Hintergrund: Ich frage mich, ob Ihnen aufgefallen...
Inhaltsverzeichnis Überblick Erstellen Sie eine T...
Heutzutage beginnen viele Leute damit, Websites z...
1. Neue Funktionen MySQL 5.7 ist ein spannender M...
MySQL verwendet Trigger, um das Zeilenlimit der T...
Das Hyperlink-Tag <a> stellt einen Linkpunkt...
1. Erzielen Sie den Effekt 2 Wissenspunkte 2.1 &l...
Inhaltsverzeichnis 1. LVS-Lastausgleich 2. Grundl...
Inhaltsverzeichnis 1. Konfigurieren Sie zunächst ...
1. Überprüfen Sie den Installationspfad der Softw...
Inhaltsverzeichnis 1. Aktuelle Situation 2. Commu...
Inhaltsverzeichnis Der Hintergrund ist: Was wird ...
1.1 Einführung in die iptables-Firewall Netfilter...
Der sogenannte Container erstellt tatsächlich ein...