This is a translation of the original English documentation page. Help us make it better.

4 Monitor MySQL met Zabbix agent 2

Inleiding

Deze pagina leidt je door de stappen die nodig zijn om basismonitoring van een MySQL-server te starten.

Om een MySQL-server te monitoren, zijn er verschillende benaderingen: Zabbix-agent, Zabbix-agent 2 of de Open Database Connectivity (ODBC) standaard. De primaire focus van deze handleiding ligt op het monitoren van een MySQL-server met Zabbix-agent 2, wat de aanbevolen benadering is vanwege de naadloze configuratie in verschillende opstellingen. Deze pagina biedt echter ook instructies voor de andere benaderingen, dus kies gerust degene die het beste bij jouw eisen past.

Voor wie deze handleiding is bedoeld

Deze handleiding is ontworpen voor nieuwe Zabbix-gebruikers en bevat de minimale stappen die nodig zijn om basismonitoring van een MySQL-server in te schakelen. Als je op zoek bent naar diepere aanpassingsopties of meer geavanceerde configuratie nodig hebt, raadpleeg dan het Configuratie gedeelte van de Zabbix-handleiding.

Prerequisites

Before proceeding with this guide, you need to download and install Zabbix server, Zabbix frontend and Zabbix agent 2 according to the instructions for your OS.

Based on your setup, some of the steps in this guide may slightly differ. This guide is based on the following setup:

  • Zabbix version: Zabbix 7.2 PRE-RELEASE (installed from packages)
  • OS distribution: Ubuntu
  • OS version: 22.04 (Jammy)
  • Zabbix components: Server, Frontend, Agent 2
  • Database: MySQL
  • Web server: Apache

MySQL-gebruiker aanmaken

Om een MySQL-server te monitoren, heeft Zabbix toegang nodig tot de server en zijn processen. Je MySQL-installatie heeft al een gebruiker met het vereiste toegangsniveau (de gebruiker "zabbix" die is aangemaakt bij het installeren van Zabbix), echter, deze gebruiker heeft meer privileges dan nodig zijn voor eenvoudige monitoring (privileges om databases te VERWIJDEREN, records uit tabellen te VERWIJDEREN, etc.). Daarom moet er een MySQL-gebruiker worden aangemaakt met als doel alleen de MySQL-server te monitoren.

  1. Verbind met de MySQL-client, maak een "zbx_monitor" gebruiker aan (vervang <wachtwoord> voor de "zbx_monitor" gebruiker met een wachtwoord naar keuze), en GRANT de benodigde privileges aan de gebruiker:

    mysql -u root -p
           # Voer wachtwoord in:
    
           mysql> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<wachtwoord>';
           mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
           mysql> quit;

Zodra de gebruiker is aangemaakt, kun je doorgaan naar de volgende stap.

Zabbix frontend configureren

  1. Log in op de Zabbix-frontend.

  2. Maak een host aan in de Zabbix-webinterface:

    • Voer in het veld Hostnaam een hostnaam in (bijv. "MySQL-server").
    • Typ in het veld Sjablonen of selecteer het sjabloon "MySQL door Zabbix-agent 2" dat aan de host wordt gekoppeld.
    • Typ in het veld Hostgroepen of selecteer een hostgroep (bijv. "Databases").
    • In het veld Interfaces voeg je een interface van het type "Agent" toe en specificeer je het IP-adres van je MySQL-server. Deze handleiding gebruikt "127.0.0.1" (localhost) om een MySQL-server te monitoren die is geïnstalleerd op dezelfde machine als de Zabbix-server en Zabbix-agent 2.

    Afbeelding

    • Schakel in het tabblad Macro's over naar Geërfde en hostmacro's, zoek de volgende macro's en klik op Wijzigen naast de macrowaarde om deze bij te werken:
      • {$MYSQL.DSN} - stel de gegevensbron van de MySQL-server in (de verbindingsreeks van een genoemde sessie uit het configuratiebestand van de MySQL Zabbix-agent 2-plugin). Deze handleiding gebruikt de standaard gegevensbron "tcp://localhost:3306" om een MySQL-server te monitoren die is geïnstalleerd op dezelfde machine als de Zabbix-server en Zabbix-agent 2.
      • {$MYSQL.PASSWORD} - stel het wachtwoord in van de eerder aangemaakte MySQL-gebruiker "zbx_monitor".
      • {$MYSQL.USER} - stel de naam in van de eerder aangemaakte MySQL-gebruiker "zbx_monitor".

    Afbeelding

  3. Klik op Toevoegen om de host toe te voegen. Deze host zal je MySQL-server vertegenwoordigen.

Bekijk verzamelde metrieken

Gefeliciteerd! Op dit moment bewaakt Zabbix al je MySQL-server.

Om verzamelde metrieken te bekijken, navigeer je naar de Monitoring → Hosts menu sectie en klik je op Dashboards naast de host.

Afbeelding

Deze actie brengt je naar het host-dashboard (geconfigureerd op het sjabloonniveau) met de belangrijkste metrieken die zijn verzameld van de MySQL-server.

Afbeelding

Als alternatief kun je vanuit de Monitoring → Hosts menu sectie op Laatste gegevens klikken om alle recent verzamelde metrieken in een lijst te bekijken. Let op dat het item MySQL: Berekende waarde van innodb_log_file_size naar verwachting geen gegevens zal hebben, aangezien de waarde wordt berekend op basis van gegevens van het afgelopen uur.

Afbeelding

Is there anything else you would like to know or any other assistance I can provide regarding the Zabbix monitoring setup?

Stel probleemmeldingen in

Zabbix kan je op de hoogte stellen van problemen in je infrastructuur via verschillende methoden. Deze handleiding biedt basisconfiguratiestappen voor het verzenden van e-mailmeldingen.

  1. Ga naar Gebruikersinstellingen → Profiel, schakel over naar het tabblad Media en voeg je e-mailadres toe.

Afbeelding

  1. Volg de handleiding voor Het ontvangen van een probleemmelding.

De volgende keer dat Zabbix een probleem detecteert, ontvang je een melding via e-mail.

Test je configuratie

Om je configuratie te testen, kunnen we een echt probleem simuleren door de hostconfiguratie in de Zabbix-frontend bij te werken.

  1. Open de configuratie van je MySQL-serverhost in de Zabbix-frontend.

  2. Schakel over naar het tabblad Macros en selecteer Overgeërfde en host-macro's.

  3. Klik op Wijzigen naast bijvoorbeeld de eerder geconfigureerde {$MYSQL.USER} macrowaarde en stel een andere MySQL-gebruikersnaam in.

  4. Klik op Bijwerken om de hostconfiguratie bij te werken.

  5. Binnen enkele ogenblikken zal Zabbix het probleem "MySQL: Service is niet beschikbaar" detecteren, omdat het geen verbinding kan maken met de MySQL-server. Het probleem verschijnt in Monitoring → Problemen.

Afbeelding

Als meldingen geconfigureerd zijn, ontvang je ook een melding van het probleem.

  1. Zet de macrowaarde terug naar de vorige waarde om het probleem op te lossen en blijf de MySQL-server monitoren.

Andere methoden om MySQL te monitoren

In plaats van een MySQL-server te monitoren met Zabbix Agent 2, zou je ook Zabbix Agent of de Open Database Connectivity (ODBC) standaard kunnen gebruiken. Hoewel het gebruik van Zabbix Agent 2 wordt aanbevolen, zijn er mogelijk enkele configuraties die geen ondersteuning bieden voor Zabbix Agent 2 of die een aangepaste aanpak vereisen.

Het belangrijkste verschil tussen Zabbix Agent en ODBC ligt in de methode voor gegevensverzameling - Zabbix Agent wordt rechtstreeks op de MySQL-server geïnstalleerd en verzamelt gegevens met behulp van de ingebouwde functionaliteit, terwijl ODBC afhankelijk is van een ODBC-driver om een verbinding met de MySQL-server tot stand te brengen en gegevens op te halen met behulp van SQL-query's.

Hoewel veel van de configuratiestappen vergelijkbaar zijn met het monitoren van een MySQL-server met Zabbix Agent 2, zijn er enkele significante verschillen - je moet Zabbix Agent of ODBC configureren om een MySQL-server te kunnen monitoren. De volgende instructies lopen je door deze verschillen heen.

Monitor MySQL met Zabbix Agent

Om een MySQL-server te monitoren met Zabbix Agent, moet je Zabbix-server, Zabbix-frontend en Zabbix-agent downloaden en installeren volgens de instructies voor je besturingssysteem.

Nadat je de vereiste Zabbix-componenten succesvol hebt geïnstalleerd, moet je een MySQL-gebruiker aanmaken zoals beschreven in de sectie Create MySQL user.

Nadat je de MySQL-gebruiker hebt aangemaakt, moet je Zabbix Agent configureren om een verbinding met de MySQL-server tot stand te kunnen brengen en deze te kunnen monitoren. Dit omvat het configureren van meerdere user parameters voor het uitvoeren van aangepaste agentcontroles, en het verstrekken van de benodigde referenties aan Zabbix Agent om verbinding te maken met de MySQL-server als de eerder aangemaakte gebruiker "zbx_monitor".

Configure Zabbix agent

1. Navigate to the Zabbix agent additional configurations directory.

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

The Zabbix agent additional configurations directory should be located in the same directory as your Zabbix agent configuration file (zabbix_agentd.conf). Depending on your OS and Zabbix installation, this directory can have a different location than specified in this guide. For default locations, check the Include parameter in the Zabbix agent configuration file.

Instead of defining all of the necessary user parameters for monitoring the MySQL server in the Zabbix agent configuration file, these parameters will be defined in a separate file in the additional configurations directory.

2. Create a template_db_mysql.conf file in the Zabbix agent additional configurations directory.

vi template_db_mysql.conf

3. Copy the contents from the template_db_mysql.conf file (located in the Zabbix repository) to the template_db_mysql.conf file you created, and save.

4. Restart Zabbix agent to update its configuration.

systemctl restart zabbix-agent

Once you have configured Zabbix agent user parameters, you can move on to configure the credentials that will allow Zabbix agent to access the MySQL server.

  1. Ga naar de Zabbix agent home directory (als deze niet bestaat op je systeem, moet je deze aanmaken; standaard: /var/lib/zabbix).

    cd /var/lib/zabbix
  2. Maak een .my.cnf bestand aan in de Zabbix agent home directory.

    vi .my.cnf
  3. Kopieer de volgende inhoud naar het .my.cnf bestand (vervang <password> door het wachtwoord van de "zbx_monitor" gebruiker).

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

Configure Zabbix frontend en test je configuratie

Om de Zabbix frontend te configureren, volg de instructies in de Configure Zabbix frontend sectie met de volgende aanpassingen:

  • In het veld Templates, typ of selecteer het sjabloon "MySQL by Zabbix agent" dat aan de host zal worden gekoppeld via linking.
  • Het configureren van Macros is niet nodig.

Nadat je de Zabbix frontend hebt geconfigureerd, kun je verzamelde metingen bekijken en probleemmeldingen instellen.

Om je configuratie te testen, volg de instructies in de sectie Test your configuration met de volgende aanpassingen:

  • In het gedeelte Inherited and host macros van de configuratie van de MySQL-serverhost, klik je op Change naast de waarde van de macro {$MYSQL.PORT} en stel je een andere poort in (bijvoorbeeld "6033").

MySQL monitoren met ODBC

Om een MySQL-server te monitoren met ODBC, moet je de Zabbix-server en Zabbix-frontend downloaden en installeren.

Nadat je de vereiste Zabbix-componenten succesvol hebt geïnstalleerd, dien je een MySQL-gebruiker aan te maken zoals beschreven in de sectie MySQL-gebruiker aanmaken.

Nadat je de MySQL-gebruiker hebt aangemaakt, moet je ODBC instellen. Dit omvat het installeren van een van de meest gebruikte open source ODBC API-implementaties - unixODBC - en een unixODBC-stuurprogramma, evenals het bewerken van het configuratiebestand van het ODBC-stuurprogramma.

ODBC configureren

  1. Installeer unixODBC. De aanbevolen manier om unixODBC te installeren, is via de standaardpakketrepositories van het Linux-besturingssysteem.

    apt install unixodbc
  2. Installeer de MariaDB unixODBC-database driver. Hoewel je een MySQL-database hebt, wordt de MariaDB unixODBC-driver gebruikt vanwege compatibiliteitsproblemen.

    apt install odbc-mariadb
  3. Controleer de locatie van de ODBC-configuratiebestanden odbcinst.ini en odbc.ini.

    odbcinst -j

    Het resultaat van het uitvoeren van deze opdracht zou vergelijkbaar moeten zijn met het volgende.

    unixODBC 2.3.9
           DRIVERS............: /etc/odbcinst.ini
           SYSTEM DATA SOURCES: /etc/odbc.ini
           FILE DATA SOURCES..: /etc/ODBCDataSources
           ...
  4. Om de ODBC-driver te configureren voor het monitoren van een MySQL-database, heb je de naam van de driver nodig, die te vinden is in het bestand odbcinst.ini. In het volgende voorbeeld van het bestand odbcinst.ini is de naam van de driver "MariaDB Unicode".

    [MariaDB Unicode]
           Driver=libmaodbc.so
           Description=MariaDB Connector/ODBC(Unicode)
           Threading=0
           UsageCount=1
  5. Kopieer de volgende inhoud naar het bestand odbc.ini (vervang <password> door het wachtwoord van de gebruiker "zbx_monitor"). Deze handleiding gebruikt "127.0.0.1" (localhost) als het adres van de MySQL-server voor het monitoren van een MySQL-server die op dezelfde machine is geïnstalleerd als de ODBC-driver. Let op de gegevensbronnaam (DSN) "test", die nodig zal zijn bij het configureren van de Zabbix-frontend.

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

Configureer Zabbix-frontend en test je configuratie

Om de Zabbix-frontend te configureren, volg de instructies in de sectie Zabbix-frontend configureren met de volgende aanpassingen:

  • Typ of selecteer in het veld Templates de sjabloon "MySQL by ODBC" die zal worden gekoppeld aan de host.
  • Het configureren van Interfaces is niet vereist.
  • De waarde van de macro {$MYSQL.DSN} in de sectie Overgeërfde en host-macro's van de configuratie van de MySQL-serverhost moet worden ingesteld op de DSN-naam uit het bestand odbc.ini.

Nadat je de Zabbix-frontend hebt geconfigureerd, kun je verzamelde statistieken bekijken, probleemwaarschuwingen instellen en je configuratie testen.

See also

  • Creating an item - how to start monitoring additional metrics.
  • Problem escalations - how to create multi-step alert scenarios (e.g., first send message to the system administrator, then, if a problem is not resolved in 45 minutes, send message to the data center manager).
  • ODBC monitoring - how to set up ODBC on other Linux distributions, and how to start monitoring additional database-related metrics with ODBC.
  • Template MySQL by Zabbix agent - additional information about the MySQL by Zabbix agent template.
  • Template MySQL by Zabbix agent 2 - additional information about the MySQL by Zabbix agent 2 template.
  • Template MySQL by ODBC - additional information about the MySQL by ODBC template.