4 Monitorar MySQL amb l'agent 2 de Zabbix

Introducció

Aquesta pàgina us explica les passes necessàries per iniciar el monitoratge bàsic d'un servidor MySQL.

Per monitorar un servidor MySQL, hi ha diversos enfocaments: l'agent Zabbix, l'agent Zabbix 2 o l'estàndard d'Open Database Connectivity (ODBC). L'objectiu principal d'aquesta guia és monitorar un servidor MySQL amb l'agent Zabbix 2, que és l'enfocament recomanat a causa de la seva configuració perfecta en diverses configuracions. Tanmateix, aquesta pàgina també ofereix instruccions per als altres enfocaments, així que no dubteu a triar el que millor s'adapti als vostres requisits.

Per a qui és feta aquesta guia

Aquesta guia és dissenyada per a usuaris nous de Zabbix i conté el conjunt mínim de passes necessaris per habilitar el monitoratge bàsic d'un servidor MySQL. Si busqueu opcions de personalització més complexes o necessiteu una configuració més avançada, consulteu la secció Configuració del manual Zabbix.

Prerequisits

Abans de continuar amb aquesta guia, heu de descarregar i instal·lar el servidor Zabbix, la interfície Zabbix i l'agent Zabbix 2 segons les instruccions del vostre sistema operatiu.

Segons la vostra configuració, algunes de les passes d'aquesta guia poden diferir lleugerament. Aquesta guia es basa en la configuració següent:

  • Versió Zabbix: Zabbix 7.0 (instal·lat des de paquets)
  • Distribució del sistema operatiu: Ubuntu
  • Versió del sistema operatiu: 22.04 (Jammy)
  • Components Zabbix: Servidor, Frontend, Agent 2
  • Base de dades: MySQL
  • Servidor web: Apachee

Crear un usuari de MySQL

Per monitorar un servidor MySQL, Zabbix requereix accés a aquest i als seus processos. La vostra instal·lació de MySQL ja té un usuari amb el nivell d'accés necessari (l'usuari "zabbix" que es va crear en instal·lar Zabbix); tanmateix, aquest usuari té més privilegis dels necessaris per a un seguiment senzill (privilegis per a DROPAR bases de dades, ESBORRAR entrades de taules, etc.). Per tant, cal crear un usuari de MySQL amb el propòsit de només monitorar el servidor MySQL.

1. Connecteu-vos al client MySQL, creeu un usuari "zbx_monitor" (substituïu <mot de pas> per l'usuari "zbx_monitor" per un mot de pas de la vostra elecció), i GRANT els privilegis necessaris per a l'usuari:

mysql -u root -p
       # Entreu el mot de pas:
       
       mysql> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<mot de pas>';
       mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
       mysql> quit;

Un cop creat l'usuari, podeu passar a la següent passa.

Configurar la interfície de Zabbix

1. Inicieu sessió a la interfície de Zabbix.

2. Creeu un equip a la interfície web de Zabbix:

  • Al camp Nom d'equip, introduïu un nom d'equip (p. ex., "Servidor MySQL").
  • Al camp Plantilles, escriviu o trieu la plantilla "MySQL by Zabbix agent 2" que serà enllaçada a l'equip.
  • Al camp Grups d'equip, escriviu o trieu un grup d'equip (p. ex., "Bases de dades").
  • Al camp Interfícies, afegiu una interfície de tipus "Agent" i especifiqueu l'adreça IP del vostre servidor MySQL. Aquesta guia empra "127.0.0.1" (localhost) per monitorar un servidor MySQL que és instal·lat a la mateixa màquina que el servidor Zabbix i l'agent Zabbix 2.

  • A la pestanya Macros, canvieu a Macros heretades i equip, cerqueu les macros següents i feu clic a Canviar al costat del valor de la macro per actualitzar-la:
    • {$MYSQL.DSN} - estableix la font de dades del servidor MySQL (la cadena de connexió d'una sessió anomenada des del fitxer de configuració del connector MySQL Zabbix agent 2) . Aquesta guia empra la font de dades predeterminada "tcp://localhost:3306" per monitorar un servidor MySQL que és instal·lat a la mateixa màquina que el servidor Zabbix i l'agent Zabbix 2.
    • {$MYSQL.PASSWORD} - estableix el mot de pas de l'usuari anterior creat a MySQL "zbx_monitor".
    • {$MYSQL.USER} - estableix el nom de l'usuari anterior creat a MySQL "zbx_monitor".

3. Feu clic a Afegir per afegir l'equip. Aquest equip representarà el vostre servidor MySQL.

Veure les mètriques recollides

Felicitats! En aquest moment, Zabbix ja és monitorant el vostre servidor MySQL.

Per veure les mètriques recollides, aneu a la secció de menú Monitoratge → Equips i feu clic a Taulers al costat de l'equip.

Aquesta acció us durà al tauler de control de l'equip (configurat al nivell de plantilla) amb les mètriques més importants recollides del servidor MySQL.

Alternativament, des de la secció de menú Monitoratge → Equips, podeu fer clic a Darreres dades per veure totes les darreres mètriques recollides en una llista. Tingueu en compte que s'espera que l'element MySQL: valor calculat de innodb_log_file_size no tingui dades, ja que el valor es calcularà a partir de les dades de la darrera hora.

Configurant les alertes de problemes

Zabbix us pot notificar sobre un problema amb la vostra infraestructura mitjançant diversos mètodes. Aquesta guia ofereix passes bàsiques de configuració per enviar alertes per correu electrònic.

1. Aneu a Configuració de l'usuari → Perfil, canvieu a la pestanya Suport i afegiu el vostre correu electrònic.

2. Seguiu la guia per a Rebre una notificació de problema.

El proper cop, quan Zabbix detecti un problema, hauríeu de rebre una alerta per correu electrònic.

Provant la vostra configuració

Per provar la vostra configuració, podeu simular un problema real actualitzant la configuració de l'equip a la interfície Zabbix.

1. Obriu la configuració d'equip del vostre servidor MySQL a Zabbix.

2. Canvieu a la pestanya Macros i trieu Macros heretades i equips.

3. Feu clic a Canviar al costat, per exemple, del valor de macro configurat abans {$MYSQL.USER} i configureu un nom d'usuari MySQL diferent.

4. Feu clic a Actualitzar per actualitzar la configuració de l'equip.

5. En uns moments, Zabbix detectarà el problema "MySQL: El servei és caigut", perquè no es podrà connectar al servidor MySQL. El problema apareixerà a Monitoratge → Problemes.

Si les alertes són configurades, també rebreu la notificació del problema.

6. Torneu a canviar el valor de la macro al valor anterior per resoldre el problema i continuar monitorant el servidor MySQL.

Altres maneres de monitorar MySQL

En lloc de monitorar un servidor MySQL amb l'agent Zabbix 2, també podeu emprar l'agent Zabbix o l'estàndard dOpen Database Connectivity (ODBC). Tot i que es recomana emprar l'agent Zabbix 2, pot ser que hi hagi algunes configuracions que no admetin l'agent Zabbix 2 o que requereixin un enfocament personalitzat.

La diferència clau entre l'agent Zabbix i ODBC rau en el mètode de recollida de dades: l'agent Zabbix s'instal·la directament al servidor MySQL i recull dades mitjançant la seva funcionalitat integrada, mentre que ODBC es basa en un controlador ODBC per establir una connexió amb el servidor MySQL i recuperar dades mitjançant consultes SQL.

Tot i que moltes de les passes de configuració són similars al monitoratge d'un servidor MySQL amb l'agent Zabbix 2, hi ha algunes diferències significatives: cal configurar l'agent Zabbix o ODBC per poder monitorar un servidor MySQL. Les instruccions següents us guiaran per aquestes diferències.

Monitorar MySQL amb l'agent Zabbix

Per monitorar un servidor MySQL amb l'agent Zabbix, heu de baixar i instal·lar el servidor Zabbix, la interfície Zabbix i l'agent Zabbix segons les instruccions del vostre sistema operatiu.

Un cop hagueu instal·lat correctament els components Zabbix necessaris, heu de crear un usuari de MySQL tal com es descriu a la secció Creació d'un usuari de MySQL.

Després d'haver creat l'usuari MySQL, heu de configurar l'agent Zabbix per poder establir una connexió amb el servidor MySQL i monitorar-lo. Això inclou la configuració de diversos paràmetres d'usuari per executar comprovacions d'agent personalitzades, així com proporcionar a l'agent Zabbix les credencials necessàries per connectar-se al servidor MySQL com a usuari "zbx_monitor" creat abans.

Configurar l'agent Zabbix

1. Navegueu al directori de configuracions addicionals de l'agent Zabbix.

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

El directori de configuracions addicionals de l'agent Zabbix s'ha d'ubicar al mateix directori que el fitxer de configuració de l'agent Zabbix (zabbix_agentd.conf). Segons el vostre sistema operatiu i la instal·lació de Zabbix, aquest directori pot tenir una ubicació diferent de la que s'especifica en aquesta guia. Per a les ubicacions predeterminades, comproveu el paràmetre Include al fitxer de configuració de l'agent Zabbix.

En lloc de definir tots els paràmetres d'usuari necessaris per supervisar el servidor MySQL al fitxer de configuració de l'agent Zabbix, aquests paràmetres es definiran en un fitxer separat al directori de configuracions addicionals.

2. Creeu un fitxer template_db_mysql.conf al directori de configuracions addicionals de l'agent Zabbix.

vi template_db_mysql.conf

3. Copieu el contingut del fitxer template_db_mysql.conf (situat al repositori Zabbix ) al fitxer template_db_mysql.conf que heu creat i deseu-lo.

4. Reinicieu l'agent Zabbix per actualitzar la seva configuració.

systemctl restart zabbix-agent

Un cop hagueu configurat els paràmetres d'usuari de l'agent Zabbix, podeu passar a configurar les credencials que permetran que l'agent Zabbix accedeixi al servidor MySQL.

5. Navegueu al directori inicial de l'agent Zabbix (si no existeix al vostre sistema, heu de crear-lo; per defecte: /var/lib/zabbix).

 cd /var/lib/zabbix

6. Creeu un fitxer .my.cnf al directori inicial de l'agent Zabbix.

 vi .my.cnf

7. Copieu el contingut següent al fitxer .my.cnf (substituïu <password> per el mot de pas de l'usuari "zbx_monitor").

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

Configuració de la interfície de Zabbix i prova de la vostra configuració

Per configurar la interfície Zabbix, seguiu les instruccions de la secció Configuració de la interfície Zabbix amb els següents canvis:

  • Al camp Plantilles, escriviu o trieu la plantilla "MySQL by Zabbix agent" que serà enllaçada a l'equip.
  • No cal configurar Macros.

Un cop hagueu configurat la interfície Zabbix, podeu veure les mètriques recollides i configurar alertes de problemes.

Per provar la vostra configuració, seguiu les instruccions de la secció Provar la configuració configuració amb els canvis següents:

  • A la secció Macros heretades i d'equip de la configuració de l'equip del servidor MySQL, feu clic a Canviar al costat del valor de la macro {$MYSQL.PORT} i configureu un port diferent (p. ex., "6033").

Monitorar MySQL amb ODBC

Per monitorar un servidor MySQL amb ODBC, heu de baixar i instal·lar el servidor Zabbix i la interfície Zabbix.

Un cop hagueu instal·lat correctament els components Zabbix necessaris, heu de crear un usuari de MySQL tal com es descriu a la secció Creació d'un usuari de MySQL.

Després d'haver creat l'usuari de MySQL, heu de configurar ODBC. Això inclou instal·lar una de les implementacions de l'API ODBC de codi obert més utilitzades - unixODBC - i un controlador unixODBC, així com editar el fitxer de configuració del controlador ODBC.

Configurar ODBC

1. Instal·leu unixODBC. La forma suggerida d'instal·lar unixODBC és emprar els dipòsits de paquets predeterminats del sistema operatiu Linux.

 apt install unixodbc

2. Instal·leu el controlador de base de dades MariaDB unixODBC. Tot i que teniu una base de dades MySQL, el controlador MariaDB unixODBC s'empra per a problemes de compatibilitat.

 apt install odbc-mariadb

3. Comproveu la ubicació dels fitxers de configuració ODBC odbcinst.ini i odbc.ini.

 odbcinst -j

El resultat d'executar aquesta ordre hauria de ser similar al següent.

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

4. Per configurar el controlador ODBC per monitorar una base de dades MySQL, necessiteu el nom del controlador, que es troba al fitxer odbcinst.ini. A l'exemple de fitxer odbcinst.ini següent, el nom del controlador és "MariaDB Unicode".

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

5. Copieu el contingut següent al fitxer odbc.ini (substituïu <password> per el mot de pas de l'usuari "zbx_monitor"). Aquesta guia empra "127.0.0.1" (localhost) com a adreça del servidor MySQL per monitorar un servidor MySQL que és instal·lat a la mateixa màquina que el controlador ODBC. Tingueu en compte el nom de la font de dades (DSN) "prova", que serà necessari quan [configureu la interfície Zabbix] (#configuring-zabbix-frontend).

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

Configuració de la interfície de Zabbix i prova de la configuració

Per configurar la interfície Zabbix, seguiu les instruccions de la secció Configuració de la interfície Zabbix amb els següents canvis:

  • Al camp Plantilles, escriviu o trieu la plantilla "MySQL per ODBC" que serà enllaçada a l'equip.
  • No cal configurar Interfícies.
  • El valor de la macro {$MYSQL.DSN} A la secció Macros heretades i d'equip de la configuració de l'equip del servidor MySQL s'ha d'establir amb el nom DSN del fitxer odbc.ini.

Un cop hagueu configurat la interfície de Zabbix, podeu veure les mètriques recopilades, configurar alertes de problemes i provar la vostra configuració.

Vegeu també

  • Creació d'un element - com començar a supervisar mètriques addicionals.
  • Escalacions de problemes - com crear escenaris d'alerta de diversos passos (p. ex., primer envieu el missatge a l'administrador del sistema i després, si un problema no es resol en 45 minuts, envieu el missatge al gestor del centre de dades).
  • Supervisió ODBC: com configurar ODBC en altres distribucions de Linux i com començar a supervisar mètriques addicionals relacionades amb la base de dades amb ODBC.
  • Plantilla MySQL by Zabbix agent - informació addicional sobre la plantilla MySQL by Zabbix agent.
  • Plantilla MySQL by Zabbix agent 2 - informació addicional sobre l'MySQL by Zabbix agent 2 plantilla.
  • Plantilla MySQL per ODBC - informació addicional sobre la plantilla MySQL per ODBC.