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. Avant-propos

Le plugin d'agent mssql.vbs destiné à la supervision de Microsoft SQL Server décrit dans cet article a été remplacé et sera bientôt supprimé de Checkmk (voir Werk #15844). Si la configuration réseau de votre serveur SQL Server autorise l'accès via TCP/IP, nous vous recommandons d'utiliser le nouveau plugin d'agent mk-sql. Nous expliquons comment configurer et utiliser le nouveau plugin d'agent dans l'article Supervision de Microsoft SQL Server.

2. Introduction

Checkmk vous permet de surveiller de manière exhaustive Microsoft SQL Server. Vous trouverez une liste complète des options de supervision dans notre catalogue de plugins de supervision. Checkmk peut notamment surveiller les valeurs suivantes :

Pour pouvoir surveiller les bases de données, il vous suffit d'installer le plugin d'agent sur le serveur de base de données, en plus de l'agent Checkmk. Aucun logiciel supplémentaire n'est requis, ni sur Checkmk ni sur le serveur de base de données.

La configuration pour les ordinateurs hôtes Windows est décrite ci-dessous. Plus loin, nous aborderons la configuration via la boulangerie d’agents.

3. Configuration de la supervision

3.1. Utilisation du compte LocalSystem

Si vous pouvez utiliser le compte LocalSystem (NT AUTHORITY\SYSTEM) pour la supervision, sachez que ce compte (login) nécessite au minimum les éléments sécurisables suivants (Securables) :

  • Connect any database

  • View Server State

  • Connect SQL

En fonction des bases de données de votre instance que vous souhaitez superviser, ainsi que des rôles de serveur et des affectations dont dispose déjà le compte LocalSystem, il peut également être nécessaire d'accorder des autorisations à Connect any database.

3.2. Digression : configuration d'un nouveau utilisateur

S'il est absolument nécessaire que le compte LocalSystem ne soit pas utilisé au sein de votre organisation, vous devez créer un utilisateur de supervision de base de données approprié sur les instances à surveiller. L'exigence de base dans MSSQL est que le paramètre « Server authentication » soit défini sur « SQL Server and Windows Authentication mode ». Si vous ne pouvez pas utiliser le compte Windows LocalSystem, cette exigence devrait déjà être satisfaite, mais il convient de le mentionner.

Connectez-vous maintenant à MSSQL avec un utilisateur disposant d'autorisations d'accès suffisantes dans MSSQL, puis créez un nouvel utilisateur de base de données via Microsoft SQL Server Management Studio :

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

Cet utilisateur nouvellement créé nécessite l'autorisation mentionnée ci-dessus. Accédez à l'Object Explorer, ouvrez Security > Logins, puis les propriétés du login que vous avez configuré pour le plugin d'agent. Sous « Securables », vous trouverez l'autorisation explicite « Connect any database », que vous devez accorder.

Grant permission 'Connect any database'.

Vous pouvez également créer l'utilisateur et les autorisations via la ligne de commande. Dans l'exemple suivant, cette opération a été effectuée pour l'utilisateur checkmk :

mssql> USE master;
      CREATE USER checkmk WITH PASSWORD = 'MyPassword123';
      GO
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

puis :

mssql> USE master;
      GRANT CONNECT ANY DATABASE TO checkmk;
      GO
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Création d'un fichier de configuration

Sur l'ordinateur hôte Windows, créez un fichier nommé « mssql.ini » dans le répertoire indiqué ci-dessous :

C:\ProgramData\Checkmk\agent\config\mssql.ini
[client]
user=checkmk
password=MyPassword123
Copier le contenu du fichier dans le presse-papiers
Le contenu du fichier a été copié avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Si vous exécutez plusieurs instances MSSQL avec des noms d'utilisateur et des mots de passe différents sur l'ordinateur hôte, créez simplement un fichier « ini » pour chaque instance selon le schéma de nommage « mssql_instance-ID.ini ».

3.3. Installation du plugin d'agent

L'agent Windows est fourni en standard avec toute une gamme de plugins. Après avoir installé l'agent, vous trouverez donc également le plugin permettant de surveiller MSSQL sur votre ordinateur hôte. Pour l'utiliser, il vous suffit de le copier dans le répertoire approprié :

PS> copy "c:\Program Files (x86)\checkmk\service\plugins\mssql.vbs" c:\ProgramData\checkmk\agent\plugins\
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

3.4. Configuration des services

Maintenant que vous avez installé et configuré le plugin, vous pouvez effectuer une reconnaissance du service pour cet ordinateur hôte. La capture d'écran suivante ne montre qu'une sélection des services qui peuvent être trouvés :

Excerpt from the service discovery results.

4. Configuration avancée

4.1. Exécution asynchrone du plugin d'agent

Le plugin de supervision de MSSQL peut, comme tant d’autres, être exécuté de manière asynchrone, par exemple pour tenir compte des durées d’exécution plus longues des instances MSSQL de grande taille.

Pour exécuter le plugin de manière asynchrone sous Windows, personnalisez la configuration de l’agent et ajoutez l’entrée suivante à la section « execution » sous « plugins » :

C:\ProgramData\Checkmk\agent\check_mk.user.yml
plugins:
    execution:
        - pattern: mssql.vbs
          cache_age: 300
          async: yes
Copier le contenu du fichier dans le presse-papiers
Le contenu du fichier a été copié avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Vous trouverez des instructions détaillées sur l'exécution asynchrone des plugins sur un ordinateur hôte Windows dans l'article consacré à l'agent Windows.

4.2. Configuration des valeurs seuils

Supervision des connexions

Vous pouvez définir vos propres valeurs seuils pour l'utilisation du nombre maximal de connexions simultanées spécifié par MSSQL, car celles-ci dépendent beaucoup plus de la structure de votre instance MSSQL que pour d'autres services. Vous pouvez configurer les valeurs seuils appropriées en un clin d'œil à l'aide d'une règle issue du jeu de règles «MSSQL Connections».

Setting the upper thresholds for active connections.

Supervision de la taille des fichiers

Vous pouvez également définir des valeurs seuils pour la taille des fichiers individuels dans MSSQL. Pour ce faire, utilisez le jeu de règles « MSSQL datafile sizes ».

Setting the file sizes used.

5. Configuration à l'aide de la boulangerie d’agents

CEE La configuration a été considérablement simplifiée dans les éditions commerciales grâce à l'utilisation de la boulangerie d’agents. Cela simplifie considérablement le processus de configuration, car les erreurs de syntaxe dans les fichiers de configuration sont évitées et les adaptations aux environnements changeants peuvent être facilement effectuées. La principale différence par rapport à une installation manuelle réside dans le fait que vous ne devez intervenir sur l'ordinateur hôte MSSQL via la ligne de commande que si vous souhaitez effectuer des configurations spécifiques à MSSQL.

Pour la configuration initiale, il suffit de configurer l'utilisateur de la base de données sur l'ordinateur hôte MSSQL et de créer une règle correspondante dans la boulangerie d’agents. Vous trouverez l'ensemble de règles sous « Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules ». Vous pouvez ensuite rechercher « mssql » dans le champ de recherche :

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

Dans la nouvelle règle de la section « Microsoft SQL Server (Windows) », sélectionnez de préférence l'option « System Authentication » pour une connexion simple et sans problème.

Possible settings for the MSSQL Server in the Agent Bakery.

Si vous optez plutôt pour l'option « Database User Credentials », vous devez également saisir l'User ID et l'Passwords de l'utilisateur de la base de données souhaité (par exemple, l'utilisateur que vous avez créé précédemment).

6. Options de diagnostic

Si, par exemple, des comportements inattendus ou des problèmes surviennent lors de la configuration de la supervision, il est conseillé de vérifier directement sur l'ordinateur hôte concerné. Comme le plugin de supervision de MSSQL est un script shell ou Visual Basic, il peut facilement être exécuté sans l'agent. Il suffit simplement d'indiquer au préalable au script shell ou à la ligne de commande le répertoire de configuration concerné.

Pour pouvoir exécuter le plugin manuellement, ouvrez d'abord une ligne de commande avec des droits d'administrateur, puis définissez la variable d'environnement MK_CONFDIR dans cette ligne de commande. Cette opération est nécessaire pour que le plugin puisse trouver les fichiers de configuration.

PS> set MK_CONFDIR=c:\ProgramData\checkmk\agent\config
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Remarque : ici aussi, la variable d'environnement n'est pas définie de manière permanente, mais n'est valable que tant que cette ligne de commande est ouverte.

Lors de l'exécution effective du plugin, il est recommandé de rediriger la sortie vers la ligne de commande. Windows fournit l'outil cscript à cet effet.

PS> cscript c:\ProgramData\checkmk\agent\plugins\mssql.vbs
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

6.1. Erreurs possibles et messages d'erreur

Échec de la connexion à la base de données

Il existe trois pilotes différents à l'aide desquels Checkmk tente successivement de réaliser une connexion à la base de données MSSQL : msoledbsql, sqloledb et sqlncli11.

Par défaut, ces trois pilotes sont généralement disponibles et sont testés l'un après l'autre lors de l'établissement d'une connexion. Dans certaines circonstances, ce traitement successif peut entraîner l'affichage de messages d'erreur. Vous devrez alors peut-être supprimer un, voire deux des pilotes mentionnés de la syntaxe de l'appel.

mssql.vbs : « aucune sauvegarde trouvée »

Si un plugin signale « aucune sauvegarde trouvée », vous devez d'abord vérifier manuellement si une sauvegarde est disponible. Si une sauvegarde existe et que le problème persiste, cela peut être dû aux conventions de nommage du côté MSSQL.

Checkmk interprète toujours les noms de domaine en minuscules, mais si ceux-ci sont transmis par l'ordinateur hôte en majuscules lors des sauvegardes, par exemple, des problèmes de communication surviendront.

Vous pouvez alors vérifier la valeur de l'serverproperty('collation')e du côté MSSQL. Si, par exemple, SQL_Latin1_General_CP1_CS_AS est défini ici, alors CS signifie « Case Sensitive » (sensible à la casse). Le plugin ne peut alors pas convertir le nom de domaine et des problèmes peuvent survenir en raison de l'orthographe. Passer à SQL_Latin1_General_CP1_CI_AS, c'est-à-dire à CI pour « Case Insensitive » (insensible à la casse), devrait résoudre ce problème.

Vous pouvez également modifier l'orthographe du nom d'origine du serveur MSSQL. Cela n'est toutefois pas toujours possible dans toutes les entreprises et pour tous les environnements.

7. Fichiers et répertoires

7.1. Sur l'ordinateur hôte MSSQL

Chemin d'accès au fichier Contenu

C:\ProgramData\checkmk\agent\plugins\

Répertoire des plugins

C:\ProgramData\checkmk\agent\config\

Répertoire de configuration

7.2. Sur le serveur Checkmk

Chemin d'accès Contenu

~/share/check_mk/agents/plugins/mssql

Le plugin qui récupère les données depuis l'ordinateur hôte MSSQL.


Last modified: Tue, 20 Jan 2026 15:14:32 GMT via commit 561e6d8c8
Sur cette page