Überwachung von MySQL in ZABBIX – SouToub


[*]

MySQL - ZABBIX
http://www.zabbix.com/

Die Überwachung eines DBMS ist sowohl zum Auffinden von Leistungsengpässen als auch zum weiteren “Optimieren” erforderlich. Daher ist das Problem der Verfolgung der Hauptparameter von großer Bedeutung… Dies gilt nicht für einige kleine Server. Wir sprechen von ziemlich ressourcenintensiven Anwendungen, die eng mit dem DBMS interagieren. MySQL ist in der Lage, Daten über seine eigene Leistung zu liefern. Die einzige Frage ist, wie diese an das Überwachungssystem angeschlossen werden können, in unserem Fall Zabbix. Darum geht es in diesem Artikel.


Ein Einführungsartikel zu ZABBIX-Überwachungsmustern – ZABBIX-Muster.

Wenn Sie sich für das Thema ZABBIX interessieren, empfehlen wir Ihnen, den Hauptartikel – ZABBIX-Überwachungssystem – zu lesen. Dort finden Sie zusätzliche Informationen.


Einrichten der MySQL-Überwachung in ZABBIX

Erstellen Sie ein Verzeichnis für Skripte, falls Sie es noch nicht haben. Wir weisen sofort Rechte zu und wechseln den Eigentümer:
root @ debian7: ~ # mkdir -m 750 / usr / local / etc / zabbix_agent_scripts
root @ debian7: ~ # chown root: zabbix / usr / local / etc / zabbix_agent_scripts

Lassen Sie uns ein Skript erstellen:
root @ debian7: ~ # nano /usr/local/etc/zabbix_agent_scripts/mysql-stats.sh

Mit folgendem Inhalt:

#! / bin / bash
##### OPTIONENÜBERPRÜFUNG #####
wenn [[ -z «$1» || -z «$2″ ]]; dann
Ausfahrt 1
Sein
##### PARAMETER #####
RESERVIERT = »$ 1 ″
METRISCH = »$ 2 ″
USER = »$ {3: -user}»
PASS = »$ {4: -pass}»
#
MYSQLADMIN = »/ usr / bin / mysqladmin»
MYSQL = »/ usr / bin / mysql»
CACHE_TTL = »55 ″
CACHE_FILE = »/ tmp / zabbix.mysql-stats.cache»
EXEC_TIMEOUT = »1 ″
NOW_TIME =date '+%s'
##### LAUF #####
wenn [ «${METRIC}» = «alive» ];; dann
$ {MYSQLADMIN} -u $ {USER} -p $ {PASS} ping | grep lebendig | wc -l | Kopf -n1
Ausfahrt 0
Sein
wenn [ «${METRIC}» = «version» ];; dann
$ {MYSQL} -V | sed -es /^.* (ver. * ) $ / 1 / gI ‘| Kopf -n1
Ausfahrt 0
Sein
#
wenn [ -s «${CACHE_FILE}» ];; dann
CACHE_TIME =stat -c"%Y" "${CACHE_FILE}"
sonst
CACHE_TIME = 0
Sein
DELTA_TIME = $ (($ {NOW_TIME} – $ {CACHE_TIME}))
#
wenn [ ${DELTA_TIME} -lt ${EXEC_TIMEOUT} ];; dann
sleep $ (($ {EXEC_TIMEOUT} – $ {DELTA_TIME}))
elif [ ${DELTA_TIME} -gt ${CACHE_TTL} ];; dann
echo «» >> «$ {CACHE_FILE}» # !!!
DATACACHE =${MYSQLADMIN} -u${USER} -p${PASS} extended-status 2>&1
echo «$ {DATACACHE}»> «$ {CACHE_FILE}» # !!!
chmod 640 «$ {CACHE_FILE}»
Sein
#
Katze «$ {CACHE_FILE}» | grep -iw «$ METRIC» | cut -d ‘|’ -f3 | Kopf -n1
#
Ausfahrt 0

Lassen Sie uns den Eigentümer des Skripts ändern und es für den Eigentümer und die Gruppe ausführbar machen, indem Sie die entsprechenden Rechte zuweisen:
root @ debian7: ~ # chown root: zabbix /usr/local/etc/zabbix_agent_scripts/mysql-stats.sh
root @ debian7: ~ # chmod 550 /usr/local/etc/zabbix_agent_scripts/mysql-stats.sh

Als Nächstes müssen Sie einen Benutzer in MySQL erstellen.
root @ debian7: ~ # mysql -u root -p
mysql> Gewähren Sie die Verwendung von *. * für ‘zabbix’ @ ‘localhost’, gekennzeichnet durch ‘your-password’.
mysql> Flush-Berechtigungen;
mysql> Verlassen;

Der nächste Schritt besteht darin, ein Verzeichnis für benutzerdefinierte Parameter zu erstellen. Im Prinzip können Sie diese Parameter ganz am Ende der Konfigurationsdatei des zabbix-Agenten hinzufügen. Es ist jedoch kompetenter, den externen Pfad für zusätzliche Parameter in derselben Konfiguration zu definieren, wie ich es getan habe. Wir erstellen ein Verzeichnis und weisen ihm sofort Rechte zu und ändern den Eigentümer:
root @ debian7: ~ # mkdir -m 750 / usr / local / etc / zabbix_agent_configs
root @ debian7: ~ # chown root: zabbix / usr / local / etc / zabbix_agent_configs
Öffnen Sie als Nächstes die Konfigurationsdatei des zabbix-Agenten und suchen Sie nach dem Parameter „Einschließen“(Sie müssen es auskommentieren), sein Wert ist der oben definierte Pfad für zusätzliche Konfigurationsdateien.
root @ debian7: ~ # nano /usr/local/etc/zabbix_agentd.conf
Include = / usr / local / etc / zabbix_agent_configs /

Erstellen Sie eine Datei mit zusätzlichen Benutzerparametern, legen Sie die erforderlichen Rechte fest und ändern Sie den Eigentümer:
root @ debian7: ~ # nano /usr/local/etc/zabbix_agent_configs/mysql.conf

UserParameter = mysql-stats[*], / usr / local / etc / zabbix_agent_scripts / mysql-stats.sh «keine» «$ 1» Benutzername Benutzerpass
Es ist zu beachten, dass der Benutzername und das Kennwort in der Datei im Klartext registriert werden müssen. Achten Sie daher auf die Sicherheit, ohne dem Benutzer zusätzliche Rechte zuzuweisen.

root @ debian7: ~ # chown root: zabbix /usr/local/etc/zabbix_agent_configs/mysql.conf
root @ debian7: ~ # chmod 550 /usr/local/etc/zabbix_agent_configs/mysql.conf

Starten Sie den Agenten neu:
root @ debian7: ~ # Service Zabbix-Agent Neustart

Die neue Vorlage muss noch auf den zabbix-Server importiert werden. Hier können Sie eine vorgefertigte Vorlage zur Überwachung von MySQL herunterladen: Vorlage zur Überwachung von MySQL-Statistiken (Agent)

Überprüfen Sie aus Gründen der Zuverlässigkeit, wie die Daten gesendet werden:
root @ debian7: ~ # zabbix_get -s 127.0.0.1 -k mysql-stats[questions]

Ersetzen Sie “127.0.0.1” durch die Adresse Ihres MySQL-Servers.

Das Setup ist abgeschlossen. Unten finden Sie ein kleines Beispiel für die eingehenden Daten:

zabbix mysql überwachung 01

Das Problem der Datenanalyse wird in diesem Artikel nicht berücksichtigt, da Es beruht auf der komplexen Verfolgung einer Reihe von voneinander abhängigen Parametern, die nicht einzeln betrachtet werden können.


Überwachen von MySQL-Parametern in Zabbix

Kommentare bereitgestellt von HyperComments

Leave a Reply

Your email address will not be published. Required fields are marked *