Introduction
Cette page de documentation décrit comment superviser une base de données MSSQL et surveillant des indicateurs comme:
- Le temps de connexion
- Le nombre de connexions
- L'utilisation du cache
- etc...
Cette section décrit les étapes à suivre pour superviser une base de données MSSQL:
- Prendre connaissance de ce qui est disponible par défaut dans une installation Shinken Entreprise classique
- Mettre en place l'utilisateur utilisé pour la supervision du côté du serveur MSSQL
- Tester la connexion à la base
- Mettre en place l'hôte pour la supervision dans Shinken
Abstract
This document describes how you can monitor an MSSQL database server such as:
- Connection time
- The number of connections
- Cache hit
- etc
There are some steps you’ll need to follow in order to monitor a new database machine:
| Panel | ||||
|---|---|---|---|---|
| ||||
|
Éléments présents dans une installation Shinken Entreprise
Pour rendre plus facile la supervision de bases MSSQL, quelques opérations de configuration sont déjà faites lors de l'installation:
- La sonde
What is already available in the Shinken Installation
To make your life a bit easier, a few configuration tasks have already been done for you:
Installation of- check_mssql_health
- est installée dans /var/lib/shinken/libexec/check_mssql_health
- Des modèles d'hôtes sont préconfigurés et prêts à être utilisés
| Tip | ||
|---|---|---|
| ||
| We suppose here that the MSSQL server you want to monitor is named On suppose dans la suite de cette documentation que le serveur MSSQL à superviser s'appelle "srv-win-1 and is a Windows. Please change the configuration and commands according with the real name of your server." et est un système Windows. Il faudra penser à changer ce paramètre pour l'adapter à votre configuration et le nom réel de votre serveur. |
Mise en place de l'utilisateur utilisé pour la supervision sur le serveur MSSQL
La page de documentation de la sonde décrit de manière détaillée comment configurer un utilisateur sur une base MSSQL.
Veuillez vous referer à la page suivante pour plus d'informations: http://
Setup the MSSQL user account
Create the database user
Look at the labs.consol.de/lang/en/nagios/check_mssql_health/ page about how to configure your user connection.
Test de la connexion à la base
Pour tester la connexion à la base MSSQL en utilisant un utilisateur de domaine, lancer la commande suivante:
Test the connection
To see if the connection to the MSSQL server is ok using a domain user, just launch :
| language | bash |
|---|
| Code Block |
|---|
/var/lib/shinken/libexec/check_mssql_health --server "srv-win-1" --username "shinkendom\\shinken" --password "shinkenpassword" --mode connection-time |
Superviser plusieurs bases avec le même hôte
Certains checks présents dans les modèles d'hôtes MSSQL fournis dans Shinken Entreprise utilisent la fonctionnalité Duplicate Foreach.
Pour chaque base listée dans la donnée personnalisée DATABASES sur l'hôte, les checks de ces modèles seront dupliqués. Un hôte qui héberge 2 bases MSSQL pour avoir les checks du modèle MSSQL utilisé présents en double, une fois pour chaque base de donnée spécifiée dans la donnée "DATABASES"
Manage more than 1 database on the same host
Some checks presents in MSSQL templates provided by Shinken Entreprise use the "Duplicate For Each" functionality.
For each database name listed in the DATA "DATABASES", check will be duplicated. An host, having 2 databases, will then have in double each checks with the datatabase name in the check.
| Info | |||
|---|---|---|---|
| |||
Par exemple, un hôte possède la configuration suivante:
Let's look an example: an host has the following: The data "DATABASES" set to
Si on considère le check "Mssql-$KEY$-database-free check. It will then have 2 checks", on voit dans l'interface de Configuration qu'il a été dupliqué 3 fois, une fois pour chaque base:
|
|
Indicateurs vérifiés par les modèles d'hôtes mssql
Modèles publics
Modèle d'hôte mssql
Le modèle d'hôte "mssql" est le modèle de base du pack mssql qui permet de savoir rapidement si la base MSSQL est en fonctionnement et utilisable.
| Note |
|---|
Tous les modèles de pack mssql (sauf |
What is checked with the templates
Public templatesmssql
This is the very basic MSSQL template allowing to know if your MSSQL database server is running and usable.
Every MSSQL templates (exceptMssql-connection-method) |
utilisent ce modèle comme parent. Il ne faut donc pas le désactiver |
| Check | DetailDétail | ScopeCible | Check rangeValeurs possibles | Default Seuil Warning Default Criticalpar défaut | Seuil Critique par défaut | |
|---|---|---|---|---|---|---|
| database-free | Free space in database | Espace libre dans le base de données | Base de donnéesdatabase | 0 to 100% | 2% | 5% |
| free-list-stalls | Requests Nombre de requêtes par seconde qui ont dû attendre pour avoir une page libreRequests per second that had to wait for a free page | serverServeur | 0 to n | 4 | 10 | |
| page-life-expectancy | Seconds a page is kept in memory before being flushed | Durée de vie en secondes d'une page avant d'être supprimée | Serveurserver | 0 to n | 300: | 180: |
| total-server-memory | The amount of memory that SQL Server has allocated to it | Quantité de mémoire totale que le server SQL utilise | Serveurserver | 0 to n | 1000000 | 5000000 |
Modèle mssql-full
Contains all MSSQL host templates listed in the Shinken Adminstrators templatesCe modèle contient l'ensemble des modèles définis dans la liste des modèle visibles pour les administrateurs Shinken ci dessous.
| Warning | ||
|---|---|---|
| ||
Using the mssql-full template will require a lot of resources on your poller daemon. We advise to use only needed templates. |
Shinken Administrator templates (can't be seen by other users)
mssql-connection-method
This template describes the method to connect to MSSQL server. Every MSSQL templates use it as a parent template.
Ce modèle regroupe un nombre important de checks et va donc entrainer une utilisation de ressources importantes sur les Pollers. Il vaut mieux ne pas en abuser pour préserver les Pollers d'une congestion prématurée. A la place, on conseille d'utiliser les modèles décrits ci-dessous lorsque possible. |
Modèles visibles uniquement pour les utilisateurs Administrateurs Shinken
Modèle mssql-connection-method
Ce modèle décrit la méthode et les paramètres pour l'authentification au serveur MSSQL. Il est nécessaire et utilisé par tous les autres modèles du pack mssql. Il ne faut donc pas le supprimer ou désactiver sous peine de rendre les autres modèles du pack non fonctionnels.
Modèle mssql-availability
Ce modèle renseigne sur la disponibilité de la base de données MSSQL
| Check | Détails | Cible | Valeurs possibles | Seuil Warning par défaut | Seuil Critique par défaut |
|---|---|---|---|---|---|
| connection | Temps de connexion au serveur | Serveur |
mssql-availability
This template gives informations about the database availability.
| Check | Detail | Scope | Check range | Default Warning | Default Critical |
|---|---|---|---|---|---|
| connection | Time to connect to the server | server | 0 to n sec | 1 | 2 |
Modèle mssql-backup-age
This template gives informations about the backup age of your databasesCe modèle récupère des informations sur les sauvegardes des bases de données et leur ancienneté.
| Check | DetailDétails | ScopeCible | Check rangeValeurs possibles | Default Seuil Warning Default Criticalpar défaut | Seuil Critique par défaut | |
|---|---|---|---|---|---|---|
| database-backup-age | Elapsed time (in hours) since a database was last backed up | Nombre de secondes écoulées depuis la dernière sauvegarde de base. | Base de donnéesdatabase | 0 to n hours | 48 | 72 |
Modèle mssql-batch-requests
This template gives informations about the batch requestsCe modèle récupère des informations sur les batchs de requêtes.
| Check | DetailDétails | ScopeCible | Check rangeValeurs possibles | Default Seuil Warning Default Criticalpar défaut | Seuil Critique par défaut | |
|---|---|---|---|---|---|---|
| batch-requests | Batch requests per second | Nombre de batchs par secondes | Serveurserver | 0 to n | 100 | 200 |
Modèle mssql-checkpoint-pages
This template gives informations about the checkpoint pagesCe modèle donne des informations sur le nombre de pages de mémoire Dirty écrites sur le disque par seconde.
| Check | DetailDétails | ScopeCible | Check rangeValeurs possibles | Default Seuil Warning Default Criticalpar défaut | Seuil Critique par défaut | |
|---|---|---|---|---|---|---|
| checkpoint-pages | Dirty pages flushed to disk per second. (usually by a checkpoint) | Nombre de pages de mémoire Dirty écrites sur le disque par seconde | Serveurserver | 0 to n | 100 | 500 |
mssql-compilations
This template gives informations about compilations.
| Check | Detail | Scope | Check range | Default Warning | Default Critical |
|---|---|---|---|---|---|
| sql-initcompilations | Initial compilations per second | server | 0 to n | 100 | 200 |
| sql-recompilations | Re-Compilations per second | server | 0 to n | 1 | 10 |
mssql-full-scans
This template gives informations about the full scans.
| Check | Detail | Scope | Check range | Default Warning | Default Critical |
|---|---|---|---|---|---|
| full-scans | Full table scans per second | server | 0 to n | 100 | 500 |
mssql-latch
This template gives informations about the latches.
| Check | Detail | Scope | Check range | Default Warning | Default Critical |
|---|---|---|---|---|---|
| latches-wait-time | Average time for a latch to wait before the request is met | server | 0 to n | 1 | 5 |
| latches-waits | Number of latch requests that could not be granted immediately | server | 0 to n | 10 | 50 |
mssql-lazy-writes
This template gives informations about the lazy writes.
| Check | Detail | Scope | Check range | Default Warning | Default Critical |
|---|---|---|---|---|---|
| lazy-writes | Lazy writes per second | server | 0 to n | 20 | 40 |
mssql-locks
This template gives informations about locks.
| Check | Detail | Scope | Check range | Default Warning | Default Critical |
|---|---|---|---|---|---|
| locks-deadlock | The number of deadlocks per second | server | 0 to n | 1 | 5 |
| locks-timeouts | The number of locks per second that timed out | server | 0 to n | 1 | 5 |
| locks-waits | The number of locks per second that had to wait | server | 0 to n | 100 | 500 |
mssql-server-performance
This template gives informations about MSSQL server performance.
| Check | Detail | Scope | Check range | Default Warning | Default Critical |
|---|---|---|---|---|---|
| cpu-busy | Cpu busy in percent | server | 0 to n | 80 | 90 |
| io-busy | IO busy in percent | server | 0 to n | 80 | 90 |
| mem-pool-data-buffer-hit-ratio | Data Buffer Cache Hit Ratio | server | 0 to n | 90: | 80: |
mssql-transactions
This template gives informations about databases transactions.
| Check | Detail | Scope | Check range | Default Warning | Default Critical |
|---|---|---|---|---|---|
| transactions | Transactions per second (per database) | database | 0 to n | 10000 | 50000 |
mssql-usage
This template gives informations about the database usage.
| Check | Detail | Scope | Check range | Default Warning | Default Critical |
|---|---|---|---|---|---|
| connected-users | Number of currently connected users | server | 0 to n | 50 | 80 |
How to
Configuration of Mssql-connection-method host template
Click on Hosts then on Hosts Templates in the Elements menu | |
In the Name field, type mssql-connection. Then clic on mssql-connection-method | |
| Clic on Data tab | |
You can setup the following DATA :
|
|
The parameters specifics to each server, such as database name for example, has to be done in the host's data itself.
| Tip | ||
|---|---|---|
| ||
It's a best practice to use the same database monitoring user on every MSSQL server monitored. Doing so, you can configure the database user/password only once in the host template mssql-connection-method. |
Attach a MSSQL template to you host
| Clic on Hosts in the Elements menu | |
Add the chosen Oracle host template to the Host Templates to inherit field. For example the Oracle host template. | |
Click on the Data tab | |
Look for the field DATABASES in the From templates data | |
Type the name of the database to be monitoring | |
| Check if the Following data are ok. |
| Tip | ||
|---|---|---|
| ||
You can monitor multiple database on the same host in typing the name of the database name separated by a comma. Exemple : DB1,DB2,DB3 |





