Los registros de MariaDB (logs) ofrecen funciones completas que te ayudan a supervisar y optimizar tus instancias de base de datos. Te explicamos los distintos tipos de logs y cómo configurarlos y activarlos.

¿Qué tipos de registros de MariaDB (logs) existen?

MariaDB ofrece cuatro tipos principales de registros que registran distintos aspectos del funcionamiento de la base de datos:

Error Log (registro de errores)

El registro de errores documenta eventos críticos, como el arranque y apagado del servidor, fallos del sistema y otros errores graves. Está activado por defecto y resulta útil para diagnosticar problemas del servidor.

General Query Log (registro general de consultas)

Este registro recoge cada conexión al servidor y todos los comandos SQL ejecutados. Por ello, es útil en el análisis de errores y la supervisión de la actividad de los usuarios.

Binary Log (registro binario)

El registro binario registra todos los cambios en la base de datos, incluyendo manipulaciones de datos y modificaciones estructurales. Es fundamental para la replicación y para realizar restauraciones a un momento específico (Point in Time Recovery).

Slow Query Log (registro de consultas lentas)

Este registro recoge las consultas SQL que superan un tiempo de ejecución establecido. Es muy útil para detectar y optimizar los cuellos de botella en el rendimiento.

Compute Engine
La solución IaaS ideal para tus cargas de trabajo
  • vCPU económico con núcleos dedicados
  • Flexible y sin periodo mínimo contractual
  • Soporte experto 24/7

Configurar y usar los registros de MariaDB paso a paso

A continuación, te mostramos cómo activar, configurar y analizar los cuatro archivos de registro principales de MariaDB. Abordaremos el registro de errores, el registro general de consultas, el registro binario, el registro de consultas lentas y la ubicación de los registros de MariaDB.

Requisitos

  • Un servidor con una versión actual de Ubuntu u otra distribución Linux
  • Una cuenta de usuario con permisos de sudo
  • No tener instalado MySQL en paralelo, ya que MySQL y MariaDB pueden interferir en archivos de configuración y puertos
  • Conocimientos básicos de SQL

Paso 1: mostrar y configurar el registro de errores (Error Log)

Primero, debes asegurarte de que MariaDB esté instalado. Para ello, ejecuta el siguiente comando:

sudo apt update
sudo apt install mariadb-server
bash

Este comando actualiza primero la lista de paquetes de tu sistema y luego instala el servidor MariaDB.

Para conectarte a la base de datos MariaDB, ejecuta el siguiente comando:

sudo mariadb
bash

Con este comando abres la consola SQL interactiva como administrador.

El siguiente paso es comprobar dónde escribe los registros MariaDB, como los mensajes de error. Para ello, usa esta instrucción SQL:

SHOW VARIABLES LIKE '%log_error%';
sql

Si el valor de log_error está vacío, los mensajes de error se escriben por defecto en el registro central del sistema (syslog).

Para consultar este registro, utiliza el siguiente comando:

journalctl -u mariadb.service
bash

Con este comando obtienes una lista cronológica de los mensajes del sistema generados por el servicio MariaDB. Esto es útil para investigar errores de inicio u otros eventos críticos.

Si, en cambio, quieres usar un archivo de registro de errores propio, debes editar el archivo de configuración de MariaDB. Ábrelo con un editor de texto como nano:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Busca la sección [mysqld] y añade la siguiente línea, o descoméntala si ya existe:

log_error = /var/log/mariadb/error.log
txt

Ahora debes asegurarte de que el directorio indicado existe y tiene los permisos correctos. Para ello, ejecuta estos comandos:

sudo mkdir /var/log/mariadb
sudo chown mysql:mysql /var/log/mariadb
bash

Estos comandos crean el directorio y lo asignan al usuario y grupo mysql, lo que permite que MariaDB escriba en él.

Después, reinicia el servicio de MariaDB para que los cambios en la configuración surtan efecto:

sudo systemctl restart mariadb
bash

Por último, puedes consultar el registro de errores con este comando:

sudo cat /var/log/mariadb/error.log
bash

En este archivo encontrarás información sobre los momentos de arranque, advertencias o problemas con plugins.

Paso 2: activar el registro general de consultas (General Query Log)

Para comprobar el estado actual, abre la consola SQL y ejecuta el siguiente comando:

SHOW VARIABLES LIKE '%general%';
sql

A continuación, podrás ver si el registro general está activo (general_log = ON) y dónde se guarda (general_log_file).

Para activar permanentemente estos logs de MariaDB, vuelve a editar el archivo de configuración:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Añade las siguientes líneas en la sección [mysqld]:

general_log = 1
general_log_file = /var/log/mariadb/general-query.log
ini

A continuación, reinicia el servidor:

sudo systemctl restart mariadb
bash

Para ver las entradas registradas, usa este comando:

sudo cat /var/log/mariadb/general-query.log
bash

Allí encontrarás todas las consultas y conexiones, incluyendo la marca temporal. Esto ayuda a determinar cuándo se realizaron las solicitudes.

Paso 3: activar el registro binario (Binary Log)

Para configurar el registro binario, abre el mismo archivo de configuración que antes:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Añade los siguientes parámetros en la sección [mysqld]:

log_bin = /var/log/mariadb/binary.log
server_id = 1
binlog_format = ROW
txt

El parámetro server_id es importante para la replicación, ya que cada servidor necesita un identificador único. Con binlog_format = ROW se registran en los logs de MariaDB todos los cambios en la base de datos a nivel de filas.

Reinicia el servidor:

sudo systemctl restart mariadb
bash

Para comprobar si el registro binario está activo, ejecuta en la consola SQL:

SHOW BINARY LOGS;
sql

Ahí aparecerán los archivos binarios activos con su nombre y tamaño.

Para leer el contenido de un archivo, usa este comando:

sudo mysqlbinlog /var/log/mariadb/binary.000001
bash

Este comando muestra todos los comandos de modificación en orden cronológico.

Paso 4: registrar consultas lentas (Slow Query Log)

Edita el archivo de configuración:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bash

Añade lo siguiente:

slow_query_log = 1
slow_query_log_file = /var/log/mariadb/slow-query.log
long_query_time = 10
txt

El parámetro long_query_time = 10 significa que se registrarán todas las consultas que tarden más de diez segundos en ejecutarse.

Reinicia el servidor:

sudo systemctl restart mariadb
bash

Verifica si el registro está activo:

SHOW VARIABLES LIKE '%slow_query_log%';
sql

Ejecuta una consulta de prueba que sea intencionadamente lenta:

SELECT SLEEP(12);
sql

Esta instrucción obliga al servidor a esperar doce segundos. Por ello, debería aparecer en el registro de consultas lentas.

Finalmente, puedes consultar el log con:

sudo cat /var/log/mariadb/slow-query.log
bash

El log mostrará la marca temporal, el tiempo de la consulta y la instrucción SQL afectada.

Bases de datos gestionadas
Bases de datos seguras y fáciles de usar
  • Arquitectura de primera gestionada por expertos
  • Soluciones flexibles adaptadas a tus necesidades
  • Seguridad máxima en centros de datos con certificación ISO
¿Le ha resultado útil este artículo?
Ir al menú principal