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. Introduction
Checkmk vous permet de réaliser une supervision exhaustive de Microsoft SQL Servers (ci-après abrégé en « MSSQL »). Vous trouverez la liste complète de tous les plugins de supervision disponibles dans notre Catalogue des plugins de supervision.
Pour pouvoir surveiller les bases de données, vous aurez également besoin du plugin d’agent mk-sql en plus de l’agent Checkmk.
À partir de la version Checkmk 2.3.0, ce plugin d’agent est également capable de surveiller des bases de données sur des systèmes distants.
Cela concerne les bases de données MS-SQL sur vos propres serveurs distants — et non celles de fournisseurs de cloud quelconques !
Exception : les bases de données Microsoft Azure SQL sont explicitement prises en charge.
Aucun logiciel supplémentaire n’est requis, ni sur Checkmk ni sur le serveur de base de données.
La seule condition obligatoire pour utiliser mk-sql est que le protocole TCP/IP soit activé dans la configuration réseau du serveur SQL.
Si TCP/IP n’est pas autorisé ou n’est pas pris en charge dans votre environnement de serveur MSSQL, vous devez utiliser l’ancien plugin d’agent mssql.vbs jusqu’à nouvel ordre.
2. Création d'un compte pour la supervision
Le plugin d'agent nécessite un accès à vos instances MSSQL. En règle générale, la nature de cet accès est clairement définie bien avant l'arrivée de l'équipe de supervision.
2.1. Créer un utilisateur / utiliser un compte
- Linux
Création d'un utilisateur pour la supervision
Vous aurez besoin d'un utilisateur capable de réaliser une connexion à votre instance MSSQL. Cet utilisateur doit disposer au minimum des autorisations suivantes :
Connexion à SQL
Effectuer une connexion à n'importe quelle base de données
Afficher l'état du serveur
En dehors de ces autorisations, c'est à vous ou à votre organisation de décider comment un tel utilisateur peut ou doit être créé.
Vous pouvez utiliser un utilisateur local à des fins de test. S'il n'existe aucun utilisateur correspondant sur votre serveur MSSQL ou dans votre instance, vous pouvez en créer un sur votre système Linux via la ligne de commande :
Dans l'exemple suivant, cette opération est effectuée pour l'utilisateur
checkmk:Suivez les instructions pour attribuer un mot de passe, etc.
Ensuite :
- Windows
Dans le cas de MSSQL, deux options s'offrent à vous. Vous pouvez soit utiliser uniquement le mode « Windows Authentication mode », soit le mode mixte « SQL Server and Windows Authentication mode ».
Utilisation du compte LocalSystem
L'agent Checkmk est exécuté sur les systèmes Windows sous le compte LocalSystem (
NT AUTHORITY\SYSTEM). Si vous pouvez également utiliser ce compte LocalSystem pour la supervision de MSSQL, vous devrez simplement vous assurer que ce compte (login) dispose au minimum des autorisations pour les éléments sécurisables suivants (Securables) :View server state
Connect SQL
Connect any database (optional)
L'autorisation Connect any database (optional) est facultative, mais elle est requise dans presque tous les scénarios de supervision MSSQL.
Utilisation d'un compte dédié
Il existe de bonnes raisons de ne pas exécuter la supervision MSSQL via le compte LocalSystem de Windows. Parmi les raisons potentielles, on peut citer les exigences de sécurité au sein de l'organisation ou simplement le souhait de disposer de comptes dédiés et clairement nommés, dont l'objectif est déjà évident d'après leur nom.
Le plugin fonctionne bien sûr également avec de tels comptes (logins).
La condition de base dans MSSQL est que l'option « Server authentication » soit définie sur « SQL Server and Windows Authentication mode ». Si vous ne souhaitez pas ou ne pouvez pas utiliser le compte Windows LocalSystem, cette condition devrait déjà être remplie, mais il convient de la mentionner ici.
S'il n'existe aucun utilisateur correspondant sur votre serveur MSSQL ou dans votre instance, vous pouvez en créer un sur votre système Windows via Microsoft SQL Server Management Studio (avec n'importe quel nom d'utilisateur) :

Ce login nécessite les autorisations suivantes :
Connect SQL
Connect any database
View server state
Accordez ces autorisations dans l'Object Explorer via Security > Logins. Ouvrez les propriétés du compte (login) et cliquez sur « Securables ». Sous « Explicit », vous trouverez les trois entrées mentionnées ci-dessus. Cocher les cases correspondantes dans la colonne « Grant » et confirmez en cliquant sur « OK ».

Vous pouvez également créer l'utilisateur et les autorisations via la ligne de commande. Dans l'exemple suivant, cette opération est effectuée pour l'utilisateur
checkmk:puis :
2.2. Configuration manuelle de la connexion
Si vous utilisez Checkmk Community
ou si vous ne souhaitez pas utiliser la boulangerie d’agents des éditions commerciales, configurez la communication manuellement.
Pour la suite de cette description, nous partons du principe que l'agent de supervision pour Linux ou Windows a déjà été installé sur l'ordinateur hôte.
Création d'un fichier de configuration
- Linux
Sur l'ordinateur hôte Linux, créez un fichier d'
mk-sql.ymlation dans le répertoire indiqué ci-dessous :Si vous exécutez plusieurs instances MSSQL avec des noms d'utilisateur et des mots de passe différents sur l'ordinateur hôte, ajoutez les détails des instances au fichier
ymlen conséquence. Votre fichierymlpourrait alors ressembler à ceci, par exemple :- Windows
Sur l'ordinateur hôte Windows, créez un fichier «
mk-sql.yml» dans le répertoire indiqué ci-dessous :Lorsque vous utilisez le compte LocalSystem, c'est tout ce qui est nécessaire :
Si vous utilisez un compte dédié à la supervision, vous aurez besoin du contenu suivant à la place :
Si vous exécutez plusieurs instances MSSQL avec des noms d'utilisateur et des mots de passe différents sur l'ordinateur hôte, ajoutez les détails des instances au fichier
ymlen conséquence. Votre fichierymlpourrait alors ressembler à ceci, par exemple :
Installation du plugin d'agent
Le plugin « mk-sql » se trouve…
- Linux
…dans la communauté Checkmk, sous « Setup > Agents > Linux », et dans les éditions commerciales …sous « Setup > Agents > Windows, Linux, Solaris, AIX > Related > Linux, Solaris, AIX files » :

Téléchargez le fichier «
mk-sql» et placez-le sur l'ordinateur hôte Linux dans le répertoire «/usr/lib/check_mk_agent/plugins/».- Windows
…dans Checkmk Community sous Setup > Agents > Windows et dans les éditions commerciales …sous Setup > Agents > Windows, Linux, Solaris, AIX > Related > Windows files :

Téléchargez le fichier «
mk-sql.exe» et enregistrez-le sur l'ordinateur hôte Windows dans le répertoire «C:\ProgramData\checkmk\agent\plugins\».
Configuration des services
Maintenant que vous avez installé et configuré le plugin d'agent, vous pouvez effectuer la 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 :

2.3. Configuration avancée
Exécution asynchrone du plugin d'agent
Le plugin d'agent pour la 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.
- Linux
Pour exécuter le plugin d'agent de manière asynchrone sous Linux, modifiez la configuration du plugin et ajoutez une ligne «
cache_age» à la section «main» :- Windows
Pour exécuter le plugin d'agent de manière asynchrone sous Windows, modifiez la configuration du plugin et ajoutez une ligne «
cache_age» dans la section «main» :
3. Autres options de configuration dans Checkmk
3.1. 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 correspondantes en un clin d'œil à l'aide d'une règle issue du jeu de règles « MSSQL 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 ».

4. Configuration via la boulangerie d’agents
La configuration a été considérablement simplifiée dans les éditions commerciales
grâce à la boulangerie d’agents, car cela permet d'éviter les erreurs de syntaxe dans les fichiers de configuration et d'effectuer facilement des personnalisations adaptées à des environnements changeants.
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 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 ».
Recherchez « mssql » dans le champ de recherche :

4.1. Configuration de la règle de l'agent
- Linux
Sous « Authentication », sélectionnez l'option « SQL database user credentials ».

Saisissez ensuite l'Login name dans le champ User et ajoutez l'Password correspondante. Pour l'Connection, ajoutez l'Host name.
Si vous exécutez plusieurs instances MSSQL avec des noms d’utilisateur et des mots de passe différents sur l’ordinateur hôte, sélectionnez l’option « Custom instances ». Utilisez « Add new element » pour accéder aux détails de la première instance, puis de chaque instance supplémentaire soumise à la supervision. Saisissez ici les données d’accès pour chaque instance, comme décrit ci-dessus.

- Windows
En fonction de la manière dont le plugin d'agent est autorisé à se connecter à votre serveur MSSQL (voir Configuration d'un compte pour la supervision), sélectionnez l'option appropriée sous Authentication. Si vous utilisez le compte LocalSystem (
NT AUTHORITY\SYSTEM), laissez la sélection sur Local Integrated Authentication (Windows).
Si vous utilisez plutôt l'authentification SQL Server, sélectionnez l'option « SQL database user credentials », puis saisissez également l'Login name (voir Utilisation d'un compte dédié) dans le champ « User » et ajoutez l'Password correspondant.
Si vous exécutez plusieurs instances MSSQL avec des noms d’utilisateur et des mots de passe différents sur l’ordinateur hôte, sélectionnez l’option « Custom instances ». Utilisez « Add new element » pour accéder aux détails de la première instance, puis de chaque instance supplémentaire soumise à la supervision. Saisissez ici les données d’accès pour chaque instance, comme décrit ci-dessus.

4.2. Options supplémentaires
Grâce aux paramètres que vous venez de définir, vous créez tout d’abord un agent simple pour la supervision de votre instance MSSQL, qui se trouve directement sur l’ordinateur hôte. Toutes les données disponibles sont évaluées directement dans Checkmk, ce qui devrait suffire dans un scénario classique. Toutefois, si votre organisation dispose d’un environnement MSSQL plus complexe, d’autres options s’offrent à vous, tant pour la supervision de la base de données sur le même ordinateur hôte que pour sa supervision sur un ordinateur hôte distant. Ces options sont fondamentalement les mêmes pour les deux types de connexion.
| Option | Description |
|---|---|
Connection |
Si vous avez besoin de données de connexion plus spécifiques pour la connexion générale au serveur MSSQL, vous pouvez les spécifier ici. |
Data to collect (Sections) |
Vous pouvez ici définir, par section, quelles données doivent être collectées et si cette collecte doit être synchrone ou asynchrone. |
Cache age for asynchronous checks |
Vous pouvez modifier la durée de la période de cache en secondes pour les vérifications asynchrones précédemment définies. |
Mapper les données vers un ordinateur hôte spécifique (ferroutage) |
Les données ferroutées peuvent être attribuées à un ordinateur hôte, quelle que soit leur source réelle. Par exemple, les informations SQL peuvent être séparées des données du serveur Windows sous-jacent. |
Discovery mode of database instances |
Paramètres de recherche dans l'instance. |
Custom instances |
Outre les paramètres généraux d'accès à votre serveur MSSQL, vous pouvez également définir ici vos propres paramètres pour des instances spécifiques. |
Options |
Le nombre maximal de connexions parallèles au serveur SQL peut être défini ici. |
5. Options de diagnostic
5.1. Erreurs possibles et messages d'erreur
Message d'erreur : Échec de la collecte des instances SQL Server
Vérifiez si la connexion TCP/IP a été configurée et fonctionne correctement.
6. Fichiers et répertoires
6.1. Sur l'ordinateur hôte MSSQL
- Linux
Chemin d'accès au fichier Description /usr/lib/check_mk_agent/plugins/Répertoire de stockage des plugins d'agent.
/etc/check_mk/mk-sql.ymlFichier de configuration du plugin d'agent.
- Windows
Chemin d'accès Description C:\ProgramData\checkmk\agent\plugins\Répertoire de stockage des plugins d'agent.
C:\ProgramData\checkmk\agent\config\mk-sql.ymlFichier de configuration du plugin d'agent.
6.2. Sur le serveur Checkmk
| Chemin d'accès | Description |
|---|---|
|
Le plugin d'agent à copier sur vos ordinateurs hôtes afin d'y effectuer la supervision de MSSQL. |
|
Le plugin d'agent à copier sur vos ordinateurs hôtes Linux pour y effectuer la supervision de MSSQL. |
