La integración de MariaDB recopila métricas de rendimiento relacionadas con InnoDB, el grupo de búferes y otras operaciones. También recopila registros generales, de errores y de consultas lentas, y los analiza en una carga útil de JSON. Los registros de errores se analizan para su código de error y subsistema. Los registros de consultas lentas se analizan en pares clave-valor que describen el rendimiento de una consulta, incluidos el tiempo de consulta y las filas examinadas.
Para obtener más información sobre MariaDB, consulta mariadb.org de Google Cloud.
Requisitos previos
Para recopilar la telemetría de MariaDB, debes instalar el agente de operaciones versión 2.8.0 o posterior.
Este receptor es compatible con las versiones 10.1.X a 10.7.X de MariaDB.Configura tu instancia de MariaDB
MariaDB es una bifurcación comercializada que es compatible con la comunidad del sistema de administración de bases de datos relacionales (RDBMS) de MySQL. Para recopilar registros y métricas de MariaDB, usa los receptores mysql
.
El receptor mysql
se conecta de forma predeterminada a un servidor MariaDB local con un socket Unix y la autenticación Unix como usuario root
.
Configura el agente de operaciones para MariaDB
A través de la guía Configura el agente de operaciones, agrega los elementos necesarios para recopilar registros y métricas de tus instancias de MariaDB y reinicia el agente.
Configuración de ejemplo
Los siguientes comandos crean el archivo de configuración para recopilar y transferir registros y métricas para MariaDB y reiniciar el agente de operaciones en Linux.
Para conectarte a tu instancia de MariaDB con una conexión TCP con un nombre de usuario y una contraseña, especifica el nombre de usuario y la contraseña en tu receptor de métricas. Por ejemplo:
metrics:
receivers:
mysql:
type: mysql
endpoint: localhost:3306
password: pwd
username: usr
service:
pipelines:
mysql:
receivers:
- mysql
Configura la recopilación de registros
Para transferir registros desde MariaDB, debes crear receptores para los registros que MariaDB produce y, luego, crear una canalización para los receptores nuevos.
El receptor de registros mysql_error
recopila registros de las rutas de archivos predeterminadas
que se muestra en la siguiente tabla. En algunas plataformas, MariaDB registra journald
en lugar de a un archivo. Para configurar MariaDB para que acceda a un archivo, establece la opción log_error
en la configuración de MariaDB. Más información
sobre la configuración de log_error
, consulta Cómo escribir el registro de errores en un
Archivo.
Para configurar un receptor para tus registros mysql_error
, especifica los siguientes campos:
Campo | Predeterminado | Descripción |
---|---|---|
type |
Este valor debe ser mysql_error . |
|
include_paths |
[/var/log/mysqld.log, /var/log/mysql/mysqld.log, /var/log/mysql/error.log] |
Una lista de rutas de acceso del sistema de archivos que se leerán a través de la visualización del final de cada archivo. Se puede usar un comodín (* ) en las rutas. Por ejemplo, /var/log/mysql/*.log . |
exclude_paths |
[] |
Una lista de patrones de ruta de acceso del sistema de archivos que se excluirán del conjunto que coincide con include_paths . |
record_log_file_path |
false |
Si se configura como true , la ruta al archivo específico desde el que se obtuvo el registro aparece en la entrada de registro de salida como el valor de la etiqueta agent.googleapis.com/log_file_path . Cuando se usa un comodín, solo se registra la ruta de acceso del archivo del que se obtuvo el registro. |
wildcard_refresh_interval |
60s |
El intervalo en el que se actualizan las rutas de acceso de archivos comodín en include_paths . Se proporciona como una duración, por ejemplo, 30s o 2m . Esta propiedad puede ser útil en el caso de una capacidad de procesamiento de registro alta en la que los archivos de registro se rotan más rápido que el intervalo predeterminado. |
Para configurar un receptor para los registros mysql_general
, especifica los siguientes campos:
Campo | Predeterminado | Descripción |
---|---|---|
type |
Este valor debe ser mysql_general . |
|
include_paths |
[/var/lib/mysql/${HOSTNAME}.log] |
Los archivos de registro que se leerán. |
exclude_paths |
[] |
Una lista de patrones de ruta de acceso del sistema de archivos que se excluirán del conjunto que coincide con include_paths . |
record_log_file_path |
false |
Si se configura como true , la ruta al archivo específico desde el que se obtuvo el registro aparece en la entrada de registro de salida como el valor de la etiqueta agent.googleapis.com/log_file_path . Cuando se usa un comodín, solo se registra la ruta de acceso del archivo del que se obtuvo el registro. |
wildcard_refresh_interval |
60s |
El intervalo en el que se actualizan las rutas de acceso de archivos comodín en include_paths . Se proporciona como una duración, por ejemplo, 30s o 2m . Esta propiedad puede ser útil en el caso de una capacidad de procesamiento de registro alta en la que los archivos de registro se rotan más rápido que el intervalo predeterminado. |
Para configurar un receptor para los registros mysql_slow
, especifica los siguientes campos:
Campo | Predeterminado | Descripción |
---|---|---|
type |
Este valor debe ser mysql_slow . |
|
include_paths |
[/var/lib/mysql/${HOSTNAME}-slow.log] |
Los archivos de registro que se leerán. |
exclude_paths |
[] |
Una lista de patrones de ruta de acceso del sistema de archivos que se excluirán del conjunto que coincide con include_paths . |
record_log_file_path |
false |
Si se configura como true , la ruta al archivo específico desde el que se obtuvo el registro aparece en la entrada de registro de salida como el valor de la etiqueta agent.googleapis.com/log_file_path . Cuando se usa un comodín, solo se registra la ruta de acceso del archivo del que se obtuvo el registro. |
wildcard_refresh_interval |
60s |
El intervalo en el que se actualizan las rutas de acceso de archivos comodín en include_paths . Se proporciona como una duración, por ejemplo, 30s o 2m . Esta propiedad puede ser útil en el caso de una capacidad de procesamiento de registro alta en la que los archivos de registro se rotan más rápido que el intervalo predeterminado. |
¿Qué se registra?
El logName
de los registros mysql_error
, mysql_general
y mysql_slow
se deriva de los ID del receptor especificados en la configuración.
Según la versión de MariaDB, los registros mysql_error
pueden contener los siguientes campos dentro de LogEntry
:
Campo | Tipo | Descripción |
---|---|---|
jsonPayload.level |
string | Nivel de entrada de registro |
jsonPayload.tid |
número | ID de subproceso en el que se originó el registro |
jsonPayload.errorCode |
string | Código de error de MariaDB asociado con el registro |
jsonPayload.subsystem |
string | Subsistema MariaDB donde se originó el registro |
jsonPayload.message |
string | Mensaje del registro |
severity |
string (LogSeverity ) |
Nivel de entrada de registro (traducido) |
timestamp |
string (Timestamp ) |
Hora en que se recibió la solicitud |
Los campos en blanco o faltantes no estarán presentes en la entrada de registro.
Los registros mysql_general
contienen los siguientes campos en LogEntry
:
Campo | Tipo | Descripción |
---|---|---|
jsonPayload.tid |
número | ID de subproceso en el que se originó el registro |
jsonPayload.command |
string | Tipo de acción de la base de datos que se registra |
jsonPayload.message |
string | Registro de la acción de la base de datos |
timestamp |
string (Timestamp ) |
Hora en la que se registró la entrada |
Los registros mysql_slow
contienen los siguientes campos en LogEntry
:
Campo | Tipo | Descripción |
---|---|---|
jsonPayload.user |
string | Usuario que ejecutó la consulta |
jsonPayload.database |
string | Base de datos en la que se ejecutó la consulta |
jsonPayload.host |
string | Host de la instancia de base de datos |
jsonPayload.ipAddress |
string | Dirección de la instancia de base de datos |
jsonPayload.tid |
número | ID del subproceso en el que se registró la consulta |
jsonPayload.queryTime |
número | El tiempo de ejecución de la declaración en segundos |
jsonPayload.lockTime |
número | El tiempo para adquirir bloqueos en segundos |
jsonPayload.rowsSent |
número | La cantidad de filas enviadas al cliente |
jsonPayload.rowsExamined |
número | La cantidad de filas que examina la capa del servidor |
jsonPayload.errorNumber † |
número | El número de error de la declaración o 0 si no se produjo ningún error |
jsonPayload.killed † |
número | Si la declaración se cerró, el número de error que indica la razón, o 0 si la declaración finalizó con normalidad |
jsonPayload.bytesReceived † |
número | La cantidad de bytes recibidos de todos los clientes |
jsonPayload.bytesSent † |
número | La cantidad de bytes enviados a todos los clientes |
jsonPayload.readFirst † |
número | La cantidad de veces que se leyó la primera entrada en un índice |
jsonPayload.readLast † |
número | La cantidad de solicitudes para leer la última clave en un índice |
jsonPayload.readKey † |
número | La cantidad de solicitudes para leer una fila según una clave |
jsonPayload.readNext † |
número | La cantidad de solicitudes para leer la siguiente fila en orden de clave |
jsonPayload.readPrev † |
número | La cantidad de solicitudes para leer la fila anterior en orden de clave |
jsonPayload.readRnd † |
número | Cantidad de solicitudes para leer una fila según una posición fija |
jsonPayload.readRndNext † |
número | Cantidad de solicitudes para leer la siguiente fila en el archivo de datos |
jsonPayload.sortMergePasses † |
número | La cantidad de pases de combinación que tuvo que hacer el algoritmo de clasificación |
jsonPayload.sortRangeCount † |
número | La cantidad de órdenes que se realizaron a través de rangos |
jsonPayload.sortRows † |
número | La cantidad de filas ordenadas |
jsonPayload.sortScanCount † |
número | La cantidad de clasificaciones que se realizaron mediante el análisis de la tabla |
jsonPayload.createdTmpDiskTables † |
número | La cantidad de tablas temporales internas en el disco que creó el servidor |
jsonPayload.createdTmpTables † |
número | La cantidad de tablas temporales internas que creó el servidor |
jsonPayload.startTime † |
string | La hora de inicio de la ejecución de la declaración |
jsonPayload.endTime † |
string | La hora de finalización de la ejecución de la declaración |
jsonPayload.message |
string | El texto completo de la consulta |
timestamp |
string (Timestamp ) |
Hora en la que se registró la entrada |
†
Estos campos solo se proporcionan si la variable de sistema log_slow_extra
está configurada como 'ON'
. Esta variable está disponible a partir de la versión 8.0.14. de MySQL
Para obtener información sobre estos campos, consulta la documentación de MySQL.
Configura la recopilación de métricas
Para recopilar métricas de MariaDB, debes crear un receptor para las métricas de MariaDB y, luego, crear una canalización destinada al receptor nuevo.
Este receptor no admite el uso de varias instancias en la configuración, por ejemplo, para supervisar varios extremos. Todas estas instancias escriben en las mismas series temporales, y Cloud Monitoring no tiene forma de distinguirlas.
Para configurar un receptor para las métricas de MariaDB, especifica los siguientes campos:
Campo | Predeterminado | Descripción |
---|---|---|
type |
El valor debe ser mysql . |
|
endpoint |
localhost:3306 |
La URL que expone MariaDB. |
collection_interval |
60s |
Un valor time.Duration, como 30s o 5m . |
username |
root |
El nombre de usuario usado para conectarse al servidor. |
password |
La contraseña usada para conectarse al servidor. |
Qué se supervisa
En la siguiente tabla, se proporciona una lista de métricas que el agente de operaciones recopila de la instancia MariaDB.
Tipo de métrica | |
---|---|
Categoría, tipo Recursos supervisados |
Etiquetas |
workload.googleapis.com/mysql.buffer_pool_operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.buffer_pool_pages
|
|
GAUGE , DOUBLE gce_instance |
kind
|
workload.googleapis.com/mysql.buffer_pool_size
|
|
GAUGE , DOUBLE gce_instance |
kind
|
workload.googleapis.com/mysql.commands
|
|
CUMULATIVE , INT64 gce_instance |
command
|
workload.googleapis.com/mysql.double_writes
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.handlers
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.locks
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.log_operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.page_operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.row_locks
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.row_operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.sorts
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.threads
|
|
GAUGE , DOUBLE gce_instance |
kind
|
Verifica la configuración
En esta sección, se describe cómo verificar que hayas configurado de forma correcta el receptor de MariaDB. El agente de operaciones puede tardar uno o dos minutos en comenzar a recopilar telemetría.
Para verificar que los registros de MariaDB se envíen a Cloud Logging, haz lo siguiente:
-
En la consola de Google Cloud, ve a la página Explorador de registros:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
- Ingresa la siguiente consulta en el editor y, luego, haz clic en Ejecutar consulta:
resource.type="gce_instance" (log_id("mysql_error") OR log_id("mysql_general") OR log_id("mysql_slow"))
Para verificar que las métricas de MariaDB se envíen a Cloud Monitoring, haz lo siguiente:
-
En la consola de Google Cloud, ve a la página leaderboard Explorador de métricas:
Dirígete al Explorador de métricas
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- En la barra de herramientas del panel del compilador de consultas, selecciona el botón cuyo nombre sea codeMQL o codePromQL.
- Verifica que MQL esté seleccionado en el botón de activación Lenguaje. El botón de activación de lenguaje se encuentra en la misma barra de herramientas que te permite dar formato a tu consulta.
- Ingresa la siguiente consulta en el editor y, luego, haz clic en Ejecutar consulta:
fetch gce_instance | metric 'workload.googleapis.com/mysql.commands' | align rate(1m) | every 1m
Ver panel
Para ver tus métricas de MariaDB, debes tener configurado un gráfico o un panel. MariaDB usa los mismos paneles que MySQL. Cualquier panel se instala de forma automática después de que configuras la integración y de que el agente de operaciones comienza a recopilar datos de métricas.
También puedes ver vistas previas estáticas de los paneles sin instalar la integración.
Para ver un panel instalado, haz lo siguiente:
-
En la consola de Google Cloud, ve a la página Paneles.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- Selecciona la pestaña Lista de paneles y, luego, la categoría Integraciones.
- Haz clic en el nombre del panel que quiera ver. MariaDB usa la los mismos paneles que MySQL.
Si configuraste una integración, pero el panel no se instaló, verifica que el agente de operaciones se esté ejecutando. Cuando no hay datos de métricas para un gráfico en el panel, la instalación del panel falla. Una vez que el agente de operaciones comienza a recopilar métricas, el panel se instalará por ti.
Para obtener una vista previa estática del panel, haz lo siguiente:
-
En la consola de Google Cloud, ve a la página Integraciones:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- Haz clic en el filtro de la plataforma de implementación Compute Engine.
- Ubica la entrada para MySQL y haz clic en Ver detalles. MariaDB usa la los mismos paneles que MySQL.
- Selecciona la pestaña Paneles para ver una vista previa estática. Si el panel está instalado, haz clic en Ver panel para navegar a él.
Para obtener más información de los paneles en Cloud Monitoring, consulta Paneles y gráficos.
Para obtener más información del uso de la página Integraciones, consulta Administra integraciones.
Instala políticas de alertas
Las políticas de alertas le indican a Cloud Monitoring que te notifique cuando ocurren condiciones especificadas. MariaDB usa las mismas políticas de alertas que MySQL. Puedes ver y también instalar estas políticas de alertas desde la página Integraciones en Monitoring.
Para ver las descripciones de las políticas de alertas disponibles y, luego, instalarlas, haz lo siguiente:
-
En la consola de Google Cloud, ve a la página Integraciones:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- Ubica la entrada para MySQL y haz clic en Ver detalles. MariaDB usa la las mismas políticas de alertas que MySQL.
- Selecciona la pestaña Alertas. En esta pestaña, se proporcionan descripciones de las políticas de alertas disponibles y una interfaz para instalarlas.
- Instala las políticas de alertas. Las políticas de alertas deben saber a dónde enviar notificaciones que la alerta se activó, por lo que requieren información de ti para la instalación.
Para instalar las políticas de alertas, haz lo siguiente:
- En la lista de políticas de alertas disponibles, elige las que deseas instalar.
En la sección Configura notificaciones, elige uno o más canales de notificaciones. Tienes la opción de inhabilitar el uso de los canales de notificación, pero si lo haces, las políticas de alertas se activarán de forma silenciosa. Puedes verificar su estado en Monitoring, pero no recibirás notificaciones.
Para obtener más información de los canales de notificaciones, consulta Administra canales de notificaciones.
- Haz clic en Crear políticas.
Para obtener más información de las políticas de alertas en Cloud Monitoring, consulta Introducción a las alertas.
Para obtener más información del uso de la página Integraciones, consulta Administra integraciones.
¿Qué sigue?
Para obtener una explicación sobre cómo usar Ansible para instalar el agente de operaciones, configurar una aplicación de terceros y, luego, instalar un panel de muestra, consulta el video Instala el agente de operaciones para solucionar problemas de apps de terceros.