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.

Requisitos previos

Antes de continuar con esta guía, debe descargar e instalar el servidor Zabbix, la interfaz Zabbix y el agente 2 Zabbix de acuerdo con las instrucciones de su sistema operativo.

Según su configuración, algunos de los pasos de esta guía pueden diferir ligeramente. Esta guía se basa en la siguiente configuración:

  • Versión de Zabbix: Zabbix 7.0 (instalado desde paquetes)
  • Distribución del sistema operativo: Ubuntu
  • Versión del sistema operativo: 22.04 (Jammy)
  • Componentes de Zabbix: Servidor, Interfaz, Agente 2
  • Base de datos: MySQL
  • Servidor web: Apache

Crear usuario MySQL

Para monitorear un servidor MySQL, Zabbix requiere acceso a él y a sus procesos. La 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 '<contraseña>';
       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 2 Zabbix.

  • 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} - establezce 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 la métrica 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 los 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 configurada {$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 la 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 el usuario previamente creado "zbx_monitor".

Configurar el agente Zabbix

1. Navegue hasta el directorio de configuraciones adicionales del agente Zabbix.

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

El directorio de configuraciones adicionales del agente Zabbix debe estar ubicado en el mismo directorio que el archivo de configuración del agente Zabbix (zabbix_agentd.conf). Dependiendo de su sistema operativo y de la instalación de Zabbix, este directorio puede tener una ubicación diferente a la especificada en esta guía. Para conocer las ubicaciones predeterminadas, verifique el parámetro Include en el archivo de configuración del agente Zabbix.

En lugar de definir todos los parámetros de usuario necesarios para monitorear el servidor MySQL en el archivo de configuración del agente Zabbix, 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 del agente Zabbix.

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 guárdelo.

4. Reinicie el agente Zabbix para actualizar su configuración.

systemctl restart zabbix-agent

Una vez que haya configurado los parámetros de usuario del agente Zabbix, puede continuar para configurar las credenciales que permitirán al agente Zabbix acceder al servidor MySQL.

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.

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

Ver también

  • Crear una métrica: cómo comenzar a monitorear métricas adicionales.
  • Escalamientos de problemas: cómo crear escenarios de alerta de varios pasos (por ejemplo, primero envíe un mensaje al administrador del sistema y luego, si un problema no se resuelve en 45 minutos, envíe un mensaje al administrador del centro de datos).
  • Monitoreo de ODBC: cómo configurar ODBC en otras distribuciones de Linux y cómo comenzar a monitorear métricas adicionales relacionadas con la base de datos con ODBC.
  • Plantilla MySQL by Zabbix Agent: información adicional sobre la plantilla MySQL by Zabbix Agent.
  • Plantilla MySQL by Zabbix Agent 2 - información adicional sobre MySQL by Zabbix Agent 2 plantilla.
  • Plantilla MySQL por ODBC - información adicional sobre la plantilla MySQL por ODBC.