Zabbix implementiert die Überwachung mehrerer MySQL-Prozesse

Zabbix implementiert die Überwachung mehrerer MySQL-Prozesse

Auf einem Server werden drei MySQL-Instanzprozesse gestartet, die unterschiedliche Ports belegen: 3306, 3307 und 3308

Prinzipbeschreibung:

Der Port der MySQL-Instanz wird über die Regel zur automatischen Erkennung ermittelt. Der {$MYSQLPORT} in der Regel zur automatischen Erkennung ist ein Parameter, der an das Skript zur automatischen Erkennung des Agenten übergeben wird. Dieser Wert wird aus dem vom Host definierten Makro {$MYSQLPORT} ermittelt. Das Skript zur automatischen Erkennung analysiert ihn in die Form {#MYSQLPORT}: Port. Der Prototyp des Überwachungselements generiert dann das Überwachungselement basierend auf dem Wert von {#MYSQLPORT}. Der allgemeine Prozess ist wie folgt:

Hostdefinitionsmakro {$MYSQLPORT}->Schlüssel der automatischen Erkennungsregel {$MYSQLPORT}->Aufruf des Skripts zur automatischen Erkennung auf dem Agenten und Analysieren in {#MYSQLPORT}: Port->Prototyp des Überwachungselements {#MYSQLPORT}->Automatisches Generieren eines Hostüberwachungselements

1. Operationen auf MySQL-Multiinstanzservern

1. Autorisieren Sie Zabbix, das MySQL-Konto zu überwachen, was in jedem Fall erforderlich ist.

Das Konto hier ist zabbixagent und das Passwort ist: Zabbix131

GRANT USAGE, PROCESS, REPLICATION CLIENT, REPLICATION SLAVE ON *.* AN ‚zabbixagent‘@‚localhost‘ IDENTIFIZIERT DURCH ‚Zabbix131‘;
Berechtigungen leeren;

2. Ändern Sie die Konfigurationsdatei zabbix_agentd.conf

Letzte Positionserhöhung

     UnsafeUserParameters=1
     EnableRemoteCommands=1
     Include=/etc/zabbix/etc/zabbix_agentd.conf.d/*.conf
[root@mysql zabbix]# vi /etc/zabbix/etc/zabbix_agentd.conf
     UnsafeUserParameters=1
     EnableRemoteCommands=1
     Include=/etc/zabbix/etc/zabbix_agentd.conf.d/*.conf

3. Konfigurationsdateien hinzufügen

[root@mysql usw.]# vim /etc/zabbix/etc/zabbix_agentd.conf.d/check_mysql.conf
     UserParameter=mysql_discovery[*],/etc/zabbix/bin/discovery_mysql.sh $1 ###Automatisch verschiedene Ports erkennen UserParameter=mysql.status[*],/etc/zabbix/bin/mysql_status.sh $1 $2 ###Informationen zur Leistungsüberwachung UserParameter=mysql.ping[*],/etc/zabbix/bin/mysql_alive.sh $1 ### Ist es aktiv? UserParameter=mysql.ms.check[*],/etc/zabbix/bin/mysql_slave_status.sh $1 ### Ist der Slave-Status normal? UserParameter=mysql.ms.time[*],/etc/zabbix/bin/mysql_slave_time.sh $1 ### Gibt es eine Verzögerung im Slave

4. Ausführungsskriptdatei hinzufügen

[root@mysql usw.]# ll /etc/zabbix/bin/
insgesamt 716
     -rwxr-xr-x 1 root root 441 22. Juli 11:36 discovery_mysql.sh
     -rwxr-xr-x 1 root root 401 22. Juli 11:36 mysql_alive.sh
     -rwxr-xr-x 1 root root 303 22. Juli 15:10 mysql_slave_status.sh
     -rwxr-xr-x 1 root root 286 22. Juli 15:10 mysql_slave_time.sh
     -rwxr-xr-x 1 root root 299 22. Juli 11:36 mysql_status.sh
     -rwxr-xr-x 1 root root 370 22. Juli 11:36 mysql_version.sh
[root@mysql usw.]# mehr /etc/zabbix/bin/discovery_mysql.sh
     res=`echo $1| sed "s/_/\n/g"`;
     port=($res)
     druckenf '{\n'
     printf '\t"Daten":[\n'
     für Schlüssel in ${!port[@]}
     Tun
       wenn [[ "${#port[@]}" -gt 1 und "${key}" -ne "$((${#port[@]}-1))" ]];
     Dann
         printf '\t {\n'
         printf "\t\t\t\"{#MYSQLPORT}\":\"${port[${key}]}\"},\n"
     sonst [[ "${key}" -eq "((${#port[@]}-1))" ]]
         printf '\t {\n'
         printf "\t\t\t\"{#MYSQLPORT}\":\"${port[${key}]}\"}\n"
     fi
     Erledigt
     printf '\t ]\n'
     printf '}\n'
[root@mysql usw.]# mehr /etc/zabbix/bin/mysql_status.sh
     #!/bin/bash
     var=$1
     mysql=/usr/local/mysql/bin/mysql
     MYSQL_USER="zabbixagent"
     MYSQL_PASSWORD=Zabbix131
     MYSQL_SOCK_DIR="/tmp/mysql$2.sock"
     ${mysql} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -S ${MYSQL_SOCK_DIR} -e "globalen Status anzeigen;" 2> /dev/null |grep -v Variablenname|grep "\b${var}\b"|awk '{print $2}'
[root@mysql usw.]# mehr /etc/zabbix/bin/mysql_alive.sh
     #!/bin/bash
     mysqladmin=/usr/local/mysql/bin/mysqladmin
     MYSQL_USERdd="zabbixagent"
     MYSQL_PASSWORD=Zabbix131
     MYSQL_SOCK_DIR="/tmp/mysql$1.sock"
     ${mysqladmin} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -S ${MYSQL_SOCK_DIR} ping|grep -c alive
[root@mysql usw.]# mehr /etc/zabbix/bin/mysql_slave_status.sh
     #!/bin/bash
     #var=$1
     mysql=/usr/local/mysql/bin/mysql
     MYSQL_USERdd="zabbixagent"
     MYSQL_PASSWORD=Zabbix131
     MYSQL_SOCK_DIR="/tmp/mysql$1.sock"
     ${mysql} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -S ${MYSQL_SOCK_DIR} -e "Slave-Status anzeigen\G;" 2> /dev/null|grep -E 'Slave_IO_Running: Ja|Slave_SQL_Running: Ja'|grep -c Ja
[root@mysql usw.]# mehr /etc/zabbix/bin/mysql_slave_time.sh
     #!/bin/bash
     #var=$1
     mysql=/usr/local/mysql/bin/mysql
     MYSQL_USERdd="zabbixagent"
     MYSQL_PASSWORD=Zabbix131
     MYSQL_SOCK_DIR="/tmp/mysql$1.sock"
     ${mysql} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -S ${MYSQL_SOCK_DIR} -e "Slave-Status anzeigen\G;" 2> /dev/null|grep -E 'Seconds_Behind_Master'|awk '{print $2}'

5. Starten Sie zabbix_agentd neu

[root@mysql zabbix_agentd.d]# systemctl restart zabbix-agent

2. Operationen auf der Zabbix-Seite

1. Importieren Sie die Vorlageninformationen template_multi_MySQL.xml. Sie können auch auf die XML-Datei verweisen, um sie manuell hinzuzufügen.

2. Erstellen Sie automatische Erkennungsregeln für die Vorlage. In den automatischen Erkennungsregeln müssen zwei Dinge definiert werden:
a. Der Schlüsselwert wird verwendet, um automatisch den Port der MySQL-Instanz zu erhalten. Sie müssen das Host-Makro {$MYSQLPORT} verwenden.

b. Der Überwachungselementprototyp generiert das entsprechende Überwachungselement entsprechend dem erhaltenen Port und das automatische Erkennungsmakro {#MYSQLPORT} ist erforderlich.

3. Fügen Sie die neu erstellte Vorlage dem zu überwachenden Host hinzu

4. Definieren Sie auf dem zu überwachenden Host ein Makro {$MYSQLPORT}, das dem zu überwachenden Port entspricht, z. B. 3306_3307_3308

3. Warten Sie, bis die Datenerfassung abgeschlossen ist. Wenn keine Daten vorliegen, testen Sie die spezifischen

Wenn Sie beispielsweise Vorgänge auf dem Zabbixserver ausführen, etwa testen, ob MySQL 3306 aktiv ist, bedeutet 1 aktiv und 0 inaktiv.

Der endgültige Effekt ist

Zabbix131

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So überwachen Sie MySQL mit Zabbix
  • 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

<<:  Umfassende Interpretation der MySQL Master-Slave-Replikation, vom Prinzip bis zur Installation und Konfiguration

>>:  So verwenden Sie wangEditor in Vue und erhalten durch Echo von Daten den Fokus

Artikel empfehlen

Nginx: Ein Domänenname für den Zugriff auf mehrere Projekte – Methodenbeispiel

Hintergrund Kürzlich stieß ich bei der Bereitstel...

Zusammenfassung der Probleme bei der Speicherplatzfreigabe unter Linux

Die /Partitionsauslastung eines Servers im IDC is...

Google Translate Tool: Mehrsprachige Webseiten schnell umsetzen

Google China hat ein Übersetzungstool veröffentlic...

So installieren Sie Theano und Keras auf einem Ubuntu-System

Hinweis: Das System ist Ubuntu 14.04LTS, ein 32-B...

Tutorial zur Installation einer MySQL-ZIP-Datei

In diesem Artikel wird die spezifische Methode zu...

Schreiben Sie mit CSS in drei Schritten einen Coupon für eine Shopping-Card

Heute ist der 618. und alle großen Einkaufszentre...

Hilfe zum Webdesign: Datenreferenz für Web-Schriftgrößen

<br />Der Inhalt wurde aus dem Internet repr...

Schritte für Docker zum Erstellen eines privaten Lagerhafens

Hafen Harbor ist eine Open-Source-Lösung zum Erst...

Zusammenfassung der Dateninteraktion zwischen Docker-Container und Host

Vorwort Beim Einsatz von Docker in einer Produkti...

MySQL Series II-Konfiguration für mehrere Instanzen

Tutorial-Reihe MySQL-Reihe: Grundlegende Konzepte...

So verwenden Sie Vue3-Mixin

Inhaltsverzeichnis 1. Wie verwende ich Mixin? 2. ...

Detaillierte Erläuterung der Wissenspunkte der Linux-DMA-Schnittstelle

1. Zwei Arten der DMA-Zuordnung 1.1. Konsistente ...