Checkmk
to checkmk.com
Important

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:

mysql> CREATE USER 'checkmk'@'localhost' IDENTIFIED BY 'MyPassword';
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

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:

mysql> GRANT SELECT, SHOW DATABASES ON *.* TO 'checkmk'@'localhost';
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

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:

mysql> GRANT REPLICATION CLIENT ON *.* TO 'checkmk'@'localhost';
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

2.2. Instalación del Plugin

Linux
Windows
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:

root@linux# chmod 700 mk_mysql
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Por supuesto, este Plugin también se puede ejecutar de forma asíncrona si es necesario.

Windows

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
Windows
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:

/etc/check_mk/mysql.cfg
[client]
user=checkmk
password=MyPassword
Copiar el contenido del archivo al portapapeles
¡Contenido del archivo copiado correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Guardar los datos de acceso con el siguiente comando te protege contra el acceso no autorizado:

root@linux# chmod 400 mysql.cfg
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!
Windows

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:

mysql discovery

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
Windows
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

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:

C:\ProgramData\Checkmk\agent\config\mysql.ini
[client]
user=checkmk
password=MyPassword
*socket=/var/run/mysqld/mysqld.sock*
Copiar el contenido del archivo al portapapeles
¡Contenido del archivo copiado correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

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:

C:\ProgramData\Checkmk\agent\config\mysql.ini
[client]
user=checkmk
password=MyPassword
*host=127.0.0.1*
Copiar el contenido del archivo al portapapeles
¡Contenido del archivo copiado correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

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.

mysql sessions connections

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.

mysql connections

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.

mysql size database

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:

/etc/check_mk/logwatch.cfg
/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 ended

4. Configuraciones con Agent bakery

CEE 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:

mysql bakery ruleset search

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.

mysql bakery

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
Windows
Linux

Primero checa los directorios aplicables para tu host respectivo.

user@host:~$  grep 'export MK' /usr/bin/check_mk_agent
export MK_LIBDIR='/usr/lib/check_mk_agent'
export MK_CONFDIR='/etc/check_mk'
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Ahora usa el comando export para crear las variables del entorno MK_CONFDIR y MK_LIBDIR. Personaliza los comandos según tus directorios reales.

root@linux# export MK_CONFDIR="/etc/check_mk/"
root@linux# export MK_LIBDIR="/usr/lib/check_mk_agent"
Copiar comandos al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!
Tip

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_mysql directamente en el directorio de plugins del agente Checkmk.

root@linux# $MK_LIBDIR/plugins/mk_mysql
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

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

5.1. Posibles errores y mensajes de error

mysqladmin: error al intentar establecer la conexión al servidor en xyz

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 checkmk
No se muestra el tamaño de la base de datos

Si 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:

mysql> show grants for 'checkmk'@'localhost';

+--------------------------------------------------------------------------+
| Grants for checkmk@localhost                                             |
+--------------------------------------------------------------------------+
| GRANT SELECT, SHOW DATABASES ON *.* TO `checkmk`@`localhost`             |
+--------------------------------------------------------------------------+
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

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
Windows
Linux
Ruta del archivo Función

/usr/bin/check_mk_agent

El 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.cfg

El archivo de configuración del Plugin de MySQL.

/etc/check_mk/mysql.local.cfg

Archivo de configuración adicional para especificar sockets específicos del host.

Windows

6.2. En el servidor Checkmk

Ruta del archivo Función

~/share/check_mk/agents/plugins/mk_mysql

El Plugin que recupera los datos del host MySQL.


Last modified: Fri, 06 Feb 2026 07:13:00 GMT via commit e3b1403cf
En esta página