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

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

[comment]: # ({ad3dab41-2185307b})
#### Einführung

Diese Seite führt Sie durch die Schritte, die erforderlich sind, um die grundlegende Überwachung eines MySQL-Servers zu starten.

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 bietet jedoch auch Anleitungen für die [anderen Ansätze](#other-approaches-to-monitor-mysql), sodass Sie gerne den Ansatz wählen können, der Ihren Anforderungen am besten entspricht.

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

[comment]: # ({0cf7feb5-831aae47})
**Für wen diese Anleitung gedacht ist**

Diese Anleitung 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 umfassenden Anpassungsoptionen suchen oder eine erweiterte Konfiguration benötigen, lesen Sie den Abschnitt [Configuration](/manual/config) im Zabbix-Handbuch.

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

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

Bevor Sie mit dieser Anleitung fortfahren, müssen Sie Zabbix Server, Zabbix Frontend und Zabbix Agent 2 gemäß den Anweisungen für Ihr Betriebssystem [herunterladen und installieren](https://www.zabbix.com/download).

Abhängig von 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 der erforderlichen Zugriffsstufe (den Benutzer „zabbix“, der bei der Installation von Zabbix erstellt wurde),
dieser Benutzer hat jedoch mehr Berechtigungen als für eine einfache Überwachung notwendig sind (Berechtigungen zum DROP von Datenbanken, zum DELETE von Einträgen aus Tabellen usw.).
Daher muss ein MySQL-Benutzer erstellt werden, der *nur* zur Überwachung des MySQL-Servers dient.

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 [GRANT](https://dev.mysql.com/doc/refman/8.0/en/grant.html) Sie dem Benutzer die erforderlichen Berechtigungen:

    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, wechseln 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"}

Dadurch gelangen Sie zum Host-Dashboard (auf Vorlagenebene konfiguriert) mit den wichtigsten Metriken, die vom MySQL-Server erfasst wurden.

![](../../../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* voraussichtlich keine Daten vorhanden sind, da der Wert aus den Daten der letzten Stunde berechnet wird.

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

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

[comment]: # ({4cead10e-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/login#adding-user).

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

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

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

[comment]: # ({/4cead10e-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 Konfiguration Ihres MySQL-Server-Hosts in Zabbix.

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

3\. Klicken Sie neben dem zuvor [konfigurierten](#configure-zabbix-frontend) Makrowert {$MYSQL.USER} beispielsweise auf *Change* und setzen Sie einen anderen MySQL-Benutzernamen.

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

5\. In wenigen Augenblicken wird Zabbix das Problem „MySQL: Service is down“ erkennen, 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 eine 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 den Zabbix Agent oder den Standard Open Database Connectivity (ODBC) verwenden.
Obwohl die Verwendung von Zabbix Agent 2 empfohlen wird, gibt es möglicherweise Umgebungen, 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: Der 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 der Überwachung eines MySQL-Servers mit Zabbix Agent 2 ähneln, gibt es einige wesentliche Unterschiede: Sie müssen den 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 dem 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).

Sobald 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 den Zabbix Agent so konfigurieren, dass er eine Verbindung zum MySQL-Server herstellen und diesen überwachen kann.  
Dazu gehört die Konfiguration mehrerer [Benutzerparameter](/manual/config/items/userparameters) zur Ausführung benutzerdefinierter Agent-Prüfungen sowie die Bereitstellung der erforderlichen Zugangsdaten für den Zabbix Agent, damit er sich als zuvor [erstellter](#create-mysql-user) Benutzer „zbx_monitor“ mit dem MySQL-Server verbinden kann.

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

[comment]: # ({ec14664c-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.
Die Standardpfade 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?at=refs%2Fheads%2Frelease%2F7.4) (im Zabbix-Repository gespeichert) in die von Ihnen erstellte Datei *template_db_mysql.conf* und speichern Sie die Datei.

4\. Starten Sie den Zabbix Agent neu, um die 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]: # ({/ec14664c-81cd968b})

[comment]: # ({49d8d7e7-98d0d0b4})
5\. Navigieren Sie zum Home-Verzeichnis des Zabbix Agent (falls es auf Ihrem System nicht existiert, müssen Sie es erstellen; Standard: */var/lib/zabbix*).

    cd /var/lib/zabbix

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

    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.

Sobald Sie das Zabbix Frontend konfiguriert haben, können Sie [erfasste Metriken anzeigen](#view-collected-metrics) und [Problembenachrichtigungen 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 *Geerbte Makros und Host-Makros* der Host-Konfiguration des MySQL-Servers neben dem Makrowert {$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).

Sobald 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ören die Installation einer der am häufigsten verwendeten Open-Source-Implementierungen der ODBC-API – [unixODBC](https://www.unixodbc.org/) – und eines unixODBC-Treibers sowie die Bearbeitung der ODBC-Treiberkonfigurationsdatei.

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

[comment]: # ({f1ebeea4-445fc52a})
**ODBC konfigurieren**

1\. Installieren Sie unixODBC. Die empfohlene Methode zur Installation von unixODBC ist die Verwendung der Standard-Paket-Repositories 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 in etwa wie folgt aussehen.

    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 Adresse des MySQL-Servers, um einen MySQL-Server zu überwachen, der auf demselben Rechner wie der ODBC-Treiber installiert ist.
Beachten Sie den Namen der Datenquelle (DSN) "test", der benötigt wird, wenn Sie das [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]: # ({/f1ebeea4-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:

-   Geben Sie im Feld *Vorlagen* die Vorlage „MySQL by ODBC“ ein oder wählen Sie sie aus; sie wird mit dem Host [verknüpft](/manual/config/templates/linking).
-   Die Konfiguration von *Schnittstellen* ist nicht erforderlich.
-   Der Makrowert {$MYSQL.DSN} im Abschnitt *Geerbte Makros und Host-Makros* der Host-Konfiguration des MySQL-Servers sollte auf den DSN-Namen aus der Datei *odbc.ini* gesetzt werden.

Sobald Sie das Zabbix Frontend konfiguriert haben, können Sie [erfasste Metriken anzeigen](#view-collected-metrics), [Problembenachrichtigungen einrichten](#set-up-problem-alerts) und [Ihre Konfiguration testen](#test-your-configuration).

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

[comment]: # ({0ad07481-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 Leiter des Rechenzentrums senden).
-   [ODBC-Überwachung](/manual/config/items/itemtypes/odbc_checks) - wie Sie ODBC auf anderen Linux-Distributionen einrichten und wie Sie mit ODBC die Überwachung zusätzlicher datenbankbezogener Metriken beginnen.
-   Vorlage [*MySQL by Zabbix agent*](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent?at=refs%2Fheads%2Frelease%2F7.4) - 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?at=refs%2Fheads%2Frelease%2F7.4) - 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?at=refs%2Fheads%2Frelease%2F7.4) - zusätzliche Informationen zur Vorlage *MySQL by ODBC*.

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