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



É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 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


On suppose dans la suite de cette documentation que le serveur MSSQL à superviser s'appelle "srv-win-1" 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://labs.consol.de/lang/en/nagios/check_mssql_health/

Test de la connexion à la base

Pour tester la connexion à la base MSSQL en utilisant un utilisateur de domaine, lancer la commande suivante:

/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"


Par exemple, un hôte possède la configuration suivante:

  • La donnée "DATABASES" contient "DB1, DB2, DB3"
  • Le modèle d'hôte "mssql" est utilisé par l'hôte

Si on considère le check "Mssql-$KEY$-database-free", on voit dans l'interface de Configuration qu'il a été dupliqué 3 fois, une fois pour chaque base:

  • Mssql-DB1-database-free
  • Mssql-DB2-database-free
  • Mssql-DB3-database-free


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.

Tous les modèles de pack mssql (sauf Mssql-connection-method) utilisent ce modèle comme parent. Il ne faut donc pas le désactiver



CheckDétailCibleValeurs possiblesSeuil Warning par défautSeuil Critique par défaut
database-freeEspace libre dans le base de donnéesBase de données0 to 100%2%5%
free-list-stallsNombre de requêtes par seconde qui ont dû attendre pour avoir une page libreRequests per second that had to wait for a free pageServeur0 to n410
page-life-expectancyDurée de vie en secondes d'une page avant d'être suppriméeServeur0 to n300:180:
total-server-memoryQuantité de mémoire totale que le server SQL utiliseServeur0 to n10000005000000


Modèle mssql-full

Ce modèle contient l'ensemble des modèles définis dans la liste des modèle visibles pour les administrateurs Shinken ci dessous.


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


 

CheckDétailsCibleValeurs possiblesSeuil Warning par défautSeuil Critique par défaut
connectionTemps de connexion au serveur

Serveur

0 to n sec12


Modèle mssql-backup-age

Ce modèle récupère des informations sur les sauvegardes des bases de données et leur ancienneté.

 

CheckDétailsCibleValeurs possiblesSeuil Warning par défautSeuil Critique par défaut
database-backup-ageNombre de secondes écoulées depuis la dernière sauvegarde de base.Base de données0 to n hours4872


Modèle mssql-batch-requests

Ce modèle récupère des informations sur les batchs de requêtes.

 

CheckDétailsCibleValeurs possiblesSeuil Warning par défautSeuil Critique par défaut
batch-requestsNombre de batchs par secondesServeur0 to n100200


Modèle mssql-checkpoint-pages

Ce modèle donne des informations sur le nombre de pages de mémoire Dirty écrites sur le disque par seconde.


 

CheckDétailsCibleValeurs possibles Seuil Warning par défaut Seuil Critique par défaut
checkpoint-pagesNombre de pages de mémoire Dirty écrites sur le disque par secondeServeur0 to n100500


mssql-compilations

This template gives informations about compilations.

 

CheckDetailScopeCheck rangeDefault WarningDefault Critical
sql-initcompilationsInitial compilations per secondserver0 to n100200
sql-recompilationsRe-Compilations per secondserver0 to n110


mssql-full-scans

This template gives informations about the full scans.

 

CheckDetailScopeCheck rangeDefault WarningDefault Critical
full-scansFull table scans per secondserver0 to n100500


mssql-latch

This template gives informations about the latches.

 

CheckDetailScopeCheck rangeDefault WarningDefault Critical
latches-wait-timeAverage time for a latch to wait before the request is metserver0 to n15
latches-waitsNumber of latch requests that could not be granted immediatelyserver0 to n1050


mssql-lazy-writes

This template gives informations about the lazy writes.

 

CheckDetailScopeCheck rangeDefault WarningDefault Critical
lazy-writesLazy writes per secondserver0 to n2040


mssql-locks

This template gives informations about locks.

 

CheckDetailScopeCheck rangeDefault WarningDefault Critical
locks-deadlockThe number of deadlocks per secondserver0 to n15
locks-timeoutsThe number of locks per second that timed outserver0 to n15
locks-waitsThe number of locks per second that had to waitserver0 to n100500


mssql-server-performance

This template gives informations about MSSQL server performance.

 

CheckDetailScopeCheck rangeDefault WarningDefault Critical
cpu-busyCpu busy in percentserver0 to n8090
io-busyIO busy in percentserver0 to n8090
mem-pool-data-buffer-hit-ratioData Buffer Cache Hit Ratioserver0 to n90:80:


mssql-transactions

This template gives informations about databases transactions.

 

CheckDetailScopeCheck rangeDefault WarningDefault Critical
transactionsTransactions per second (per database)database0 to n1000050000


mssql-usage

This template gives informations about the database usage.

 

CheckDetailScopeCheck rangeDefault WarningDefault Critical
connected-usersNumber of currently connected usersserver0 to n5080


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 : 

  • DATABASES : the name(s) of the database(s) to be monitored.
  • MSSQLPASSWORD : the MSSQL password of the user used to connect to database
  • MSSQLUSER : the MSSQL user name used to connect to database

 

 

 

 

 


The parameters specifics to each server, such as database name for example, has to be done in the host's data itself.

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.

 

 

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