Monitorizar un servidor MySQL con Zabbix 6

En la entrada de hoy voy a enseñaros a monitorizar un servidor MySQL con la herramienta de monitorización gratuita Zabbix.

Requisitos

Para poder seguir este tutorial necesitarás lo siguiente:

  • Un servidor de Zabbix con la versión 6 instalada. Sino lo tienes te recomiendo primero sigas este tutorial.
  • El agente de Zabbix instalado en el equipo o servidor donde se encuentra instalado MySQL. Sino lo tienes instalado antes debes seguir este tutorial.
  • MySQL 8. No lo he probado en otras versiones aunque es posible que funcione tambien.

Este tutorial está realizado sobre un servidor MySQL instalado sobre Ubuntu por lo que puede que algunos pasos varíen en el caso de utilizar otra distribución de Linux.

Configuraciones a realizar en el servidor de MySQL

Creación usuario MySQL

Lo primero que tendremos que hacer será crear un usuario que es el que utilizará Zabbix para traerse toda la información de MySQL.

Para ello nos conectaremos a nuestro servidor de MySQL con el método que solamos utilizar normalmente (consola, MySQL Workbench, etc..) y ejecutaremos los siguientes comandos (el nombre del usuario y su contraseña podéis establecer los que prefiráis.

CREATE USER 'zabbix_pruebas'@'%' IDENTIFIED BY 'zabbix123';
GRANT USAGE ON *.* TO 'zabbix_pruebas'@'%';
FLUSH PRIVILEGES;

Configuración agente Zabbix

Una vez hemos creado el usuario que utilizaremos en MySQL el siguiente paso será conectarnos a nuestro servidor de MySQL por SSH y realizar los siguientes pasos.

Elevamos privilegios para así facilitarnos la configuración.

sergio@ubuntu:~$ sudo su

Creamos el fichero template_db_mysql.conf en la ruta /etc/zabbix/zabbix_agentd.d/

root@ubuntu:/home/sergio# nano /etc/zabbix/zabbix_agentd.d/template_db_mysql.conf

Con el siguiente contenido:

#template_db_mysql.conf created by Zabbix for "Template DB MySQL" and Zabbix 4.2
#For OS Linux: You need create .my.cnf in zabbix-agent home directory (/var/lib/zabbix by default) 
#For OS Windows: You need add PATH to mysql and mysqladmin and create my.cnf in %WINDIR%\my.cnf,C:\my.cnf,BASEDIR\my.cnf https://dev.mysql.com/doc/refman/5.7/en/option-files.html
#The file must have three strings:
#[client]
#user='zbx_monitor'
#password='<password>'
#
UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT COALESCE(SUM(DATA_LENGTH + INDEX_LENGTH),0) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"

Creamos el directorio zabbix dentro de la ruta /var/lib/

root@ubuntu:/home/sergio# mkdir /var/lib/zabbix

Creamos el archivo .my.conf dentro de la ruta que hemos creado en el paso anterior.

root@ubuntu:/home/sergio# nano /var/lib/zabbix/.my.cnf

Y especificamos los datos del usuario de MySQL que creamos al principio y que será el encargado de recoger los datos para Zabbix.

[client]
user='zabbix_pruebas'
password='zabbix123'

Reiniciamos el agente de Zabbix.

root@ubuntu:/home/sergio# systemctl restart zabbix-agent

Configuración del servidor de Zabbix

Para finalizar con la configuración, nos conectaremos con nuestro navegador habitual a la interfaz web de Zabbix, a continuación pincharemos en el menú de la izquierda sobre Configuration-Hosts y pincharemos sobre nuestro servidor que tiene MySQL instalado.

Agregaremos una nueva plantilla que será «MySQL by Zabbix agent» y actualizamos la configuración pulsando el botón Update.

Si esperamos unos minutos y nos vamos, en el menú de la izquierda, a Monitoring-Lastest data y filtramos por nuestro servidor podréis comprobar como zabbix habrá empezado a obtener datos de nuestro MySQL.

Como siempre espero que os haya sido de utilidad.

Entradas relacionadas

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.