La integración de MariaDB recoge métricas de rendimiento relacionadas con InnoDB, el grupo de búferes y otras operaciones. También recoge registros generales, de errores y de consultas lentas, y los analiza en una carga útil JSON. Los registros de errores se analizan para obtener su código de error y su subsistema. Los registros de consultas lentas se analizan en pares clave-valor que describen el rendimiento de una consulta, incluido el tiempo de consulta y las filas examinadas.
Para obtener más información sobre MariaDB, consulta la documentación de MariaDB.
Requisitos previos
Para recoger la telemetría de MariaDB, debes instalar el Agente de operaciones:
- Para las métricas, instala la versión 2.37.0 o una posterior.
- Para los registros, instala la versión 2.37.0 o una posterior.
Esta integración es compatible con las versiones de MariaDB de la 10.1.X a la 10.7.X.
Configurar la instancia de MariaDB
MariaDB es una bifurcación de MySQL, un sistema de gestión de bases de datos relacionales (RDBMS), desarrollada por la comunidad y con asistencia comercial. Para recoger registros y métricas de MariaDB, usa los mysql
receptores.
El receptor de métricas mysql
se conecta de forma predeterminada a un servidor MariaDB local mediante un socket Unix y la autenticación Unix como usuario root
.
El receptor de registro mysql_error
recoge los registros de las rutas de archivo predeterminadas que se muestran en la siguiente tabla. En algunas plataformas, MariaDB registra los datos en journald
de forma predeterminada en lugar de en un archivo. Para configurar MariaDB de forma que registre la actividad en un archivo, defina la opción log_error
en la configuración de MariaDB. Para obtener más información sobre la configuración de log_error
, consulta Escribir el registro de errores en un archivo.
Configurar el agente de operaciones para MariaDB
Sigue la guía para configurar el agente de operaciones, añade los elementos necesarios para recoger telemetría de las instancias de MariaDB y reinicia el agente.
Configuración de ejemplo
Los siguientes comandos crean la configuración para recoger e ingerir telemetría de MariaDB:
Para que estos cambios se apliquen, debes reiniciar el agente de Ops:
Linux
- Para reiniciar el agente, ejecuta el siguiente comando en tu instancia:
sudo systemctl restart google-cloud-ops-agent
- Para confirmar que el agente se ha reiniciado, ejecuta el siguiente comando y verifica que los componentes "Metrics Agent" y "Logging Agent" se han iniciado:
sudo systemctl status "google-cloud-ops-agent*"
Windows
- Conéctate a tu instancia mediante RDP o una herramienta similar e inicia sesión en Windows.
- Abre un terminal de PowerShell con privilegios de administrador haciendo clic con el botón derecho en el icono de PowerShell y seleccionando Ejecutar como administrador.
- Para reiniciar el agente, ejecuta el siguiente comando de PowerShell:
Restart-Service google-cloud-ops-agent -Force
- Para confirmar que el agente se ha reiniciado, ejecuta el siguiente comando y verifica que los componentes "Metrics Agent" y "Logging Agent" se han iniciado:
Get-Service google-cloud-ops-agent*
Configurar la recogida de registros
Para ingerir registros de MariaDB, debes crear un receptor para los registros que genere MariaDB y, a continuación, crear una canalización para el nuevo receptor.
Para configurar un receptor de tus registros mysql_error
, especifica los siguientes campos:
Campo | Predeterminado | Descripción |
---|---|---|
exclude_paths |
Lista de patrones de rutas del sistema de archivos que se excluirán del conjunto que coincida con include_paths . |
|
include_paths |
[/var/log/mysqld.log, /var/log/mysql/mysqld.log, /var/log/mysql/error.log, /run/mysqld/mysqld.err, /var/lib/mysql/${HOSTNAME}.err] |
Lista de rutas del sistema de archivos que se van a leer siguiendo cada archivo. Se puede usar un comodín (* ) en las rutas. Por ejemplo, /var/log/mysql/*.log . |
record_log_file_path |
false |
Si se asigna el valor true , la ruta al archivo específico del que se ha obtenido el registro de log aparece en la entrada de log de salida como valor de la etiqueta agent.googleapis.com/log_file_path . Cuando se usa un comodín, solo se registra la ruta del archivo del que se ha obtenido el registro. |
type |
Este valor debe ser mysql_error . |
|
wildcard_refresh_interval |
60s |
Intervalo en el que se actualizan las rutas de archivos con comodines en include_paths . Se indica como duración; por ejemplo, 30s o 2m . Esta propiedad puede ser útil cuando el volumen de registros es alto y los archivos de registro se rotan más rápido que el intervalo predeterminado. |
Para configurar un receptor de tus registros mysql_general
, especifica los siguientes campos:
Campo | Predeterminado | Descripción |
---|---|---|
exclude_paths |
Lista de patrones de rutas del sistema de archivos que se excluirán del conjunto que coincida con include_paths . |
|
include_paths |
[/var/lib/mysql/${HOSTNAME}.log] |
Lista de rutas del sistema de archivos que se van a leer siguiendo cada archivo. Se puede usar un comodín (* ) en las rutas. |
record_log_file_path |
false |
Si se asigna el valor true , la ruta al archivo específico del que se ha obtenido el registro de log aparece en la entrada de log de salida como valor de la etiqueta agent.googleapis.com/log_file_path . Cuando se usa un comodín, solo se registra la ruta del archivo del que se ha obtenido el registro. |
type |
Este valor debe ser mysql_general . |
|
wildcard_refresh_interval |
60s |
Intervalo en el que se actualizan las rutas de archivos con comodines en include_paths . Se indica como duración; por ejemplo, 30s o 2m . Esta propiedad puede ser útil cuando el volumen de registros es alto y los archivos de registro se rotan más rápido que el intervalo predeterminado. |
Para configurar un receptor de tus registros mysql_slow
, especifica los siguientes campos:
Campo | Predeterminado | Descripción |
---|---|---|
exclude_paths |
Lista de patrones de rutas del sistema de archivos que se excluirán del conjunto que coincida con include_paths . |
|
include_paths |
[/var/lib/mysql/${HOSTNAME}-slow.log] |
Lista de rutas del sistema de archivos que se van a leer siguiendo cada archivo. Se puede usar un comodín (* ) en las rutas. |
record_log_file_path |
false |
Si se asigna el valor true , la ruta al archivo específico del que se ha obtenido el registro de log aparece en la entrada de log de salida como valor de la etiqueta agent.googleapis.com/log_file_path . Cuando se usa un comodín, solo se registra la ruta del archivo del que se ha obtenido el registro. |
type |
Este valor debe ser mysql_slow . |
|
wildcard_refresh_interval |
60s |
Intervalo en el que se actualizan las rutas de archivos con comodines en include_paths . Se indica como duración; por ejemplo, 30s o 2m . Esta propiedad puede ser útil cuando el volumen de registros es alto y los archivos de registro se rotan más rápido que el intervalo predeterminado. |
Qué se registra
El logName
se deriva de los IDs de receptor especificados en la configuración. Los campos detallados de LogEntry
son los siguientes.
Los registros de mysql_error
contienen los siguientes campos en LogEntry
:
Campo | Tipo | Descripción |
---|---|---|
jsonPayload.errorCode |
cadena | Código de error de MySQL asociado al registro. |
jsonPayload.level |
cadena | Nivel de entrada de registro |
jsonPayload.message |
cadena | Mensaje de registro |
jsonPayload.subsystem |
cadena | Subsistema de MySQL en el que se ha originado el registro. |
jsonPayload.tid |
número | ID de la conversación en la que se originó el registro. |
severity |
cadena (LogSeverity ) |
Nivel de entrada de registro (traducido). |
Los registros de mysql_general
contienen los siguientes campos en LogEntry
:
Campo | Tipo | Descripción |
---|---|---|
jsonPayload.command |
cadena | Tipo de acción de base de datos que se está registrando |
jsonPayload.message |
cadena | Registro de la acción de la base de datos |
jsonPayload.tid |
número | ID de la conversación en la que se originó el registro. |
severity |
cadena (LogSeverity ) |
Nivel de entrada de registro (traducido). |
Los registros de mysql_slow
contienen los siguientes campos en LogEntry
:
Campo | Tipo | Descripción |
---|---|---|
jsonPayload.bytesSent |
número | Número de bytes enviados a todos los clientes. |
jsonPayload.createdTmpDiskTables † |
número | Número de tablas temporales internas en el disco creadas por el servidor. |
jsonPayload.createdTmpTables † |
número | Número de tablas temporales internas creadas por el servidor. |
jsonPayload.createdTmpTableSizes † |
número | Número de bytes usados por las tablas temporales internas creadas por el servidor. |
jsonPayload.database |
cadena | Base de datos en la que se ejecutó la consulta |
jsonPayload.filesort † |
booleano | La instrucción usó filesort |
jsonPayload.filesortOnDisk † |
booleano | La instrucción ha usado filesort, que necesitaba tablas temporales en el disco. |
jsonPayload.fullJoin † |
booleano | La instrucción no ha usado un índice para unir tablas |
jsonPayload.fullScan † |
booleano | La instrucción ha usado un análisis de tabla completa |
jsonPayload.host |
cadena | Nombre de host desde el que se ha conectado el cliente. |
jsonPayload.ipAddress |
cadena | Dirección IP desde la que se conectó el cliente |
jsonPayload.lockTime |
número | Tiempo para adquirir los bloqueos en segundos. |
jsonPayload.message |
cadena | Texto completo de la consulta |
jsonPayload.priorityQueue † |
booleano | La instrucción ha usado una ordenación de archivos de cola de prioridad |
jsonPayload.queryCacheHit |
booleano | La instrucción se ha servido desde la caché de consultas |
jsonPayload.queryTime |
número | Tiempo de ejecución de la instrucción en segundos |
jsonPayload.rowsAffected |
entero | El número de filas afectadas por la instrucción |
jsonPayload.rowsExamined |
número | Número de filas examinadas por la capa del servidor. |
jsonPayload.rowsSent |
número | Número de filas enviadas al cliente. |
jsonPayload.sortMergePasses † |
número | Número de pasadas de combinación que ha tenido que realizar el algoritmo de ordenación. |
jsonPayload.storedRoutine |
cadena | El nombre de la rutina almacenada que se está ejecutando |
jsonPayload.tid |
número | ID de la conversación en la que se registró la consulta. |
jsonPayload.user |
cadena | Usuario autenticado que ha ejecutado la consulta. |
severity |
cadena (LogSeverity ) |
Nivel de entrada de registro (traducido). |
† Estos campos solo se proporcionan si la variable de sistema log_slow_verbosity
contiene 'query_plan'
.
Configurar recogida de métricas
Para ingerir métricas de MariaDB, debe crear un receptor para las métricas que genera MariaDB y, a continuación, crear una canalización para el nuevo receptor.
Este receptor no admite el uso de varias instancias en la configuración, por ejemplo, para monitorizar varios endpoints. Todas estas instancias escriben en la misma serie temporal y Cloud Monitoring no tiene forma de distinguirlas.
Para configurar un receptor de sus métricas de mysql
, especifique los siguientes campos:
Campo | Predeterminado | Descripción |
---|---|---|
collection_interval |
60s |
Un valor de duración, como 30s o 5m . |
endpoint |
/var/run/mysqld/mysqld.sock |
La ruta de socket hostname:port o Unix que empieza por / y se usa para conectarse al servidor MariaDB. |
password |
La contraseña que se usa para conectarse al servidor. | |
type |
Este valor debe ser mysql . |
|
username |
root |
Nombre de usuario utilizado para conectarse al servidor. |
Qué se monitoriza
En la siguiente tabla se muestra la lista de métricas que recoge el agente de Ops de la instancia de MariaDB.
Tipo de métrica | |
---|---|
Tipo Recursos monitorizados |
Etiquetas |
workload.googleapis.com/mysql.buffer_pool_data_pages
|
|
GAUGE , INT64 gce_instance |
status
|
workload.googleapis.com/mysql.buffer_pool_limit
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/mysql.buffer_pool_operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.buffer_pool_page_flushes
|
|
CUMULATIVE , INT64 gce_instance |
|
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.replica.sql_delay
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/mysql.replica.time_behind_source
|
|
GAUGE , INT64 gce_instance |
|
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
|
Verificar la configuración
En esta sección se describe cómo verificar que ha configurado correctamente el receptor de MariaDB. El agente de Ops puede tardar uno o dos minutos en empezar a recoger datos de telemetría.
Para verificar que los registros de MariaDB se envían a Cloud Logging, haz lo siguiente:
-
En la Google Cloud consola, ve a la página Explorador de registros:
Ve al Explorador de registros.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Registro.
- Introduce la siguiente consulta en el editor y 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ían a Cloud Monitoring, haz lo siguiente:
-
En la Google Cloud consola, ve a la página leaderboard Explorador de métricas:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.
- En la barra de herramientas del panel de creación de consultas, selecciona el botón cuyo nombre sea code MQL o code PromQL.
- Verifica que PromQL esté seleccionado en el interruptor Idioma. El interruptor de idioma se encuentra en la misma barra de herramientas que te permite dar formato a tu consulta.
- Introduce la siguiente consulta en el editor y haz clic en Ejecutar consulta:
{"workload.googleapis.com/mysql.threads", monitored_resource="gce_instance"}
Ver panel de control
Para ver las métricas de MariaDB, debe tener configurado un gráfico o un panel de control. MariaDB usa los mismos paneles que MySQL. Los paneles de control se instalan automáticamente después de configurar la integración y cuando el agente de Ops ha empezado a recoger datos de métricas.
También puedes ver vistas previas estáticas de los paneles de control sin instalar la integración.
Para ver un panel de control instalado, siga estos pasos:
-
En la Google Cloud consola, ve a la página
Paneles de control:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.
- Seleccione la pestaña Lista de paneles de control y, a continuación, elija la categoría Integraciones.
- Haga clic en el nombre del panel de control que quiera ver. MariaDB usa los mismos paneles de control que MySQL.
Si has configurado una integración, pero el panel de control no se ha instalado, comprueba que el agente de operaciones se esté ejecutando. Si no hay datos de métricas para un gráfico del panel de control, no se podrá instalar el panel. Una vez que el agente de Ops empiece a recoger métricas, se instalará el panel de control.
Para ver una vista previa estática del panel de control, siga estos pasos:
-
En la Google Cloud consola, ve a la página
Integraciones:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.
- Haz clic en el filtro de plataforma de implementación Compute Engine.
- Busca la entrada de MySQL y haz clic en Ver detalles. MariaDB usa los mismos paneles de control que MySQL.
- Seleccione la pestaña Paneles para ver una vista previa estática. Si el panel de control está instalado, puedes acceder a él haciendo clic en Ver panel de control.
Para obtener más información sobre los paneles de control de Cloud Monitoring, consulta Paneles de control y gráficos.
Para obtener más información sobre cómo usar la página Integraciones, consulta el artículo Gestionar integraciones.
Instalar políticas de alertas
Las políticas de alertas indican a Cloud Monitoring que te envíe una notificación cuando se produzcan las condiciones especificadas. MariaDB usa las mismas políticas de alertas que MySQL. Puedes ver e instalar estas políticas de alertas desde la página Integraciones de Monitoring.
Para ver las descripciones de las políticas de alertas disponibles e instalarlas, haz lo siguiente:
-
En la Google Cloud consola, ve a la página
Integraciones:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.
- Busca la entrada de MySQL y haz clic en Ver detalles. MariaDB usa las mismas políticas de alertas que MySQL.
- Selecciona la pestaña Alertas. En esta pestaña se ofrecen descripciones de las políticas de alertas disponibles y se proporciona una interfaz para instalarlas.
- Instala las políticas de alertas. Las políticas de alertas necesitan saber dónde enviar las notificaciones de que se ha activado una alerta, por lo que requieren información para la instalación.
Para instalar políticas de alertas, haz lo siguiente:
- En la lista de políticas de alertas disponibles, selecciona las que quieras instalar.
En la sección Configurar notificaciones, selecciona uno o varios canales de notificación. Puedes inhabilitar el uso de canales de notificación, pero si lo haces, tus políticas de alertas se activarán de forma silenciosa. Puedes consultar su estado en Monitorización, pero no recibirás ninguna notificación.
Para obtener más información sobre los canales de notificación, consulta el artículo Gestionar canales de notificación.
- Haz clic en Crear políticas.
Para obtener más información sobre las políticas de alertas en Cloud Monitoring, consulta la introducción a las alertas.
Para obtener más información sobre cómo usar la página Integraciones, consulta el artículo Gestionar integraciones.
Siguientes pasos
Para ver una guía sobre cómo usar Ansible para instalar el Agente de operaciones, configurar una aplicación de terceros e instalar un panel de control de ejemplo, consulta el vídeo Instalar el Agente de operaciones para solucionar problemas con aplicaciones de terceros.