MySQL mit Zabbix Agent 2 überwachen

Einführung

Diese Seite führt Sie durch die Schritte, die erforderlich sind, um mit der grundlegenden Überwachung eines MySQL-Servers zu beginnen.

Für die Überwachung eines MySQL-Servers gibt es mehrere Ansätze: Zabbix Agent, Zabbix Agent 2 oder den Standard Open Database Connectivity (ODBC). Der Schwerpunkt dieses Leitfadens liegt auf der Überwachung eines MySQL-Servers mit Zabbix Agent 2, was aufgrund der nahtlosen Konfiguration in verschiedenen Umgebungen der empfohlene Ansatz ist. Diese Seite enthält jedoch auch Anweisungen für die anderen Ansätze, sodass Sie denjenigen auswählen können, der Ihren Anforderungen am besten entspricht.

Für wen dieser Leitfaden gedacht ist

Dieser Leitfaden richtet sich an neue Zabbix-Benutzer und enthält die minimale Anzahl an Schritten, die erforderlich sind, um die grundlegende Überwachung eines MySQL-Servers zu aktivieren. Wenn Sie nach umfangreichen Anpassungsoptionen suchen oder eine fortgeschrittenere Konfiguration benötigen, lesen Sie den Abschnitt Konfiguration im Zabbix-Handbuch.

Voraussetzungen

Bevor Sie mit dieser Anleitung fortfahren, müssen Sie den Zabbix Server, das Zabbix Frontend und den Zabbix Agent 2 gemäß den Anweisungen für Ihr Betriebssystem herunterladen und installieren.

Je nach Ihrer Umgebung können einige Schritte in dieser Anleitung leicht abweichen. Diese Anleitung basiert auf einer Umgebung mit Ubuntu.

MySQL-Benutzer erstellen

Um einen MySQL-Server zu überwachen, benötigt Zabbix Zugriff darauf und auf seine Prozesse. Ihre MySQL-Installation verfügt bereits über einen Benutzer mit dem erforderlichen Zugriffslevel (den Benutzer "zabbix", der bei der Installation von Zabbix erstellt wurde), allerdings hat dieser Benutzer mehr Berechtigungen als für die einfache Überwachung notwendig sind (Berechtigungen zum DROP von Datenbanken, DELETE von Einträgen aus Tabellen usw.). Daher muss ein MySQL-Benutzer ausschließlich für die Überwachung des MySQL-Servers erstellt werden.

1. Verbinden Sie sich mit dem MySQL-Client, erstellen Sie einen Benutzer "zbx_monitor" (ersetzen Sie <password> für den Benutzer "zbx_monitor" durch ein Passwort Ihrer Wahl), und erteilen Sie dem Benutzer die erforderlichen Berechtigungen mit GRANT:

mysql -u root -p
# Passwort eingeben:

mysql> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
mysql> quit;

Sobald der Benutzer erstellt wurde, können Sie mit dem nächsten Schritt fortfahren.

Zabbix Frontend konfigurieren

1. Melden Sie sich im Zabbix Frontend an.

2. Erstellen Sie einen Host in der Zabbix-Weboberfläche:

  • Geben Sie im Feld Host name einen Hostnamen ein (z. B. "MySQL server").
  • Geben Sie im Feld Templates die Vorlage "MySQL by Zabbix agent 2" ein oder wählen Sie sie aus, die mit dem Host verknüpft werden soll.
  • Geben Sie im Feld Host groups eine Hostgruppe ein oder wählen Sie sie aus (z. B. "Databases").
  • Fügen Sie im Feld Interfaces eine Schnittstelle vom Typ "Agent" hinzu und geben Sie die IP-Adresse Ihres MySQL-Servers an. In diesem Leitfaden wird "127.0.0.1" (localhost) verwendet, um einen MySQL-Server zu überwachen, der auf demselben Rechner wie der Zabbix-Server und Zabbix Agent 2 installiert ist.

  • Wechseln Sie auf der Registerkarte Macros zu Inherited and host macros, suchen Sie nach den folgenden Makros und klicken Sie neben dem Makrowert auf Change, um ihn zu aktualisieren:
    • {$MYSQL.DSN} - legen Sie die Datenquelle des MySQL-Servers fest (die Verbindungszeichenfolge einer benannten Sitzung aus der Konfigurationsdatei des MySQL-Zabbix-Agent-2-Plugins). In diesem Leitfaden wird die Standard-Datenquelle "tcp://localhost:3306" verwendet, um einen MySQL-Server zu überwachen, der auf demselben Rechner wie der Zabbix-Server und Zabbix Agent 2 installiert ist.
    • {$MYSQL.PASSWORD} - legen Sie das Passwort des zuvor erstellten MySQL-Benutzers "zbx_monitor" fest.
    • {$MYSQL.USER} - legen Sie den Namen des zuvor erstellten MySQL-Benutzers "zbx_monitor" fest.

3. Klicken Sie auf Add, um den Host hinzuzufügen. Dieser Host wird Ihren MySQL-Server repräsentieren.

Erfasste Metriken anzeigen

Herzlichen Glückwunsch! Zu diesem Zeitpunkt überwacht Zabbix bereits Ihren MySQL-Server.

Um die erfassten Metriken anzuzeigen, navigieren Sie zum Menübereich Monitoring → Hosts und klicken Sie neben dem Host auf Dashboards.

Diese Aktion führt Sie zum Host-Dashboard (auf Vorlagenebene konfiguriert) mit den wichtigsten vom MySQL-Server erfassten Metriken.

Alternativ können Sie im Menübereich Monitoring → Hosts auf Latest data klicken, um alle zuletzt erfassten Metriken in einer Liste anzuzeigen. Beachten Sie, dass für den Datenpunkt MySQL: Calculated value of innodb_log_file_size keine Daten erwartet werden, da der Wert aus den Daten der letzten Stunde berechnet wird.

Problemalarme einrichten

Zabbix kann Sie mit verschiedenen Methoden über ein Problem in Ihrer Infrastruktur benachrichtigen. Diese Anleitung enthält grundlegende Konfigurationsschritte zum Senden von E-Mail-Benachrichtigungen.

1. Navigieren Sie zu Benutzereinstellungen → Profil, wechseln Sie zur Registerkarte Medien und fügen Sie Ihre E-Mail-Adresse hinzu.

2. Folgen Sie der Anleitung zum Empfangen einer Problembenachrichtigung.

Wenn Zabbix das nächste Mal ein Problem erkennt, sollten Sie eine Benachrichtigung per E-Mail erhalten.

Testen Sie Ihre Konfiguration

Um Ihre Konfiguration zu testen, können wir ein echtes Problem simulieren, indem wir die Host-Konfiguration im Zabbix Frontend aktualisieren.

1. Öffnen Sie die Host-Konfiguration Ihres MySQL-Servers in Zabbix.

2. Wechseln Sie zur Registerkarte Macros und wählen Sie Inherited and host macros aus.

3. Klicken Sie neben dem beispielsweise zuvor konfigurierten}-Makrowert auf Change und setzen Sie einen anderen MySQL-Benutzernamen.

4. Klicken Sie auf Update, um die Host-Konfiguration zu aktualisieren.

5. Nach einigen Augenblicken erkennt Zabbix das Problem "MySQL: Service is down", da keine Verbindung zum MySQL-Server hergestellt werden kann. Das Problem wird unter Monitoring → Problems angezeigt.

Wenn Benachrichtigungen konfiguriert sind, erhalten Sie außerdem die Problembenachrichtigung.

6. Ändern Sie den Makrowert wieder auf den vorherigen Wert zurück, um das Problem zu beheben und die Überwachung des MySQL-Servers fortzusetzen.

Andere Ansätze zur Überwachung von MySQL

Anstatt einen MySQL-Server mit Zabbix Agent 2 zu überwachen, können Sie auch Zabbix Agent oder den Standard Open Database Connectivity (ODBC) verwenden. Obwohl die Verwendung von Zabbix Agent 2 empfohlen wird, gibt es möglicherweise einige Setups, die Zabbix Agent 2 nicht unterstützen oder einen benutzerdefinierten Ansatz erfordern.

Der wesentliche Unterschied zwischen Zabbix Agent und ODBC liegt in der Methode der Datenerfassung - Zabbix Agent wird direkt auf dem MySQL-Server installiert und erfasst Daten mithilfe seiner integrierten Funktionalität, während ODBC auf einen ODBC-Treiber angewiesen ist, um eine Verbindung zum MySQL-Server herzustellen und Daten mithilfe von SQL-Abfragen abzurufen.

Obwohl viele der Konfigurationsschritte denen für die Überwachung eines MySQL-Servers mit Zabbix Agent 2 ähneln, gibt es einige wesentliche Unterschiede - Sie müssen Zabbix Agent oder ODBC konfigurieren, um einen MySQL-Server überwachen zu können. Die folgenden Anweisungen führen Sie durch diese Unterschiede.

MySQL mit Zabbix Agent überwachen

Um einen MySQL-Server mit Zabbix Agent zu überwachen, müssen Sie Zabbix Server, Zabbix Frontend und Zabbix Agent gemäß den Anweisungen für Ihr Betriebssystem herunterladen und installieren.

Nachdem Sie die erforderlichen Zabbix-Komponenten erfolgreich installiert haben, müssen Sie einen MySQL-Benutzer erstellen, wie im Abschnitt MySQL-Benutzer erstellen beschrieben.

Nachdem Sie den MySQL-Benutzer erstellt haben, müssen Sie Zabbix Agent so konfigurieren, dass eine Verbindung zum MySQL-Server hergestellt und dieser überwacht werden kann. Dazu gehört die Konfiguration mehrerer Benutzerparameter für die Ausführung benutzerdefinierter Agent-Prüfungen sowie die Bereitstellung der erforderlichen Anmeldedaten für Zabbix Agent, um eine Verbindung zum MySQL-Server als der zuvor erstellte Benutzer "zbx_monitor" herzustellen.

Zabbix Agent konfigurieren

1. Navigieren Sie zum Verzeichnis für zusätzliche Konfigurationen des Zabbix Agent.

cd /usr/local/etc/zabbix/zabbix_agentd.d

Das Verzeichnis für zusätzliche Konfigurationen des Zabbix Agent sollte sich im selben Verzeichnis wie Ihre Zabbix Agent-Konfigurationsdatei (zabbix_agentd.conf) befinden. Je nach Betriebssystem und Zabbix-Installation kann sich dieses Verzeichnis an einem anderen als dem in dieser Anleitung angegebenen Ort befinden. Informationen zu den Standardpfaden finden Sie im Parameter Include in der Konfigurationsdatei des Zabbix Agent.

Anstatt alle erforderlichen UserParameter für die Überwachung des MySQL-Servers in der Konfigurationsdatei des Zabbix Agent zu definieren, werden diese Parameter in einer separaten Datei im Verzeichnis für zusätzliche Konfigurationen definiert.

2. Erstellen Sie eine Datei template_db_mysql.conf im Verzeichnis für zusätzliche Konfigurationen des Zabbix Agent.

vi template_db_mysql.conf

3. Kopieren Sie den Inhalt der Datei template_db_mysql.conf (im Zabbix-Repository) in die von Ihnen erstellte Datei template_db_mysql.conf und speichern Sie die Datei.

4. Starten Sie den Zabbix Agent neu, um seine Konfiguration zu aktualisieren.

systemctl restart zabbix-agent

Nachdem Sie die UserParameter des Zabbix Agent konfiguriert haben, können Sie mit der Konfiguration der Anmeldedaten fortfahren, die es dem Zabbix Agent ermöglichen, auf den MySQL-Server zuzugreifen.

5. Navigieren Sie zum Home-Verzeichnis des Zabbix Agent (falls es auf Ihrem System nicht vorhanden ist, müssen Sie es erstellen; Standard: /var/lib/zabbix).

cd /var/lib/zabbix

6. Erstellen Sie eine Datei .my.cnf im Home-Verzeichnis des Zabbix Agent.

vi .my.cnf

7. Kopieren Sie den folgenden Inhalt in die Datei .my.cnf (ersetzen Sie <password> durch das Passwort des Benutzers "zbx_monitor").

[client]
user='zbx_monitor'
password='<password>'

Zabbix Frontend konfigurieren und Ihre Konfiguration testen

Um das Zabbix Frontend zu konfigurieren, folgen Sie den Anweisungen im Abschnitt Zabbix Frontend konfigurieren mit den folgenden Anpassungen:

  • Geben Sie im Feld Vorlagen die Vorlage "MySQL by Zabbix agent" ein oder wählen Sie sie aus, die mit dem Host verknüpft wird.
  • Die Konfiguration von Makros ist nicht erforderlich.

Nachdem Sie das Zabbix Frontend konfiguriert haben, können Sie gesammelte Metriken anzeigen und Problemalarme einrichten.

Um Ihre Konfiguration zu testen, folgen Sie den Anweisungen im Abschnitt Ihre Konfiguration testen mit den folgenden Anpassungen:

  • Klicken Sie im Abschnitt Vererbte und Host-Makros der Host-Konfiguration des MySQL-Servers neben dem Wert des Makros {$MYSQL.PORT} auf Ändern und legen Sie einen anderen Port fest (z. B. "6033").

MySQL mit ODBC überwachen

Um einen MySQL-Server mit ODBC zu überwachen, müssen Sie Zabbix Server und Zabbix Frontend herunterladen und installieren.

Nachdem Sie die erforderlichen Zabbix-Komponenten erfolgreich installiert haben, müssen Sie einen MySQL-Benutzer erstellen, wie im Abschnitt MySQL-Benutzer erstellen beschrieben.

Nachdem Sie den MySQL-Benutzer erstellt haben, müssen Sie ODBC einrichten. Dazu gehört die Installation einer der am häufigsten verwendeten Open-Source-Implementierungen der ODBC-API - unixODBC - sowie eines unixODBC-Treibers und außerdem das Bearbeiten der Konfigurationsdatei des ODBC-Treibers.

ODBC konfigurieren

1. Installieren Sie unixODBC. Der empfohlene Weg zur Installation von unixODBC ist die Verwendung der Standard-Paketquellen des Linux-Betriebssystems.

apt install unixodbc

2. Installieren Sie den MariaDB unixODBC-Datenbanktreiber. Obwohl Sie eine MySQL-Datenbank haben, wird der MariaDB unixODBC-Treiber aus Kompatibilitätsgründen verwendet.

apt install odbc-mariadb

3. Prüfen Sie den Speicherort der ODBC-Konfigurationsdateien odbcinst.ini und odbc.ini.

odbcinst -j

Das Ergebnis der Ausführung dieses Befehls sollte dem folgenden ähneln.

unixODBC 2.3.9
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
...

4. Um den ODBC-Treiber für die Überwachung einer MySQL-Datenbank zu konfigurieren, benötigen Sie den Treibernamen, der sich in der Datei odbcinst.ini befindet. Im folgenden Beispiel der Datei odbcinst.ini lautet der Treibername "MariaDB Unicode".

[MariaDB Unicode]
Driver=libmaodbc.so
Description=MariaDB Connector/ODBC(Unicode)
Threading=0
UsageCount=1

5. Kopieren Sie den folgenden Inhalt in die Datei odbc.ini (ersetzen Sie <password> durch das Passwort des Benutzers "zbx_monitor"). Diese Anleitung verwendet "127.0.0.1" (localhost) als MySQL-Serveradresse für die Überwachung eines MySQL-Servers, der auf demselben Rechner wie der ODBC-Treiber installiert ist. Beachten Sie den Datenquellennamen (DSN) "test", der benötigt wird, wenn Sie Zabbix Frontend konfigurieren.

[test]
Driver=MariaDB Unicode
Server=127.0.0.1
User=zbx_monitor
Password=<password>
Port=3306
Database=zabbix

Zabbix Frontend konfigurieren und Ihre Konfiguration testen

Um das Zabbix Frontend zu konfigurieren, folgen Sie den Anweisungen im Abschnitt Zabbix Frontend konfigurieren mit den folgenden Anpassungen:

  • Im Feld Vorlagen geben Sie die Vorlage "MySQL by ODBC" ein oder wählen Sie sie aus, die mit dem Host verknüpft wird.
  • Die Konfiguration von Schnittstellen ist nicht erforderlich.
  • Der Wert des Makros {$MYSQL.DSN} im Abschnitt Vererbte und Host-Makros der Host-Konfiguration des MySQL-Servers sollte auf den DSN-Namen aus der Datei odbc.ini gesetzt werden.

Nachdem Sie das Zabbix Frontend konfiguriert haben, können Sie gesammelte Metriken anzeigen, Problemalarme einrichten und Ihre Konfiguration testen.

Siehe auch

  • Erstellen eines Datenpunkts - wie Sie mit der Überwachung zusätzlicher Metriken beginnen.
  • Problem-Eskalationen - wie Sie mehrstufige Alarmszenarien erstellen (z. B. zuerst eine Nachricht an den Systemadministrator senden und dann, wenn ein Problem nach 45 Minuten nicht behoben ist, eine Nachricht an den Rechenzentrumsleiter senden).
  • ODBC-Überwachung - wie Sie ODBC auf anderen Linux-Distributionen einrichten und wie Sie mit ODBC mit der Überwachung zusätzlicher datenbankbezogener Metriken beginnen.
  • Vorlage MySQL by Zabbix Agent - zusätzliche Informationen zur Vorlage MySQL by Zabbix Agent.
  • Vorlage MySQL by Zabbix Agent 2 - zusätzliche Informationen zur Vorlage MySQL by Zabbix Agent 2.
  • Vorlage MySQL by ODBC - zusätzliche Informationen zur Vorlage MySQL by ODBC.