Monitor MySQL con Zabbix agent 2
Introducción
Esta página le guía a través de los pasos necesarios para comenzar con la monitorización básica de un server MySQL.
Para monitorizar un server MySQL, existen varios enfoques: Zabbix agent, Zabbix agent 2 o el estándar Open Database Connectivity (ODBC). El enfoque principal de esta guía es la monitorización de un server MySQL con Zabbix agent 2, que es el enfoque recomendado debido a su configuración fluida en distintas implementaciones. Sin embargo, esta página también ofrece instrucciones para los otros enfoques, así que no dude en elegir el que mejor se adapte a sus requisitos.
Para quién está dirigida esta guía
Esta guía está diseñada para nuevos usuarios de Zabbix y contiene el conjunto mínimo de pasos necesarios para habilitar la supervisión básica de un server MySQL. Si busca opciones de personalización avanzadas o necesita una configuración más compleja, consulte la sección Configuration del manual de Zabbix.
Requisitos previos
Antes de continuar con esta guía, debe descargar e instalar Zabbix server, Zabbix frontend y Zabbix agent 2 según las instrucciones para su sistema operativo.
Según su entorno, algunos pasos de esta guía pueden diferir ligeramente. Esta guía se basa en un entorno que ejecuta Ubuntu.
Crear usuario de MySQL
Para supervisar 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 una supervisión simple (privilegios para DROP databases, DELETE entries from tables, etc.). Por lo tanto, es necesario crear un usuario de MySQL con el propósito de solo supervisar el servidor MySQL.
1. Conéctese al cliente de MySQL, cree un usuario "zbx_monitor" (reemplace <password> para el usuario "zbx_monitor" por una contraseña de su elección), y GRANT los privilegios necesarios al usuario:
mysql -u root -p
# Enter password:
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 frontend de Zabbix
1. Inicie sesión en el frontend de Zabbix.
2. Cree un host en la interfaz web de Zabbix:
- En el campo Host name, introduzca un nombre de host (por ejemplo, "MySQL server").
- En el campo Templates, escriba o seleccione el template "MySQL by Zabbix agent 2" que se vinculará al host.
- En el campo Host groups, escriba o seleccione un grupo de hosts (por ejemplo, "Databases").
- En el campo Interfaces, agregue una interfaz de tipo "Agent" y especifique la dirección IP de su servidor MySQL. Esta guía usa "127.0.0.1" (localhost) para supervisar un servidor MySQL que está instalado en la misma máquina que el server de Zabbix y Zabbix agent 2.

- En la pestaña Macros, cambie a Inherited and host macros, busque las siguientes macros y haga clic en Change junto al valor de la macro para actualizarlo:
- {$MYSQL.DSN} - establezca la fuente de datos del servidor MySQL (la cadena de conexión de una sesión con nombre del archivo de configuración del plugin MySQL de Zabbix agent 2). Esta guía usa la fuente de datos predeterminada "tcp://localhost:3306" para supervisar un servidor MySQL que está instalado en la misma máquina que el server de Zabbix y Zabbix agent 2.
- {$MYSQL.PASSWORD} - establezca la contraseña del usuario MySQL creado previamente "zbx_monitor".
- {$MYSQL.USER} - establezca el nombre del usuario MySQL creado previamente "zbx_monitor".

3. Haga clic en Add para agregar el host. Este host representará su servidor MySQL.
Ver métricas recopiladas
¡Enhorabuena! En este punto, Zabbix ya está supervisando su servidor MySQL.
Para ver las métricas recopiladas, vaya a la sección de menú Monitoring → Hosts y haga clic en Dashboards junto al host.

Esta acción le llevará al dashboard del host (configurado a nivel de template) con las métricas más importantes recopiladas del servidor MySQL.

Como alternativa, desde la sección de menú Monitoring → Hosts, puede hacer clic en Latest data para ver en una lista todas las métricas recopiladas más recientes. Tenga en cuenta que se espera que el item MySQL: Calculated value of 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 en su infraestructura mediante varios métodos. Esta guía proporciona pasos básicos de configuración para enviar alertas por correo electrónico.
1. Vaya a User settings → Profile, cambie a la pestaña Media y añada su correo electrónico.

2. Siga la guía para Receiving a problem notification.
La próxima vez que 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 host en el frontend de Zabbix.
1. Abra la configuración del host de su servidor MySQL en Zabbix.
2. Cambie a la pestaña Macros y seleccione Inherited and host macros.
3. Haga clic en Change junto al valor de la macro configurado previamente}, por ejemplo, y establezca un nombre de usuario de MySQL diferente.
4. Haga clic en Update para actualizar la configuración del host.
5. En unos momentos, Zabbix detectará el problema "MySQL: Service is down", porque no podrá conectarse al servidor MySQL. El problema aparecerá en Monitoring → Problems.

Si las alertas están configuradas, también recibirá la notificación del problema.
6. Cambie el valor de la macro de nuevo a su valor anterior para resolver el problema y continuar supervisando el servidor MySQL.
Otros enfoques para monitorizar MySQL
En lugar de monitorizar un server MySQL con Zabbix agent 2, también puede usar Zabbix agent o el estándar Open Database Connectivity (ODBC). Aunque se recomienda usar Zabbix agent 2, puede haber algunas configuraciones que no admitan Zabbix agent 2 o que requieran un enfoque personalizado.
La diferencia clave entre Zabbix agent y ODBC radica en el método de recopilación de datos: Zabbix agent se instala directamente en el server MySQL y recopila datos mediante su funcionalidad integrada, mientras que ODBC depende de un controlador ODBC para establecer una conexión con el server MySQL y recuperar datos mediante consultas SQL.
Aunque muchos de los pasos de configuración son similares a la monitorización de un server MySQL con Zabbix agent 2, existen algunas diferencias importantes: debe configurar Zabbix agent u ODBC para poder monitorizar un server MySQL. Las siguientes instrucciones le guiarán a través de estas diferencias.
Monitor MySQL con Zabbix agent
Para monitorizar un servidor MySQL con Zabbix agent, debe descargar e instalar Zabbix server, Zabbix frontend y Zabbix agent según las instrucciones para su sistema operativo.
Una vez que haya instalado correctamente los componentes de Zabbix necesarios, debe crear un usuario de MySQL como se describe en la sección Crear usuario de MySQL.
Después de haber creado el usuario de MySQL, debe configurar Zabbix agent para que pueda establecer una conexión con el servidor MySQL y monitorizarlo. Esto incluye configurar varios parámetros de usuario para ejecutar comprobaciones personalizadas de agent, así como proporcionar a Zabbix agent las credenciales necesarias para conectarse al servidor MySQL como el usuario "zbx_monitor" creado previamente.
Configurar Zabbix agent
1. Navegue al directorio de configuraciones adicionales de Zabbix agent.
cd /usr/local/etc/zabbix/zabbix_agentd.d
El directorio de configuraciones adicionales de Zabbix agent debe estar ubicado en el mismo directorio que su archivo de configuración de Zabbix agent (zabbix_agentd.conf).
Según su sistema operativo y la instalación de Zabbix, este directorio puede tener una ubicación diferente a la especificada en esta guía.
Para las ubicaciones predeterminadas, consulte el parámetro Include en el archivo de configuración de Zabbix agent.
En lugar de definir todos los parámetros de usuario necesarios para supervisar el servidor MySQL en el archivo de configuración de Zabbix agent, estos parámetros se definirán en un archivo separado en el directorio de configuraciones adicionales.
2. Cree un archivo template_db_mysql.conf en el directorio de configuraciones adicionales de Zabbix agent.
vi template_db_mysql.conf
3. Copie el contenido del archivo template_db_mysql.conf (ubicado en el repositorio de Zabbix) al archivo template_db_mysql.conf que creó y guarde los cambios.
4. Reinicie Zabbix agent para actualizar su configuración.
systemctl restart zabbix-agent
Una vez que haya configurado los parámetros de usuario de Zabbix agent, puede continuar con la configuración de las credenciales que permitirán a Zabbix agent acceder al servidor MySQL.
5. Navegue al directorio principal del agent de Zabbix (si no existe en su sistema, debe crearlo; valor predeterminado: /var/lib/zabbix).
cd /var/lib/zabbix
6. Cree un archivo .my.cnf en el directorio principal del agent de Zabbix.
vi .my.cnf
7. Copie el siguiente contenido en el archivo .my.cnf (reemplace <password> con la contraseña del usuario "zbx_monitor").
[client]
user='zbx_monitor'
password='<password>'
Configurar el frontend de Zabbix y probar su configuración
Para configurar el frontend de Zabbix, siga las instrucciones de la sección Configurar el frontend de Zabbix con los siguientes ajustes:
- En el campo Templates, escriba o seleccione el template "MySQL by Zabbix agent" que se vinculará al host.
- No es necesario configurar Macros.
Una vez que haya configurado el frontend de Zabbix, puede ver las métricas recopiladas y configurar alertas de problemas.
Para probar su configuración, siga las instrucciones de la sección Probar su configuración con los siguientes ajustes:
- En la sección Inherited and host macros de la configuración del host del servidor MySQL, haga clic en Change junto al valor de la macro {$MYSQL.PORT} y establezca un puerto diferente (por ejemplo, "6033").

Monitorizar MySQL con ODBC
Para monitorizar un server MySQL con ODBC, necesita descargar e instalar Zabbix server y Zabbix frontend.
Una vez que haya instalado correctamente los componentes de Zabbix necesarios, debe crear un usuario de MySQL como se describe en la sección Crear usuario de MySQL.
Después de haber creado el usuario de MySQL, debe configurar ODBC. Esto incluye instalar una de las implementaciones de API ODBC de código abierto más utilizadas: unixODBC - y un controlador unixODBC, así como editar el archivo de configuración del controlador ODBC.
Configurar ODBC
1. Instale unixODBC. La forma recomendada de instalar unixODBC es usar los repositorios de paquetes predeterminados del sistema operativo Linux.
apt install unixodbc
2. Instale el controlador de base de datos unixODBC de MariaDB. Aunque tenga una base de datos MySQL, se usa el controlador unixODBC de MariaDB por motivos de compatibilidad.
apt install odbc-mariadb
3. Compruebe la ubicación de los archivos de configuración de 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 supervisar 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 en el archivo odbc.ini (reemplace <password> por la contraseña del usuario "zbx_monitor"). Esta guía usa "127.0.0.1" (localhost) como dirección del server MySQL para supervisar un server MySQL instalado en la misma máquina que el controlador ODBC. Tenga en cuenta el nombre de la fuente de datos (DSN) "test", que será necesario cuando configure Zabbix frontend.
[test]
Driver=MariaDB Unicode
Server=127.0.0.1
User=zbx_monitor
Password=<password>
Port=3306
Database=zabbix
Configure Zabbix frontend y pruebe su configuración
Para configurar Zabbix frontend, siga las instrucciones de la sección Configure Zabbix frontend con los siguientes ajustes:
- En el campo Templates, escriba o seleccione el template "MySQL by ODBC" que se vinculará al host.
- No es necesario configurar Interfaces.
- El valor de la macro {$MYSQL.DSN} en la sección Inherited and host macros de la configuración del host del servidor MySQL debe establecerse en el nombre DSN del archivo odbc.ini.
Una vez que haya configurado Zabbix frontend, puede ver las métricas recopiladas, configurar alertas de problemas y probar su configuración.
Ver también
- Crear un item - cómo empezar a supervisar métricas adicionales.
- Escalaciones de problemas - cómo crear escenarios de alertas de varios pasos (por ejemplo, primero enviar un mensaje al administrador del sistema y luego, si un problema no se resuelve en 45 minutos, enviar un mensaje al responsable del centro de datos).
- Supervisión ODBC - cómo configurar ODBC en otras distribuciones de Linux y cómo empezar a supervisar métricas adicionales relacionadas con bases de datos con ODBC.
- Template MySQL by Zabbix agent - información adicional sobre el template MySQL by Zabbix agent.
- Template MySQL by Zabbix agent 2 - información adicional sobre el template MySQL by Zabbix agent 2.
- Template MySQL by ODBC - información adicional sobre el template MySQL by ODBC.