Checkmk
to checkmk.com
Tip

This article is currently under construction and is being expanded on a regular basis.

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.

Tip

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:

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

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.

Grant 'Connect any database' permission.

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:

C:\ProgramData\checkmk\agent\config\mk-sql.yml
---
mssql:
  main:
    authentication:
      username: ''
      type: integrated

Si por el contrario trabajas con la cuenta dedicada a la monitorización, necesitarás el siguiente contenido:

C:\ProgramData\checkmk\agent\config\mk-sql.yml
---
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:

C:\ProgramData\checkmk\agent\config\mk-sql.yml
---
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.

Selection of the Checkmk agent plug-in.

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:

Extract from the service discovery.

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:

C:\ProgramData\checkmk\agent\check_mk.usuario.yml
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.

Setting the upper thresholds for active 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.

Setting the file sizes used.

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:

The rule 'Microsoft SQL Server (Linux, Windows)' in the agent rules.

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

Possible settings for the MSSQL server in the agent bakery.

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.

Multiple MSSQL instances in the Bakery rule.

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

C:\ProgramData\checkmk\agent\plugins\

Directorio para almacenar los Plugin de agente.

C:\ProgramData\checkmk\agent\config\mk-sql.yml

Fichero de configuración del Plugin de agente.

7.2. En el host MSSQL (Linux)

Ruta del archivo Contenido

/usr/lib/check_mk_agent/plugins/

Directorio para almacenar los Plugin de agente.

/etc/check_mk/mk-sql.yml

Fichero de configuración del Plugin de agente.

7.3. En el servidor Checkmk

Ruta del archivo Contenido

~/share/check_mk/agents/windowss/mk-sql.exe

Plugin de agente que debes copiar en tus host Windows para monitorizar MS SQL.

~/share/check_mk/agents/linux/mk-sql

Plugin de agente que debes copiar en tus hosts Linux para monitorizar MS SQL.

En esta página