[comment]: # aside:5

[comment]: # ({13a65fe6-b4128477})
# MySQL mit Zabbix Agent 2 überwachen

[comment]: # ({/13a65fe6-b4128477})

[comment]: # ({ad3dab41-2185307b})
#### 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](#other-approaches-to-monitor-mysql), sodass Sie denjenigen auswählen können, der Ihren Anforderungen am besten entspricht.

[comment]: # ({/ad3dab41-2185307b})

[comment]: # ({0cf7feb5-831aae47})
**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](/manual/config) im Zabbix-Handbuch.

[comment]: # ({/0cf7feb5-831aae47})

[comment]: # ({519621df-2fd1df9d})
**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](https://www.zabbix.com/download).

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

[comment]: # ({/519621df-2fd1df9d})

[comment]: # ({8ae78277-ae0ef261})
#### 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](https://dev.mysql.com/doc/refman/8.0/en/grant.html):

    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.

[comment]: # ({/8ae78277-ae0ef261})

[comment]: # ({7d9d17aa-e6607c21})
#### Zabbix Frontend konfigurieren

1\. Melden Sie sich im Zabbix Frontend an.

2\. [Erstellen Sie einen Host](/manual/config/hosts/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](/manual/config/templates/linking) 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.

![](../../../assets/en/manual/guides/mysql_host.png){width="600"}

-   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](/manual/appendix/config/zabbix_agent2_plugins/mysql_plugin#parameters) 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](#create-mysql-user) "zbx_monitor" fest.
    -   {$MYSQL.USER} - legen Sie den Namen des zuvor [erstellten MySQL-Benutzers](#create-mysql-user) "zbx_monitor" fest.

![](../../../assets/en/manual/guides/mysql_macros.png){width="600"}

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

[comment]: # ({/7d9d17aa-e6607c21})

[comment]: # ({bdcc4c70-339fa505})
#### 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*](/manual/web_interface/frontend_sections/monitoring/hosts) und klicken Sie neben dem Host auf *Dashboards*.

![](../../../assets/en/manual/guides/mysql_hosts.png){width="600"}

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

![](../../../assets/en/manual/guides/mysql_dashboard.png){width="600"}

Alternativ können Sie im Menübereich [*Monitoring → Hosts*](/manual/web_interface/frontend_sections/monitoring/hosts) auf [*Latest data*](/manual/web_interface/frontend_sections/monitoring/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.

![](../../../assets/en/manual/guides/mysql_latestdata.png){width="600"}

[comment]: # ({/bdcc4c70-339fa505})

[comment]: # ({eca01285-91c440fc})
#### 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*](/manual/web_interface/user_profile), wechseln Sie zur Registerkarte *Medien* und [fügen Sie Ihre E-Mail-Adresse hinzu](/manual/quickstart/basic_config/login#adding-user).

![](../../../assets/en/manual/quickstart/new_media.png){width="600"}

2\. Folgen Sie der Anleitung zum [Empfangen einer Problembenachrichtigung](/manual/quickstart/basic_config/notification).

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

[comment]: # ({/eca01285-91c440fc})

[comment]: # ({77c86049-3e5fc0d5})
#### 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](#configure-zabbix-frontend) {$MYSQL.USER}-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*](/manual/web_interface/frontend_sections/monitoring/problems) angezeigt.

![](../../../assets/en/manual/guides/mysql_problem.png){width="600"}

Wenn Benachrichtigungen [konfiguriert](#set-up-problem-alerts) 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.

[comment]: # ({/77c86049-3e5fc0d5})

[comment]: # ({599a98b0-69f193e9})
#### 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**.

[comment]: # ({/599a98b0-69f193e9})

[comment]: # ({c3f2cc9e-c7da6279})
##### 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](https://www.zabbix.com/download).

Nachdem Sie die erforderlichen Zabbix-Komponenten erfolgreich installiert haben, müssen Sie einen MySQL-Benutzer erstellen, wie im Abschnitt [*MySQL-Benutzer erstellen*](#create-mysql-user) 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](/manual/config/items/userparameters) 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](#create-mysql-user) Benutzer "zbx_monitor" herzustellen.

[comment]: # ({/c3f2cc9e-c7da6279})

[comment]: # ({71f0c028-81cd968b})
**Zabbix Agent konfigurieren**

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

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

::: noteimportant
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`](/manual/appendix/config/zabbix_agentd#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*](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent/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.

[comment]: # ({/71f0c028-81cd968b})

[comment]: # ({49d8d7e7-98d0d0b4})
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>'

[comment]: # ({/49d8d7e7-98d0d0b4})

[comment]: # ({e1d7b01f-3d796e6b})
**Zabbix Frontend konfigurieren und Ihre Konfiguration testen**

Um das Zabbix Frontend zu konfigurieren, folgen Sie den Anweisungen im Abschnitt [*Zabbix Frontend konfigurieren*](#configure-zabbix-frontend) 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](/manual/config/templates/linking) wird.
-   Die Konfiguration von *Makros* ist nicht erforderlich.

Nachdem Sie das Zabbix Frontend konfiguriert haben, können Sie [gesammelte Metriken anzeigen](#view-collected-metrics) und [Problemalarme einrichten](#set-up-problem-alerts).

Um Ihre Konfiguration zu testen, folgen Sie den Anweisungen im Abschnitt [*Ihre Konfiguration testen*](#test-your-configuration) 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").

![](../../../assets/en/manual/guides/mysql_port.png){width="600"}

[comment]: # ({/e1d7b01f-3d796e6b})

[comment]: # ({b2aad39e-876f1a94})
##### MySQL mit ODBC überwachen

Um einen MySQL-Server mit ODBC zu überwachen, müssen Sie [Zabbix Server und Zabbix Frontend herunterladen und installieren](https://www.zabbix.com/download).

Nachdem Sie die erforderlichen Zabbix-Komponenten erfolgreich installiert haben, müssen Sie einen MySQL-Benutzer erstellen, wie im Abschnitt [*MySQL-Benutzer erstellen*](#create-mysql-user) 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](https://www.unixodbc.org/) - sowie eines unixODBC-Treibers und außerdem das Bearbeiten der Konfigurationsdatei des ODBC-Treibers.

[comment]: # ({/b2aad39e-876f1a94})

[comment]: # ({7530ff59-445fc52a})
**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](#configure-zabbix-frontend).

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

[comment]: # ({/7530ff59-445fc52a})

[comment]: # ({f773e20d-062f32d6})
**Zabbix Frontend konfigurieren und Ihre Konfiguration testen**

Um das Zabbix Frontend zu konfigurieren, folgen Sie den Anweisungen im Abschnitt [*Zabbix Frontend konfigurieren*](#configure-zabbix-frontend) 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](/manual/config/templates/linking) 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](#view-collected-metrics), [Problemalarme einrichten](#set-up-problem-alerts) und [Ihre Konfiguration testen](#test-your-configuration).

[comment]: # ({/f773e20d-062f32d6})

[comment]: # ({c2903286-123e0265})
#### Siehe auch

-   [Erstellen eines Datenpunkts](/manual/config/items/item) - wie Sie mit der Überwachung zusätzlicher Metriken beginnen.
-   [Problem-Eskalationen](/manual/config/notifications/action/escalations) - 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](/manual/config/items/itemtypes/odbc_checks) - 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*](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent) - zusätzliche Informationen zur Vorlage *MySQL by Zabbix Agent*.
-   Vorlage [*MySQL by Zabbix Agent 2*](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent2) - zusätzliche Informationen zur Vorlage *MySQL by Zabbix Agent 2*.
-   Vorlage [*MySQL by ODBC*](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_odbc) - zusätzliche Informationen zur Vorlage *MySQL by ODBC*.

[comment]: # ({/c2903286-123e0265})
