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 antiguo complemento (mssql.vbs) para la monitorización de Microsoft SQL Server ha sido sustituido. Si tu configuración de red de SQL Server permite el acceso a través de TCP/IP, te recomendamos que utilices el nuevo complemento.

Explicamos cómo configurar y utilizar el nuevo plugin en el artículo Monitorización de Microsoft SQL Server

mssql.vbs se eliminará con la versión 2.4.0 de Checkmk (consulta el trabajo nº 15844).

2. Introducción

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

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

A continuación se describe la configuración para hosts Windows. Más adelante pasaremos a la configuración mediante el Agent bakery.

3. Configuración de la monitorización

3.1. Utilizar el usuario del sistema

Si puedes utilizar el usuario del sistema (NT AUTHORITY\SYSTEM) para la monitorización, ten en cuenta que, como mínimo, este inicio de sesión requiere las siguientes autorizaciones Securables:

  • Connect any database

  • View Server State

  • Connect SQL

Dependiendo de las bases de datos de tu instancia que quieras monitorizar y también de los roles y mapeos de servidor que ya tenga el usuario del sistema (NT AUTHORITY\SYSTEM), puede que también sea necesario conceder autorización para Connect Any Database.

3.2. Digresión: Configurar un nuevo usuario

Si es absolutamente necesario que en tu organización no se utilice el usuario del sistema, debes crear un usuario de monitorización de la base de datos adecuado en las instancias que se van a monitorizar. El requisito básico en MSSQL es que el Server authentication esté configurado como SQL Server and Windows Authentication mode. Si no puedes utilizar el usuario del sistema de Windows, este requisito ya debería haberse cumplido, pero no por ello debe dejar de mencionarse.

Ahora inicia sesión en MSSQL con un usuario con suficientes autorizaciones de acceso 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 requiere la autorización mencionada. 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 la autorización explícita Connect any database, que debes conceder.

Grant permission 'Connect any database'.

Alternativamente, también puedes crear el usuario y las autorizaciones 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

y luego:

mssql> USE master;
      GRANT CONNECT ANY DATABASE TO checkmk;
      GO

Crear un archivo de configuración

En el host Windows, crea un archivo en el directorio especificado a continuación con el nombre mssql.ini:

C:\ProgramData\checkmk\agent\config\mssql.ini
[client]
user=checkmk
password=MyPassword123

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

3.3. Instalación del Plugin de agente

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

PS> copy "c:\Program Files (x86)\checkmk\service\plugins\mssql.vbs" c:\ProgramData\checkmk\agent\plugins\

3.4. Configurar los servicios

Ahora que has instalado y configurado el Plugin, 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:

Excerpt from the service discovery results.

4. Configuración ampliada

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 tiempos de ejecución más largos en instancias de MSSQL grandes.

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 con la siguiente entrada:

C:\ProgramData\checkmk\agent\check_mk.usuario.yml
plugins:
    execution:
        - pattern: mssql.vbs
          cache_age: 300
          async: yes

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

4.2. Configurar los valores umbrales

Monitorización de las conexiones

Puedes especificar tus propios valores 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 valores umbrales adecuados en un abrir y cerrar de ojos 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 umbrales 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 el Agent bakery

La configuración se ha simplificado enormemente en las ediciones comerciales mediante el uso de la Agent bakery. Esto simplifica significativamente 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 una instalación manual es que sólo tienes que trabajar en el host MSSQL en la línea de comandos si quieres realizar configuraciones especiales 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 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:

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

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

Possible settings for the MSSQL Server in the Agent Bakery.

Si, en cambio, optas por la opción Database User Credentials, deberás introducir también 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 aconsejable comprobarlo directamente en un host afectado. Como el plugin para la monitorización de MSSQL es un shell o un script de Visual Basic, puede ejecutarse fácilmente sin el agente. Sólo es necesario que el shell o la línea de comandos conozcan de antemano el directorio de configuración correspondiente.

Para poder ejecutar el Plugin manualmente, abre primero una línea de comandos con derechos de administrador, y establece 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

Nota: En este caso, la variable del entorno tampoco se establece de forma permanente, sino que sólo es válida mientras esté abierta esta línea de comando.

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

PS> cscript c:\ProgramData\checkmk\agent\plugins\mssql.vbs

6.1. Posibles errores y mensajes de error

Error de conexión a la base de datos

Existen tres controladores diferentes con cuya ayuda Checkmk intenta conectarse alternativamente 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, por lo que 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 copia de seguridad"

Si un Plugin informa de que "no se ha encontrado copia de seguridad", primero debes comprobar manualmente si hay una 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 comprobar entonces el valor de serverproperty('collation') en el lado MSSQL. Si, por ejemplo, SQL_Latin1_General_CP1_CS_AS está configurado aquí, entonces CS significa "Sensible a mayúsculas y minúsculas". El Plugin no puede entonces convertir el nombre del host y pueden producirse problemas debidos a la ortografía. Cambiar a SQL_Latin1_General_CP1_CI_AS, es decir, a CI para "Insensible a mayúsculas y minúsculas" debería solucionar este problema.

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

7. Ficheros y directorios

7.1. En el host MSSQL

Ruta del archivo Contenido

C:\ProgramData\checkmk\agent\plugins\

Directorio del Plugin

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 obtiene los datos del host MSSQL.

En esta página