Monitoreo MySQL · 5 min read · Sep 15, 2025

Cómo Monitorear MySQL o MariaDB con Prometheus y Grafana

Para asegurar que el servidor MySQL/MariaDB esté funcionando correctamente, necesitas implementar monitoreo en tu infraestructura. Esto te permite optimizar el rendimiento, identificar problemas/cuellos de botella y asegurar que tu base de datos esté saludable. Con Prometheus y Grafana, puedes lograr esto y crear hermosos paneles de monitoreo para servidores MySQL.

En esta guía, aprenderás cómo monitorear servidores MySQL/MariaDB con Prometheus y Grafana. Configurarás ‘prometheus-mysqld-exporter’ para generar métricas y agregar el monitoreo de endpoint al servidor Prometheus. Después de eso, crearás un nuevo panel de Grafana para el monitoreo de MySQL.

Requisitos Previos

Para comenzar, asegúrate de tener lo siguiente:

  • Un servidor MySQL/MariaDB instalado
  • Un usuario no root con privilegios de administrador
  • Prometheus y Grafana instalados en tu servidor

Configuración del usuario MySQL/MariaDB

Para monitorear el servidor MySQL/MariaDB, necesitas crear un nuevo usuario MySQL dedicado. Este usuario tendrá los privilegios mínimos, como PROCESS, REPLICATION CLIENT y SELECT en todas tus bases de datos.

En esta sección, estarás creando un nuevo usuario MySQL para monitorear tu servidor MySQL.

Inicia sesión en tu servidor MySQL/MariaDB con lo siguiente. Ingresa tu contraseña de ‘root‘ cuando se te solicite.

sudo mysql -u root -p

Ahora ejecuta las siguientes consultas para crear un nuevo usuario MySQL ‘prometheus‘ con la autenticación ‘unix_socket‘. Este usuario tendrá privilegios para ver procesos, clientes de replicación y seleccionar en todas las bases de datos en el servidor MySQL.

CREATE USER IF NOT EXISTS 'prometheus'@'localhost' IDENTIFIED WITH unix_socket;  
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'prometheus'@'localhost';  
FLUSH PRIVILEGES;

A continuación, ejecuta la consulta a continuación para verificar el usuario MySQL ‘prometheus@localhost‘. Verás al usuario ‘prometheus‘ con privilegios de SELECT, PROCESS y BINLOG MONITOR como cliente de replicación.

SHOW GRANTS FOR 'prometheus'@'localhost';

Escribe ‘quit‘ para salir del servidor MySQL/MariaDB.

check mysql user

Instalando prometheus-mysqld-exporter

El ‘prometheus-mysqld-exporter‘ es un exportador para métricas de MySQL. Soporta MySQL >= 5.6 y MariaDB >= 10.3. Para usar el ‘prometheus-mysqld-exporter’, necesitas instalarlo en tu servidor MySQL.

En este ejemplo, el servidor MySQL está ejecutándose en el servidor Debian 12. Y por defecto, el ‘prometheus-mysqld-exporter’ está disponible en el repositorio oficial de Debian, así que lo instalaremos a través de APT. Si estás usando otra distribución, puedes descargarlo e instalarlo manualmente desde GitHub.

Primero, ejecuta el siguiente comando para actualizar tu índice de paquetes de Debian.

sudo apt update

update repo

Una vez que el repositorio esté actualizado, instala el paquete ‘prometheus-mysqld-exporter‘ con el siguiente comando. Ingresa ‘Y‘ para confirmar la instalación.

sudo apt install prometheus-mysqld-exporter

install prometheus-mysqld-exporter

Después de que la instalación esté completa, ejecuta el comando ‘systemctl‘ a continuación para recargar el administrador de systemd.

sudo systemctl daemon-reload

Luego, puedes iniciar y habilitar el servicio ‘prometheus-mysqld-exporter‘ con el comando a continuación. Con esto, el servicio ‘prometheus-mysqld-exporter’ debería estar ejecutándose y habilitado en tu sistema.

sudo systemctl enable --now prometheus-mysqld-exporter

Agregando el usuario MySQL al prometheus-mysqld-exporter

Ahora que has creado un usuario MySQL e instalado ‘prometheus-mysqld-exporter’. El siguiente paso es agregar tu MySQL a la configuración de ‘prometheus-mysqld-exporter’. Hacer esto te permite generar métricas de tu servidor MySQL y exponer el endpoint en el puerto predeterminado ‘9104’.

Abre el archivo ‘/etc/default/prometheus-mysqld-exporter‘ con el siguiente editor ‘nano‘.

sudo nano /etc/default/prometheus-mysqld-exporter

Descomenta la variable de entorno ‘DATA_SOURCE_NAME‘ para integrar MySQL con el ‘prometheus-mysqld-exporter‘. En este ejemplo, el usuario MySQL ‘prometheus‘ se utilizará para monitorear el servidor MySQL a través del archivo ‘mysqld.sock‘.

DATA_SOURCE_NAME="prometheus@unix(/run/mysqld/mysqld.sock)/"

Guarda el archivo y sal del editor.

Ahora ejecuta el comando ‘systemctl‘ a continuación para reiniciar el servicio ‘prometheus-mysqld-exporter‘ y aplicar tus cambios. Y luego, verifica su estado para asegurarte de que esté ejecutándose.

sudo systemctl restart prometheus-mysqld-exporter  
sudo systemctl status prometheus-mysqld-exporter

Puedes ver a continuación que el ‘prometheus-mysqld-exporter’ está en ejecución.

setup prometheus-mysql-exporter

Por último, abre tu navegador web y visita http://192.168.10.41:9104/. Este es el endpoint predeterminado para el ‘prometheus-mysqld-exporter‘. Si tu configuración es exitosa, se generará una métrica y se mostrará como la siguiente:

generated metric

Agregando el endpoint prometheus-mysqld-exporter al Prometheus

Ahora que la configuración del ‘prometheus-mysqld-exporter‘ está completa y la métrica se ha generado. Ahora necesitas agregar el ‘prometheus-mysqld-exporter‘ como un endpoint a tu servidor Prometheus. Para esta guía, el endpoint ‘prometheus-mysqld-exporter‘ está disponible en ‘192.168.10.41:9104‘.

Si no tienes un servidor Prometheus, instálalo a través de Cómo Instalar Prometheus y Node Exporter en Debian 12.

Muévete a tu servidor Prometheus y abre el archivo de configuración ‘/etc/prometheus/prometheus.yml‘ con el editor ‘nano’.

sudo nano /etc/prometheus/prometheus.yml

Dentro de ‘scrape_configs‘, agrega el endpoint de tu ‘prometheus-mysqld-exporter‘ así. Para este ejemplo, el ‘prometheus-mysqld-exporter‘ está ejecutándose en el ‘server1‘ con la dirección IP y puerto ‘192.168.10.41:9104‘.

scrape_configs:  
  
- job_name: server1  
  static_configs:  
  - targets: ['192.168.10.41:9104']  
    labels:  
      alias: db1

Guarda el archivo y sal del editor cuando termines.

Ahora ejecuta el siguiente comando ‘systemctl‘ para reiniciar el servicio ‘prometheus‘ y aplicar tus cambios.

sudo systemctl restart prometheus

Por último, abre el panel de tu servidor Prometheus y selecciona el menú ‘Status > Targets‘. Asegúrate de que puedas ver el ‘server1‘, que es el endpoint de tu monitoreo MySQL.

Configurando el Panel de Grafana para el servidor MySQL

Después de agregar el endpoint ‘prometheus-mysqld-exporter’ al servidor Prometheus, ahora estás listo para construir el panel de Grafana para el monitoreo del servidor MySQL. En esta sección, importarás el monitoreo del panel para MySQL a través de GrafanaLabs.

Si no tienes Grafana instalado, instálalo con Cómo Instalar Grafana y Prometheus en Ubuntu 24.04.

En tu panel de Grafana, haz clic en el menú ‘Dashboard > New > Import‘. Para este ejemplo, utilizaremos plantillas de Grafana de GrafanaLabs para monitorear el servidor MySQL.

Copia el número de ID de Grafana y pégalo, luego haz clic en ‘Load‘ para confirmar.

import dashboard

Ahora selecciona ‘Prometheus‘ como tu fuente de datos y haz clic en ‘Import‘.

import dashboard

Si es exitoso, verás el panel para tu monitoreo MySQL/MariaDB con Prometheus y Grafana.

mysql monitoring dashboard

Conclusión

¡Felicidades! Has completado el monitoreo del servidor MySQL/MariaDB con Prometheus y Grafana. Has monitoreado el servidor MySQL con el ‘prometheus-mysqld-exporter’ y generado métricas para MySQL. También has agregado el ‘prometheus-mysqld-exporter’ como un endpoint a tu servidor Prometheus. Por último, has creado un panel de Grafana para monitorear tu servidor MySQL.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.