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.

Vereisten

Voordat je verder gaat met deze handleiding, moet je de Zabbix-server, Zabbix-frontend en Zabbix-agent 2 downloaden en installeren volgens de instructies voor jouw besturingssysteem.

Afhankelijk van je installatie kunnen sommige stappen in deze handleiding iets verschillen. Deze handleiding is gebaseerd op de volgende configuratie:

  • Zabbix-versie: Zabbix 6.4 (geïnstalleerd via pakketten)
  • Besturingssysteem distributie: Ubuntu
  • Besturingssysteem versie: 22.04 (Jammy)
  • Zabbix-componenten: Server, Frontend, Agent 2
  • Database: MySQL
  • Webserver: 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".

Configureer Zabbix-agent

  1. Ga naar de directory voor aanvullende configuraties van de Zabbix-agent.

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

De directory voor aanvullende configuraties van de Zabbix-agent moet zich in dezelfde directory bevinden als je configuratiebestand van de Zabbix-agent (zabbix_agentd.conf). Afhankelijk van je besturingssysteem en Zabbix-installatie kan deze directory een andere locatie hebben dan in deze handleiding is aangegeven. Voor de standaardlocaties kun je de Include parameter in het configuratiebestand van de Zabbix-agent controleren.

In plaats van alle benodigde user parameters voor het monitoren van de MySQL-server in het configuratiebestand van de Zabbix-agent te definiëren, zullen deze parameters worden gedefinieerd in een apart bestand in de aanvullende configuratiedirectory.

  1. Maak een bestand template_db_mysql.conf aan in de aanvullende configuratiedirectory van de Zabbix-agent.

    vi template_db_mysql.conf
  2. Kopieer de inhoud van het template_db_mysql.conf bestand (te vinden in de Zabbix-repository) naar het door jou aangemaakte template_db_mysql.conf bestand en sla het op.

  3. Herstart de Zabbix-agent om de configuratie bij te werken.

    systemctl restart zabbix-agent

Zodra je de Zabbix-agent user parameters hebt geconfigureerd, kun je doorgaan met het configureren van de referenties die de Zabbix-agent toegang zullen geven tot de 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.

Zie ook

  • Een item maken - hoe te beginnen met het monitoren van aanvullende metrieken.
  • Probleemescalaties - hoe u meertraps waarschuwingsscenario's kunt maken (bijv. eerst een bericht sturen naar de systeembeheerder, en als een probleem niet binnen 45 minuten is opgelost, een bericht sturen naar de datacenterbeheerder).
  • ODBC-monitoring - hoe u ODBC kunt instellen op andere Linux-distributies en hoe u aanvullende databasegerelateerde metrieken kunt monitoren met ODBC.
  • Sjabloon MySQL via Zabbix-agent - aanvullende informatie over het sjabloon MySQL via Zabbix-agent.
  • Sjabloon MySQL via Zabbix-agent 2 - aanvullende informatie over het sjabloon MySQL via Zabbix-agent 2.
  • Sjabloon MySQL via ODBC - aanvullende informatie over het sjabloon MySQL via ODBC.