This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved. |
1. Introducción
Checkmk te permite realizar la monitorización exhaustiva de los clústeres de MySQL y Galera para MySQL. Puedes encontrar una lista completa de opciones de monitorización en nuestro Catálogo de check plugins de Checkmk. Entre otras cosas, Checkmk puede realizar la monitorización de lo siguiente:
Para poder monitorizar las bases de datos, además del agente Checkmk, solo necesitas el plugin de agente en el servidor de la base de datos. No se requiere ningún software adicional ni en Checkmk ni en el servidor de la base de datos.
A continuación, describiremos cómo configurar la monitorización de MySQL para hosts Linux y Windows. Más adelante veremos cómo configurarlo usando Agent bakery.
2. Configuración de la monitorización
2.1. Creación de un usuario
El único requisito para configurar la monitorización en MySQL es que haya un usuario de la base de datos y su contraseña disponibles. Este usuario solo necesita derechos de lectura para las instancias de MySQL. Si aún no existe dicho usuario, créalo en las instancias que se van a supervisar. Para ello, inicia sesión en MySQL con un usuario que tenga los derechos de acceso suficientes y, a continuación, crea un nuevo usuario de la base de datos:
Este usuario recién creado necesita permiso para leer las instancias.
Por lo tanto, check si el usuario tiene los permisos necesarios o añádelos con el siguiente comando.
El siguiente ejemplo lo hace para el usuario checkmk:
Si utilizas la replicación de MySQL, el usuario debe tener al menos el permiso REPLICATION CLIENT para realizar la monitorización del servidor de réplica:
2.2. Instalación del Plugin
- Linux
El Plugin necesario «
mk_mysql» lo puedes encontrar en tu servidor Checkmk en Setup > Linux, Solaris, AIX files > Plugins o, si lo prefieres, en el directorio~/share/check_mk/agents/plugins/.Como primer paso, copia este plugin en el directorio de complementos del agente del host que se va a someter a monitorización. El directorio de complementos suele ser
/usr/lib/check_mk_agent/plugins/. En cuanto el script esté en el directorio especificado, hazlo ejecutable:Por supuesto, este Plugin también se puede ejecutar de forma asíncrona si es necesario.
- Windows
El agente para Windows incluye varios Plugins de serie. Por eso, tras instalar el agente, también encontrarás el Plugin para la monitorización de MySQL en tu host. Solo tienes que copiarlo en el directorio correcto para poder utilizarlo.
2.3. Creación del archivo de configuración
El archivo de configuración que crees a continuación —o a través de Agent bakery— se utiliza como única fuente para los ajustes de monitorización de MySQL. Checkmk no tiene en cuenta ningún otro ajuste de configuración que pueda existir localmente.
- Linux
A continuación, crea un archivo con el nombre «
mysql.cfg» en el directorio de configuración (por defecto: «/etc/check_mk/») del agente Checkmk en el host de destino.El agente puede recuperar la información deseada de tu instancia de MySQL utilizando los datos de usuario introducidos en él. Aunque la especificación de un usuario de la base de datos es opcional, te la recomendamos, ya que el agente suele ejecutar el Plugin como el usuario del sistema
root. Si no se especifica ningún nombre de usuario de la base de datos, el cliente MySQL intentará acceder a la base de datos con el nombre de usuario del usuario del sistema que lo ejecuta sin usar contraseña, o usando la contraseña almacenada en.mylogin.cnf. Puedes encontrar más información, por ejemplo, en la documentación de MySQL.Esto se hace en el formato habitual de los archivos de configuración de MySQL:
Guardar los datos de acceso con el siguiente comando te protege contra el acceso no autorizado:
- Windows
En un host de Windows, crea un archivo llamado «
mysql.ini» en el siguiente directorio:Si ejecutas varias instancias de MySQL con diferentes nombres de usuario y contraseñas en el host, simplemente crea un archivo «
.ini» por cada instancia utilizando el siguiente esquema de nomenclatura:mysql_INSTANCE-ID.ini
2.4. Creación de servicios
Ahora que has instalado y configurado el Plugin, puedes realizar el descubrimiento de servicios para este host. La siguiente captura de pantalla muestra solo una selección de los servicios que se pueden encontrar:

3. Configuración avanzada
3.1. Ejecutar un Plugin de forma asíncrona
El Plugin para la monitorización de MySQL, como tantos otros, se puede ejecutar de forma asíncrona, por ejemplo, para tener en cuenta tiempos de ejecución más largos en instancias grandes de MySQL.
- Linux
En un host Linux, el Plugin solo se mueve a un subdirectorio del directorio de Plugins. Por ejemplo, si solo quieres ejecutar el Plugin cada 5 minutos, simplemente mueve el script «
mk_mysql» a un subdirectorio llamado «300». Puedes encontrar instrucciones detalladas sobre la ejecución asíncrona de Plugins en el artículo sobre el agente de Linux.- Windows
Para ejecutar el Plugin de forma asíncrona en Windows, ajusta la configuración del agente y amplía la sección «
execution» dentro de «plugins» con la siguiente entrada:Puedes encontrar instrucciones detalladas para la ejecución asíncrona de Plugins en un host Windows en el artículo sobre el agente de Windows.
3.2. Opciones adicionales para los archivos de configuración
Configuración de la comunicación con MySQL a través de socket
En lugar de dejar que el agente se comunique con MySQL a través de TCP, puedes indicar a Checkmk que utilice el socket.
Para ello, solo tienes que definir la variable «socket» en el archivo «mysql.cfg».
Aquí tienes un ejemplo del archivo de configuración de Windows:
Definición manual de hosts
Además, también es posible configurar el host de MySQL manualmente a través de los archivos de configuración.
La variable correspondiente se llama simplemente «host».
De nuevo, usando el ejemplo de Windows:
3.3. Configuración de umbrales
Sesiones de monitorización
Algunas de las comprobaciones configuradas de esta manera no tienen valores de umbral preestablecidos. Esto suele ocurrir porque no hay valores por defecto razonables que sean suficientes en la mayoría de los casos. Sin embargo, se pueden configurar en unos pocos pasos sencillos.
Por ejemplo, en «Service monitoring rules» encontrarás la regla «MySQL sessions & connections». Esto se puede usar para definir valores de umbral significativos para el servicio «MySQL sessions» de tu instancia de MySQL.

Monitorización de conexiones
Tampoco hemos especificado ningún valor umbral para la utilización del número máximo de conexiones simultáneas especificado por MySQL, ya que estos dependen mucho más de la estructura de tu instancia de MySQL que de otros servicios.
El establecimiento de los valores umbral correspondientes se puede realizar en un santiamén con una regla del conjunto de reglas MySQL connections. Lo mismo ocurre con la cantidad de conexiones abiertas.

Monitorización del tamaño de las bases de datos
El tamaño de las bases de datos individuales en MySQL se monitoriza mediante el plugin MySQL: Capacity check. Los valores umbral para este plugin se pueden determinar con la regla MySQL database sizes.

3.4. Monitorización de archivos de registro
Con la ayuda del check plugin de logwatch, también puedes realizar la monitorización de los archivos de registro generados por MySQL en busca de errores.
Después de configurar el plugin, comprueba primero dónde se encuentran los archivos de registro correspondientes en tu instancia de MySQL.
Su ubicación exacta se puede encontrar en el archivo .ini o .cnf de tu instancia.
Puedes introducir los registros que te interesan en el archivo de configuración de logwatch y realizar las siguientes entradas, por ejemplo, en un host Linux:
/var/log/mysql/error.log
W Can't create/write to file
C [ERROR] Can't start server
C mysqld_safe mysqld from pid file /var/run/mysql/mysqld.pid ended4. Configuraciones con Agent bakery
La configuración se simplifica mucho con Agent bakery, ya que se evitan los errores de sintaxis en los archivos de configuración
y se pueden realizar fácilmente adaptaciones a entornos cambiantes.
La principal diferencia con respecto a una instalación manual es que solo para configuraciones especiales específicas de MySQL tienes que trabajar en el host de MySQL desde su línea de comandos.
Para la configuración inicial, basta con que configures el usuario de la base de datos en el host de MySQL y crees la regla correspondiente en Agent bakery.
Encontrarás el conjunto de reglas en Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules.
A continuación, puedes buscar «mysql» en el campo de búsqueda:

Introduce el ID de usuario y la contraseña del nuevo usuario de la base de datos. En el siguiente campo puedes configurar el agente Checkmk para hosts Linux de modo que no establezca la conexión con MySQL a través de TCP, sino a través del socket. Dependiendo del tamaño y la utilización, esto puede contribuir a un mejor rendimiento.
También se puede definir una versión asíncrona del Plugin MySQL utilizando este conjunto de reglas. Esto puede ser útil para tener en cuenta tiempos de ejecución más largos con instancias MySQL grandes, o si simplemente no se requieren los datos de estado cada minuto.

5. Opciones de diagnóstico
Si, por ejemplo, surgen comportamientos inesperados o problemas al configurar la monitorización, se recomienda comprobarlo directamente en el host afectado. Dado que los complementos para la monitorización de MySQL tanto en Linux como en Windows son scripts de shell o Visual Basic, se pueden ejecutar fácilmente sin el agente. Independientemente del sistema operativo que se utilice, solo es necesario indicar el directorio de configuración correspondiente al shell o a la línea de comandos.
- Linux
Primero checa los directorios aplicables para tu host respectivo.
Ahora usa el comando export para crear las variables del entorno
MK_CONFDIRyMK_LIBDIR. Personaliza los comandos según tus directorios reales.
Estas variables del entorno solo existen en el shell actualmente abierto y desaparecen en cuanto lo cierres.
A continuación, puedes ejecutar el script
mk_mysqldirectamente en el directorio de plugins del agente Checkmk.Si se han concedido correctamente todos los permisos al usuario de la base de datos, ahora deberías ver varios cientos de líneas de salida, incluso en un entorno MySQL pequeño y nuevo.
- Windows
Para poder ejecutar manualmente el check plugin en un host de Windows, primero abre una línea de comandos con derechos de administrador. Ahora configura la variable del entorno
MK_CONFDIRen esta línea de comandos. Esto es necesario para que el check plugin pueda encontrar tus archivos de configuración.
Aquí tampoco la variable del entorno que se configura es permanente, sino que solo existe mientras la línea de comandos esté abierta.
Durante la ejecución real del Plugin, es recomendable redirigir la salida a la línea de comandos. Windows proporciona la herramienta integrada
cscriptpara este fin.
5.1. Posibles errores y mensajes de error
El mensaje de error «connect to server at xyz failed» indica que el usuario especificado en el archivo de configuración no tiene acceso a MySQL.
Check primero que no se hayan producido errores de transmisión al crear el archivo de configuración (mysql.cfg o mysql.ini).
Si el nombre de usuario o la contraseña especificados en el archivo de configuración son incorrectos, recibirás un mensaje de error similar al siguiente:
Access denied for user checkmkSi ves toda una serie de datos de tu instancia de MySQL en Checkmk, pero no hay ningún servicio que realice la monitorización del tamaño de las bases de datos que contiene,
esto indica que el usuario de la base de datos no tiene el permiso «SELECT».
Check tu usuario de la base de datos en MySQL con el siguiente comando:
Si la palabra clave «SELECT» no aparece en tu salida, concede al usuario de la base de datos los derechos adecuados tal y como se especifica en la sección de configuración de usuarios.
6. Archivos y directorios
6.1. En el host MySQL
- Linux
Ruta del archivo Función /usr/bin/check_mk_agentEl agente que recopila todos los datos sobre el host.
/usr/lib/check_mk/plugins/El directorio habitual en el que se guardan los Plugins.
/etc/check_mk/mysql.cfgEl archivo de configuración del Plugin de MySQL.
/etc/check_mk/mysql.local.cfgArchivo de configuración adicional para especificar sockets específicos del host.
- Windows
Ruta del archivo Función C:\ProgramData\checkmk\agent\plugins\El directorio habitual en el que se almacenan los Plugins.
C:\ProgramData\checkmk\agent\config\El directorio de configuración habitual.
6.2. En el servidor Checkmk
| Ruta del archivo | Función |
|---|---|
|
El Plugin que recupera los datos del host MySQL. |
