![]() |
This article is currently under construction and is being expanded on a regular basis. |
![]() |
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. |
![]() |
Este artículo está actualmente en construcción y se amplía regularmente. |
1. Introducción
Checkmk te permite supervisar de forma exhaustiva Microsoft SQL Server (abreviado "MSSQL" en este artículo). Puedes encontrar una lista completa de todos los check plugins disponibles en nuestro Catálogo de Check Plugins.
Para poder monitorizar las bases de datos, sólo necesitas el plugin de agente mk-sql
además del agente Checkmk. A partir de Checkmk 2.3.0, este plugin de agente también puede monitorizar bases de datos en sistemas remotos. No se necesita ningún software adicional ni en el servidor Checkmk ni en el servidor de la base de datos.
El único requisito obligatorio para utilizar mk-sql
es que el protocolo TCP/IP esté activado en la configuración de red del servidor SQL. Si TCP/IP no está permitido o no se permite en el entorno de tu servidor MSSQL, hasta nuevo aviso tendrás que recurrir al Plugin heredadomssql.vbs
.
2. Configurar un inicio de sesión para la monitorización
El plugin de agente requiere acceso a tus instancias MSSQL. Por regla general, estará claro -mucho antes de que llegue el equipo de monitorización- cómo puede o puede ser ese acceso. En el caso de MSSQL, hay dos opciones: o utilizas exclusivamente el Windows Authentication mode o el modo mixto SQL Server and Windows Authentication mode. En las dos secciones siguientes, te explicamos qué debes tener en cuenta en estos procedimientos respectivos.
2.1. Utilizar el usuario del sistema (sólo Windows)
El agente Checkmk es ejecutado por el usuario del sistema (NT AUTHORITY\SYSTEM
) en los sistemas Windows. Si también puedes utilizar este usuario del sistema para la monitorización de MSSQL, sólo tienes que asegurarte de que este inicio de sesión tiene al menos permisos para los siguientes elementos protegibles (Securables):
View server state
Connect SQL
Dependiendo de cuáles sean las bases de datos de tus instancias que quieras monitorizar y de los roles y mapeos de servidor que ya tenga el usuario del sistema (NT AUTHORITY\SYSTEM
), puede que también sea necesario conceder permiso para Connect any database.
2.2. Utilizar una cuenta dedicada para la monitorización
También hay buenas razones para no ejecutar la monitorización de MSSQL a través del usuario del sistema Windows, siendo la más banal que no existe un usuario del sistema Windows en los sistemas Linux. Otras razones pueden ser los requisitos de seguridad de la empresa o simplemente el deseo de tener inicios de sesión dedicados y claramente denominados, cuyos significados y funciones puedan reconocerse fácilmente a partir de sus nombres.
Por supuesto, el plugin de agente también funciona con estos inicios de sesión.
El requisito básico en MSSQL es que el Server authentication esté configurado como SQL Server and Windows Authentication mode. Si no quieres o no puedes utilizar el usuario del sistema de Windows, este requisito ya debería haberse cumplido, pero este punto no debe pasar desapercibido.
Si no existe el usuario correspondiente en tu servidor MSSQL o en tu instancia, puedes crear uno utilizando Microsoft SQL Server Management Studio:

Este inicio de sesión requiere los siguientes permisos:
View server state
Connect SQL
Connect any database
Concede estos permisos en Object Explorer a través de Security > Logins. Abre las propiedades del inicio de sesión y haz clic en Securables. En Explicit encontrarás las tres entradas mencionadas anteriormente. Pon los correspondientes checkmarks en la columna Grant y confirma con OK.

Alternativamente, también puedes crear el usuario y los permisos a través de la línea de comandos. En el siguiente ejemplo, esto se hace para el usuario checkmk
:
mssql> USE master;
CREATE USER checkmk WITH PASSWORD = 'MyPassword123';
GO
y luego
mssql> USE master;
GRANT CONNECT SQL TO checkmk;
GRANT CONNECT ANY DATABASE TO checkmk;
GRANT VIEW ANY DATABASE TO checkmk;
GO
3. Configurar la conexión manualmente
Si utilizas Checkmk Raw o no quieres utilizar el Agent bakery de las ediciones comerciales, configura la comunicación manualmente.
Para el resto de la descripción, supondremos que el agente para la monitorización de Windows ya está instalado en el host.
3.1. Crear el archivo de configuración
En el host Windows, crea un archivo mk-sql.yml
en el directorio especificado a continuación:
Si utilizas el usuario del sistema, será suficiente:
---
mssql:
main:
authentication:
username: ''
type: integrated
Si por el contrario trabajas con la cuenta dedicada a la monitorización, necesitarás el siguiente contenido:
---
mssql:
main:
authentication:
username: checkmk
password: MyPassword123
type: sql_server
Si estás ejecutando varias instancias MSSQL con nombres de usuario y contraseñas individuales en el host, añade los detalles de estas instancias al archivo yml
según corresponda. Tu archivo yml
podría entonces tener este aspecto, por ejemplo:
---
mssql:
main:
authentication:
username: ""
type: integrated
instances:
- sid: myInstance 1
auth:
username: myUser1
password: "123456"
type: sql_server
- sid: myInstance 2
auth:
username: myUser2
password: "987654"
type: sql_server
3.2. Instalar el Plugin de agente
En Setup > Agents > Windows files encontrarás el archivo mk-sql.exe
en la sección Windows Agent.

Descarga el archivo y guárdalo en el host Windows en el directorio C:\ProgramData\checkmk\agent\plugins\
. A continuación, ejecuta el archivo una vez.
3.3. Configurar los servicios
Ahora que has instalado y configurado el plugin de agente, puedes realizar un descubrimiento de servicios para este host. La siguiente captura de pantalla muestra sólo una selección de los servicios que se pueden encontrar:

4. Configuración ampliada
4.1. Ejecución asíncrona del plugin de agente
El Plugin de agente para la monitorización de MSSQL puede ejecutarse -como tantos otros- de forma asíncrona, para tener en cuenta, por ejemplo, tiempos de ejecución más largos para instancias de MSSQL grandes.
Para ejecutar el plugin de agente de forma asíncrona en Windows, modifica la configuración del agente y añade la siguiente entrada a la sección execution
en plugins
:
plugins:
execution:
- pattern: mssql.vbs
cache_age: 300
async: yes
Puedes encontrar instrucciones detalladas que explican la ejecución asíncrona de plugins de agente en un host Windows en el artículo sobre el agente Windows.
4.2. Configurar umbrales
Monitorización de las conexiones
Puedes especificar tus propios umbrales para la utilización del número máximo de conexiones simultáneas especificadas por MSSQL, ya que dependen mucho más de la estructura de tu instancia MSSQL que con otros servicios. Puedes configurar los umbrales correspondientes en un abrir y cerrar de ojos utilizando una regla del conjunto de reglas MSSQL Connections.

Monitorización del tamaño de los archivos
También puedes definir umbrales para los tamaños de archivos individuales en MSSQL. Para ello, utiliza el conjunto de reglas MSSQL datafile sizes.

5. Configuración mediante el Agent bakery
La configuración se simplifica enormemente en las ediciones comerciales que utilizan la Agent bakery, ya que se evitan los errores de sintaxis en los archivos de configuración y se pueden hacer fácilmente ajustes a entornos cambiantes. La principal diferencia respecto a una instalación manual es que sólo tendrás que trabajar en el host MSSQL en la línea de comandos si quieres hacer configuraciones especiales específicas de MSSQL.
Para la configuración inicial, basta con crear una regla correspondiente en el Agent bakery. Puedes encontrar el conjunto de reglas en Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules.. A continuación, puedes buscar mssql
en el campo de búsqueda:

Dependiendo de cómo se permita al plugin de agente iniciar sesión en tu servidor SQL (consulta Configurar un inicio de sesión para monitorización), selecciona la opción adecuada en Authentication. Si utilizas el usuario del sistema (NT AUTHORITY\SYSTEM
), deja la selección en Local Integrated Authentication (Windows).

En cambio, si utilizas la autenticación del servidor SQL, selecciona la opción SQL Database User Credentials, introduce también el Login name en el campo User y añade el Password correspondiente .
Si estás ejecutando varias instancias MSSQL con diferentes nombres de usuario y contraseñas en el host, selecciona la opción Custom instances. Utiliza Add new element para acceder a los datos de la primera instancia -y luego de cada instancia adicional- que se vaya a monitorizar. Introduce aquí los datos de acceso de cada instancia, como se ha descrito anteriormente.

5.1. Otras opciones
Con los ajustes que acabas de hacer, creas primero un agente sencillo para monitorizar tu instancia MSSQL, que se encuentra directamente en el host. Todos los datos disponibles se evalúan directamente en Checkmk y esto debería ser suficiente para una configuración estándar. Sin embargo, si tienes un mundo MSSQL más complejo en tu organización, hay más opciones, tanto para monitorizar la base de datos en el mismo host como para monitorizarla en un host remoto. Éstas son básicamente las mismas para ambos tipos de conexión.
Opción | Función |
---|---|
Connection |
Si necesitas datos de conexión más específicos para la conexión general al servidor MS SQL, puedes introducirlos aquí. |
Data to collect (Sections) |
Aquí puedes restringir sección por sección qué datos deben recogerse o si deben recogerse de forma sincrónica o asincrónica. |
Cache age for asynchronous checks |
Puedes cambiar el periodo de caché en segundos para los checks asíncronos previamente definidos. |
Map data to specific host (Piggyback) |
Los datospiggyback pueden asignarse a un host independientemente de la fuente real. Por ejemplo, la información SQL puede separarse de los datos del servidor Windows subyacente. |
Discovery mode of databases |
Ajustes para la búsqueda de instancias. |
Custom instances |
Además de los ajustes generales para acceder a tu MS SQL Server, aquí puedes realizar tus propios ajustes para instancias específicas. |
Options |
Aquí se puede establecer el número máximo de conexiones paralelas a SQL Server. |
6. Opciones de diagnóstico
6.1. Posibles errores y mensajes de error
Mensaje de error: Error al reunir instancias de SQL Server
Check whether the TCP/IP connection is configured and working.
7. Ficheros y directorios
7.1. En el host MSSQL (Windows)
Ruta del archivo | Contenido |
---|---|
|
Directorio para almacenar los Plugin de agente. |
|
Fichero de configuración del Plugin de agente. |
7.2. En el host MSSQL (Linux)
Ruta del archivo | Contenido |
---|---|
|
Directorio para almacenar los Plugin de agente. |
|
Fichero de configuración del Plugin de agente. |
7.3. En el servidor Checkmk
Ruta del archivo | Contenido |
---|---|
|
Plugin de agente que debes copiar en tus host Windows para monitorizar MS SQL. |
|
Plugin de agente que debes copiar en tus hosts Linux para monitorizar MS SQL. |