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. Prefacio

El plugin de agente mssql.vbs para la monitorización de Microsoft SQL Server que se describe en este artículo ha sido sustituido y pronto se eliminará de Checkmk (véase Werk #15844). Si la configuración de red de tu servidor SQL Server permite el acceso a través de TCP/IP, te recomendamos que utilices el nuevo plugin de agente mk-sql. En el artículo Supervisión de Microsoft SQL Server te explicamos cómo configurar y utilizar el nuevo plugin de agente.

2. Introducción

Checkmk te permite realizar la monitorización de forma exhaustiva de Microsoft SQL Server. Encontrarás una lista completa de las opciones de monitorización en nuestro Catálogo de check plugins. Entre otras cosas, Checkmk puede realizar la monitorización de los siguientes valores:

Para poder monitorizar las bases de datos, solo necesitas el plugin de agente en el servidor de la base de datos, además del agente Checkmk. No se necesita ningún software adicional ni en Checkmk ni en el servidor de la base de datos.

A continuación se describe la configuración para hosts Windows. Más adelante veremos cómo configurarlo a través de Agent bakery.

3. Configuración de la monitorización

3.1. Uso de la cuenta LocalSystem

Si puedes usar la cuenta LocalSystem (NT AUTHORITY\SYSTEM) para la monitorización, ten en cuenta que, como mínimo, esta cuenta (inicio de sesión) requiere los siguientes elementos de seguridad (Securables):

  • Connect any database

  • View Server State

  • Connect SQL

Dependiendo de qué bases de datos de tu instancia quieras realizar la monitorización y también de qué roles de servidor y mapeos tenga ya la cuenta LocalSystem, puede que también sea necesario conceder permisos a Connect any database.

3.2. Digresión: Configuración de un nuevo usuario

Si es absolutamente necesario que no se utilice la cuenta LocalSystem en tu organización, debes crear un usuario adecuado para la monitorización de bases de datos en las instancias que se van a supervisar. El requisito básico en MSSQL es que el Server authentication esté configurado en SQL Server and Windows Authentication mode. Si no puedes utilizar la cuenta LocalSystem de Windows, este requisito ya debería estar cumplido, pero no debe dejarse sin mencionar.

Ahora inicia sesión en MSSQL con un usuario que tenga permisos de acceso suficientes en MSSQL y crea un nuevo usuario de base de datos a través de Microsoft SQL Server Management Studio:

Selecting the 'New Login...' option in MSSQL.

Este usuario recién creado necesita el permiso mencionado anteriormente. Ve a Object Explorer, abre Security > Logins y, a continuación, las propiedades del inicio de sesión que has configurado para el plugin de agente. En «Securables» encontrarás el permiso explícito «Connect any database», que debes conceder.

Grant permission 'Connect any database'.

Como alternativa, también puedes crear el usuario y los permisos a través de la línea de comandos. En el siguiente ejemplo, esto se ha hecho para el usuario checkmk:

mssql> USE master;
      CREATE USER checkmk WITH PASSWORD = 'MyPassword123';
      GO
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

y luego:

mssql> USE master;
      GRANT CONNECT ANY DATABASE TO checkmk;
      GO
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Crear un archivo de configuración

En el host de Windows, crea un archivo en el directorio que se indica a continuación con el nombre «mssql.ini»:

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

Si estás ejecutando varias instancias de MSSQL con diferentes nombres de usuario y contraseñas en el host, simplemente crea un archivo «ini» para cada instancia siguiendo el esquema de nomenclatura «mssql_instance-ID.ini».

3.3. Instalación del plugin de agente

El agente de Windows incluye de serie toda una gama de Plugins. Por lo tanto, tras instalar el agente, también encontrarás el plugin para la monitorización de MSSQL en tu host. Para utilizarlo, solo tienes que copiarlo en el directorio correcto:

PS> copy "c:\Program Files (x86)\checkmk\service\plugins\mssql.vbs" c:\ProgramData\checkmk\agent\plugins\
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

3.4. Configuración de servicios

Ahora que has instalado y configurado el Plugin, puedes realizar un descubrimiento de servicios para este host. La siguiente captura de pantalla muestra solo una selección de los servicios que se pueden encontrar:

Excerpt from the service discovery results.

4. Configuración avanzada

4.1. Ejecución asíncrona del plugin de agente

El Plugin para la monitorización de MSSQL puede, como tantos otros, ejecutarse de forma asíncrona, por ejemplo, para tener en cuenta los tiempos de ejecución más largos de las instancias grandes de MSSQL.

Para ejecutar el Plugin de forma asíncrona en Windows, personaliza la configuración del agente y añade la siguiente entrada a la sección «execution» en «plugins»:

C:\ProgramData\Checkmk\agent\check_mk.user.yml
plugins:
    execution:
        - pattern: mssql.vbs
          cache_age: 300
          async: yes
Copiar el contenido del archivo al portapapeles
¡Contenido del archivo copiado correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Puedes encontrar instrucciones detalladas sobre la ejecución asíncrona de Plugins en un host Windows en el artículo sobre el agente de Windows.

4.2. Configuración de los valores umbrales

Monitorización de conexiones

Puedes especificar tus propios valores de umbral para la utilización del número máximo de conexiones simultáneas especificado por MSSQL, ya que estos dependen mucho más de la estructura de tu instancia de MSSQL que en otros servicios. Puedes configurar los valores de umbral adecuados en un santiamén utilizando una regla del conjunto de reglas «MSSQL Connections».

Setting the upper thresholds for active connections.

Monitorización del tamaño de los archivos

También puedes definir valores umbral para el tamaño de archivos individuales en MSSQL. Para ello, utiliza el conjunto de reglas «MSSQL datafile sizes».

Setting the file sizes used.

5. Configuración mediante Agent bakery

CEE La configuración se ha simplificado mucho en las ediciones comerciales gracias al uso de Agent bakery. Esto simplifica considerablemente el proceso de configuración, 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 tienes que trabajar en el host MSSQL desde la línea de comandos si quieres realizar configuraciones específicas de MSSQL.

Para la configuración inicial, basta con configurar el usuario de la base de datos en el host MSSQL y crear la regla correspondiente en Agent bakery. Encontrarás el conjunto de reglas en «Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules». A continuación, busca «mssql» en el campo de búsqueda:

The rule 'Microsoft SQL Server' in the agent rules.

En la nueva regla de la sección «Microsoft SQL Server (Windows)», lo ideal es seleccionar la opción «System Authentication» para una conexión sencilla y sin problemas.

Possible settings for the MSSQL Server in the Agent Bakery.

Si, por el contrario, optas por la opción «Database User Credentials», también debes introducir User ID y Password para el usuario de la base de datos deseado (por ejemplo, el usuario que creaste anteriormente).

6. Opciones de diagnóstico

Si, por ejemplo, se producen comportamientos inesperados o problemas al configurar la monitorización, es recomendable comprobarlo directamente en el host afectado. Como el plugin para la monitorización de MSSQL es un script de shell o Visual Basic, se puede ejecutar fácilmente sin el agente. Solo hay que indicar previamente al shell o a la línea de comandos el directorio de configuración correspondiente.

Para poder ejecutar el Plugin manualmente, primero abre una línea de comandos con derechos de administrador y configura la variable del entorno MK_CONFDIR en esta línea de comandos. Esto es necesario para que el Plugin pueda encontrar los archivos de configuración.

PS> set MK_CONFDIR=c:\ProgramData\checkmk\agent\config
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Nota: Aquí tampoco se establece la variable del entorno de forma permanente, sino que solo es válida mientras la línea de comandos esté abierta.

Durante la ejecución real del Plugin, se recomienda redirigir la salida a la línea de comandos. Windows proporciona la herramienta cscript para este fin.

PS> cscript c:\ProgramData\checkmk\agent\plugins\mssql.vbs
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

6.1. Posibles errores y mensajes de error

No se ha podido establecer la conexión con la base de datos

Hay tres controladores diferentes con los que Checkmk intenta establecer una conexión a la base de datos MSSQL: msoledbsql, sqloledb y sqlncli11.

Por defecto, los tres controladores suelen estar disponibles y se prueban uno tras otro al establecer una conexión. En algunas circunstancias, este proceso sucesivo puede dar lugar a mensajes de error. En ese caso, es posible que tengas que eliminar uno o incluso dos de los controladores mencionados de la sintaxis de la llamada.

mssql.vbs: «no se ha encontrado ninguna copia de seguridad»

Si un complemento informa de que «no se ha encontrado ninguna copia de seguridad», primero debes comprobar manualmente si hay alguna copia de seguridad disponible. Si existe una copia de seguridad y el problema persiste, puede deberse a las convenciones de nomenclatura del lado de MSSQL.

Checkmk siempre interpreta los nombres del host en minúsculas, pero si el host los transmite en mayúsculas durante las copias de seguridad, por ejemplo, surgirán problemas de comunicación.

Puedes entonces checkear el valor de la opción «serverproperty('collation')» en el lado de MSSQL. Si, por ejemplo, aquí está configurado «SQL_Latin1_General_CP1_CS_AS», entonces «CS» significa «distingue mayúsculas y minúsculas». El Plugin no puede convertir entonces el nombre del host y pueden surgir problemas debido a la ortografía. Cambiarlo a «SQL_Latin1_General_CP1_CI_AS», es decir, a «CI» para «no distingue mayúsculas y minúsculas», debería resolver este problema.

Como alternativa, también podrías cambiar la ortografía del nombre original del servidor MSSQL. Sin embargo, esto no siempre es posible en todas las empresas y en todos los entornos.

7. Archivos y directorios

7.1. En el host MSSQL

Ruta del archivo Contenido

C:\ProgramData\checkmk\agent\plugins\

Directorio de Plugins

C:\ProgramData\checkmk\agent\config\

Directorio de configuración

7.2. En el servidor Checkmk

Ruta del archivo Contenido

~/share/check_mk/agents/plugins/mssql

El Plugin que recupera los datos del host MSSQL.


Last modified: Tue, 20 Jan 2026 15:14:32 GMT via commit 561e6d8c8
En esta página