Se encuentra viendo la documentación de la versión en desarrollo, puede estar incompleta.
Únase a nuestro proyecto de traducción y ayude a traducir la documentación de Zabbix a su lengua materna.

4 Monitorear MySQL con el agente 2 Zabbix

Introducción

Esta página lo guía a través de los pasos necesarios para iniciar el monitoreo básico de un servidor MySQL.

Para monitorear un servidor MySQL, existen varios enfoques: el agente Zabbix, el agente 2 Zabbix o el estándar Open Database Connectivity (ODBC). El objetivo principal de esta guía es monitorear un servidor MySQL con el agente Zabbix 2, que es el enfoque recomendado debido a su configuración perfecta en varias configuraciones. Sin embargo, esta página también ofrece instrucciones para otros enfoques, así que siéntase libre de elegir el que mejor se adapte a sus necesidades.

Para quién es esta guía

Esta guía está diseñada para nuevos usuarios de Zabbix y contiene el conjunto mínimo de pasos necesarios para permitir el monitoreo básico de un servidor MySQL. Si busca opciones de personalización profundas o necesita una configuración más avanzada, consulte la sección Configuración del manual de Zabbix.

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.0 PRE-RELEASE (installed from packages)
  • OS distribution: Ubuntu
  • OS version: 22.04 (Jammy)
  • Zabbix components: Server, Frontend, Agent 2
  • Database: MySQL
  • Web server: Apache

Crear usuario MySQL

Para monitorear un servidor MySQL, Zabbix requiere acceso a él y a sus procesos. Su instalación de MySQL ya tiene un usuario con el nivel de acceso requerido (el usuario "zabbix" que se creó al instalar Zabbix), sin embargo, este usuario tiene más privilegios de los necesarios para un monitoreo simple (privilegios para BORRAR bases de datos, ELIMINAR entradas de tablas, etc.). Por lo tanto, es necesario crear un usuario de MySQL con el propósito de sólo monitorear el servidor MySQL.

1. Conéctese al cliente MySQL, cree un usuario "zbx_monitor" (reemplace <contraseña> para el usuario "zbx_monitor" con una contraseña de su elección), y CONCEDA los privilegios necesarios al usuario:

mysql -u root -p
       # Introducir la contraseña:
       
       mysql> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
       mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
       mysql> quit;

Una vez creado el usuario, puede pasar al siguiente paso.

Configurar la interfaz de Zabbix

1. Inicie sesión en la interfaz de Zabbix.

2. Crear un equipo en la interfaz web de Zabbix:

  • En el campo Nombre de equipo, ingrese un nombre de equipo (por ejemplo, "servidor MySQL").
  • En el campo Plantillas, escriba o seleccione la plantilla "MySQL by Zabbix agent 2" que será vinculada al equipo.
  • En el campo Grupos de equipos, escriba o seleccione un grupo de equipos (por ejemplo, "Bases de datos").
  • En el campo Interfaces, agregue una interfaz de tipo "Agente" y especifique la dirección IP de su servidor MySQL. Esta guía utiliza "127.0.0.1" (localhost) para monitorear un servidor MySQL que está instalado en la misma máquina que el servidor Zabbix y el agente Zabbix 2.

  • En la pestaña Macros, cambie a Macros heredadas y de equipo, busque las siguientes macros y haga clic en Cambiar junto al valor de la macro para actualizarlo:
    • {$MYSQL.DSN} - establece la fuente de datos del servidor MySQL (la cadena de conexión de una sesión nombrada desde el archivo de configuración del complemento MySQL Zabbix Agent 2) . Esta guía utiliza la fuente de datos predeterminada "tcp://localhost:3306" para monitorear un servidor MySQL que está instalado en la misma máquina que el servidor Zabbix y el agente Zabbix 2.
    • {$MYSQL.PASSWORD} - establece la contraseña del usuario MySQL creado "zbx_monitor" previamente.
    • {$MYSQL.USER} - establece el nombre del usuario de MySQL creado previamente "zbx_monitor".

3. Haga clic en Agregar para agregar el equipo. Este equipo representará su servidor MySQL.

Ver métricas recopiladas

¡Felicidades! En este punto, Zabbix ya está monitoreando su servidor MySQL.

Para ver las métricas recopiladas, navegue hasta la sección del menú Monitoreo → Equipos y haga clic en Tableros junto al equipo.

Esta acción lo llevará al tablero del equipo (configurado en el nivel de plantilla) con las métricas más importantes recopiladas del servidor MySQL.

Alternativamente, desde la sección del menú Monitoreo → Equipos, puede hacer clic en Últimos datos para ver todas las métricas recopiladas más recientes en una lista. Tenga en cuenta que se espera que el elemento MySQL: Valor calculado de innodb_log_file_size no tenga datos, ya que el valor se calculará a partir de los datos de la última hora.

Configurar alertas de problemas

Zabbix puede notificarle sobre un problema con su infraestructura utilizando una variedad de métodos. Esta guía proporciona pasos de configuración básicos para enviar alertas por correo electrónico.

1. Navegue a Configuración de usuario → Perfil, cambie a la pestaña Medios y agregue su correo electrónico.

2. Siga la guía para Recibir una notificación de problema.

La próxima vez, cuando Zabbix detecte un problema, debería recibir una alerta por correo electrónico.

Pruebe su configuración

Para probar su configuración, podemos simular un problema real actualizando la configuración del equipo en la interfaz de Zabbix.

1. Abra la configuración del equipo de su servidor MySQL en Zabbix.

2. Cambie a la pestaña Macros y seleccione Macros heredadas y de equipo.

3. Haga clic en Cambiar junto a, por ejemplo, el valor de la macro previamente configurado {$MYSQL.USER} y establezca un nombre de usuario MySQL diferente.

4. Haga clic en Actualizar para actualizar la configuración del equipo.

5. En unos momentos, Zabbix detectará el problema "MySQL: Servicio caído", porque no podrá conectarse al servidor MySQL. El problema aparecerá en Monitoreo → Problemas.

Si las alertas están configuradas, también recibirá la notificación del problema.

6. Cambie el valor de la macro a su valor anterior para resolver el problema y continuar monitoreando el servidor MySQL.

Otros enfoques para monitorear MySQL

En lugar de monitorear un servidor MySQL con el agente 2 Zabbix, también puede usar el agente Zabbix o el estándar Open Database Connectivity (ODBC). Si bien se recomienda utilizar el Agente 2 Zabbix, es posible que haya algunas configuraciones que no admitan Zabbix Agent 2 o requieran un enfoque personalizado.

La diferencia clave entre el agente Zabbix y ODBC radica en el método de recopilación de datos: el agente Zabbix se instala directamente en el servidor MySQL y recopila datos utilizando su funcionalidad incorporada. mientras que ODBC se basa en un controlador ODBC para establecer una conexión con el servidor MySQL y recuperar datos mediante consultas SQL.

Aunque muchos de los pasos de configuración son similares a monitorear un servidor MySQL con el agente Zabbix 2, existen algunas diferencias significativas: es necesario configurar el agente Zabbix u ODBC para poder monitorear un servidor MySQL. Las siguientes instrucciones le guiarán a través de estas diferencias.

Monitorear MySQL con el agente Zabbix

Para monitorear un servidor MySQL con el agente Zabbix, necesita descargar e instalar el servidor Zabbix, la interfaz Zabbix y el agente Zabbix de acuerdo con las instrucciones de su sistema operativo.

Una vez que haya instalado correctamente los componentes Zabbix necesarios, deberá crear un usuario MySQL como se describe en la sección Crear usuario MySQL.

Una vez que haya creado el usuario MySQL, debe configurar el agente Zabbix para poder establecer una conexión con el servidor MySQL y monitorearlo. Esto incluye la configuración de múltiples parámetros de usuario para ejecutar comprobaciones personalizadas del agente, además de proporcionar al agente Zabbix las credenciales necesarias para conectarse al servidor MySQL como usuario previamente creado "zbx_monitor".

Configuring 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.

5. Navegue hasta el directorio de inicio del agente Zabbix (si no existe en su sistema, debe crearlo; predeterminado: /var/lib/zabbix).

cd /var/lib/zabbix

6. Cree un archivo .my.cnf en el directorio de inicio del agente Zabbix.

vi .mi.cnf

7. Copie el siguiente contenido al archivo .my.cnf (reemplace <contraseña> con la contraseña del usuario "zbx_monitor").

[client]
       user='zbx_monitor'
       password='<contraseña>'

Configure la interfaz de Zabbix y pruebe su configuración

Para configurar la interfaz de Zabbix, siga las instrucciones en la sección Configurar la interfaz de Zabbix con los siguientes ajustes:

  • En el campo Plantillas, escriba o seleccione la plantilla "MySQL by Zabbix agent" que será vinculada al equipo.
  • No es necesario configurar Macros.

Una vez que haya configurado la interfaz de Zabbix, puede ver las métricas recopiladas y configurar alertas de problemas.

Para probar su configuración, siga las instrucciones en la sección Pruebe su configuración con los siguientes ajustes:

  • En la sección Macros heredadas y de equipo de la configuración del equipo del servidor MySQL, haga clic en Cambiar junto al valor de la macro {$MYSQL.PORT} y establezca un puerto diferente (por ejemplo, "6033").

Monitorear MySQL con ODBC

Para monitorear un servidor MySQL con ODBC, necesita descargar e instalar el servidor Zabbix y la interfaz Zabbix.

Una vez que haya instalado correctamente los componentes Zabbix necesarios, deberá crear un usuario MySQL como se describe en la sección Crear usuario MySQL.

Después de haber creado el usuario MySQL, necesita configurar ODBC. Esto incluye la instalación de una de las implementaciones de API ODBC de código abierto más utilizadas: unixODBC y un controlador unixODBC, así como la edición del archivo de configuración del controlador ODBC.

Configurar ODBC

1. Instale unixODBC. La forma sugerida de instalar unixODBC es utilizar los repositorios de paquetes predeterminados del sistema operativo Linux.

apt install unixodbc

2. Instale el controlador de base de datos MariaDB unixODBC. Aunque tenga una base de datos MySQL, el controlador MariaDB unixODBC se utiliza por problemas de compatibilidad.

apt install odbc-mariadb

3. Verifique la ubicación de los archivos de configuración ODBC odbcinst.ini y odbc.ini.

odbcinst -j

El resultado de ejecutar este comando debería ser similar al siguiente.

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

4. Para configurar el controlador ODBC para monitorear una base de datos MySQL, necesita el nombre del controlador, que se encuentra en el archivo odbcinst.ini. En el siguiente ejemplo de archivo odbcinst.ini, el nombre del controlador es "MariaDB Unicode".

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

5. Copie el siguiente contenido al archivo odbc.ini (reemplace <contraseña> con la contraseña del usuario "zbx_monitor"). Esta guía utiliza "127.0.0.1" (localhost) como dirección del servidor MySQL para monitorear un servidor MySQL que está instalado en la misma máquina que el controlador ODBC. Tenga en cuenta la "prueba" del nombre de la fuente de datos (DSN), que será necesaria cuando [configure la interfaz de Zabbix] (#configure-zabbix-frontend).

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

Configure la interfaz de Zabbix y pruebe su configuración

Para configurar la interfaz de Zabbix, siga las instrucciones en la sección Configurar la interfaz de Zabbix con los siguientes ajustes:

  • En el campo Plantillas, escriba o seleccione la plantilla "MySQL por ODBC" que será vinculada al equipo.
  • No es necesario configurar Interfaces.
  • El valor de la macro {$MYSQL.DSN} en la sección Macros heredadas y de equipo de la configuración del equipo del servidor MySQL debe establecerse en el nombre DSN del archivo odbc.ini.

Una vez que haya configurado la interfaz de Zabbix, puede ver métricas recopiladas, configurar alertas de problemas y probar su configuración.

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 Zabbix agent 2 template.