Se rendre au contenu

Surveiller MS SQL avec l'agent Zabbix 2

Dans cet article, nous allons vous expliquer comment surveiller une base de données Microsoft SQL Server (MS SQL) en utilisant Zabbix et l'agent Zabbix 2.

Pré-requis

Avant de commencer, vous aurez besoin de :

  • Un serveur Zabbix installé et configuré.
  • L'agent Zabbix 2 installé sur le serveur MS SQL.
  • Accès administrateur à votre instance MS SQL.

Installation de l'agent Zabbix 2

Pour commencer, installez l'agent Zabbix 2 sur le serveur où MS SQL est exécuté. 

L’agent Zabbix 2 prend en charge la collecte des métriques avancées via des plugins spécifiques, y compris un plugin MS SQL depuis la version 6.4.12.

Sur un serveur Windows, téléchargez et installez l'agent Zabbix 2 depuis le site de téléchargement d'agent précompilé (https://www.zabbix.com/download_agents).

Le plugin MS SQL pour l'agent Zabbix 2 est à télécharger ici.

Configuration de MS SQL pour Zabbix

Zabbix collecte des données depuis MS SQL en utilisant un compte SQL dédié avec les permissions suffisantes pour accéder aux statistiques du serveur. Voici les étapes pour créer cet utilisateur dans MS SQL :

  1. Ouvrez SQL Server Management Studio (SSMS) et connectez-vous à votre instance MS SQL.
  2. Créez un nouvel utilisateur pour Zabbix avec les droits appropriés :
  • pour MS SQL version 2022
    CREATE LOGIN zabbix WITH PASSWORD = 'password'
    GRANT VIEW SERVER PERFORMANCE STATE TO zabbix
    USE msdb
    CREATE USER zabbix FOR LOGIN zabbix
    GRANT EXECUTE ON msdb.dbo.agent_datetime TO zabbix
    GRANT SELECT ON msdb.dbo.sysjobactivity TO zabbix
    GRANT SELECT ON msdb.dbo.sysjobservers TO zabbix
    GRANT SELECT ON msdb.dbo.sysjobs TO zabbix
    GO
    
  • pour MS SQL versions 2017 et 2019
    CREATE LOGIN zabbix WITH PASSWORD = 'password'
    GRANT VIEW SERVER STATE TO zabbix
    USE msdb
    CREATE USER zabbix FOR LOGIN zabbix
    GRANT EXECUTE ON msdb.dbo.agent_datetime TO zabbix
    GRANT SELECT ON msdb.dbo.sysjobactivity TO zabbix
    GRANT SELECT ON msdb.dbo.sysjobservers TO zabbix
    GRANT SELECT ON msdb.dbo.sysjobs TO zabbix
    GO

Ces permissions permettront à Zabbix d’accéder aux métriques importantes sans modifier ou altérer les données de la base.

Note : le plugin a été testé pour les versions suivantes de Microsoft SQL server :

  • 2022
  • 2019
  • 2017

Configuration de l'agent Zabbix 2 pour MS SQL

L’Agent Zabbix 2 utilise un plugin spécifique pour surveiller MS SQL. 

Il faut donc configurer ce plugin dans le fichier de configuration de l'agent. 

Éditez le fichier zabbix_agent2.conf et vérifiez que la variable Include pointe bien vers le dossier contenant les fichiers à extension ".conf" qui sont les plugins présents pour votre agent Zabbix 2.

Include=C:\Program Files\Zabbix Agent 2\zabbix_agent2.d\plugins.d\

Ajoutez un fichier mssql.conf dans ce dossier

Plugins.MSSQL.System.Path="C:\Program Files\Zabbix Agent 2\zabbix-agent2-plugin-mssql.exe"

Redémarrez l'agent Zabbix pour prise en compte du plugin via la console des services "services.msc".

Importation du template MS SQL dans Zabbix

Zabbix propose un template prêt à l'emploi pour la surveillance de Microsoft SQL Server, ce qui permet une intégration rapide et sans effort.

  1. Connectez-vous à l'interface web de Zabbix.
  2. Allez dans la section Data collection -> Templates.
  3. Cliquez sur Import et sélectionnez le template "MSSQL by Zabbix agent 2", qui est fourni par défaut dans Zabbix ou téléchargeable depuis le git officiel.
  4. Associez ce template à l’hôte où MS SQL est installé.

N'oubliez pas d'ajuster les paramètres à l'aide des Macros utilisateurs :

  • {$MSSQL.PASSWORD} : le mot de passe
  • {$MSSQL.URI} : sqlserver://localhost:1433
  • {$MSSQL.USER} : zabbix

Le template MS SQL vous permettra de surveiller plusieurs indicateurs clés, tels que :

  • Utilisation du CPU par MS SQL
  • Mémoire utilisée
  • Activité des transactions
  • Statistiques de verrouillage
  • Sessions actives
  • Performance des requêtes

Ces métriques vous offrent une vue détaillée des performances et de la santé de votre serveur MS SQL.

Conclusion

Surveiller MS SQL avec Zabbix et l'agent Zabbix 2 permet une surveillance complète de votre base de données. En utilisant les fonctionnalités avancées de l'agent Zabbix 2 et les templates disponibles, vous pouvez rapidement obtenir une vue d'ensemble de la performance de votre serveur MS SQL.

La Fonctionnalité "désactivation automatique des ressources perdues" de Zabbix 7.0