10-Strike Network Monitor vous permet de surveiller des bases MS SQL, MySQL et ODBC sur le réseau.

Les contrôles « MS SQL Server », « MySQL » et « ODBC » surveillent l'état du SGBD correspondant et alertent lorsqu'un dysfonctionnement est détecté. L'algorithme tente périodiquement de se connecter aux bases avec les paramètres d'authentification indiqués. Si le SGBD confirme la connexion, le contrôle est considéré comme réussi.
Le programme peut aussi exécuter des requêtes SQL quelconques, récupérer les résultats et analyser les valeurs renvoyées.
La bibliothèque cliente libmySQL.dll est nécessaire au contrôle « MySQL ». Une version est fournie avec l'application. Elle peut se trouver dans le dossier Windows ou dans le dossier de l'application.
Pour le contrôle « MS SQL Server », l'ordinateur doit disposer de la partie cliente de ce SGBD. L'application prend en charge l'authentification Windows et l'authentification par identifiant et mot de passe.
Comment configurer la surveillance d'une base (exemple MySQL)
La surveillance de l'état de la base vise à maintenir ses performances et sa disponibilité. Elle porte sur de nombreux paramètres et indicateurs fournis par le SGBD, et sur la détection des erreurs de fonctionnement.
Voici quelques indicateurs de base qui permettent de juger l'état de la base, avec 10-Strike Network Monitor et MySQL comme exemple.
1. Disponibilité et durée de fonctionnement
La disponibilité d'une base se vérifie en s'y connectant depuis des hôtes distants. Une erreur de connexion peut indiquer l'arrêt du service de base ou le blocage du port par un programme tiers.
Le paramètre uptime signale les redémarrages rapides de la base. Ces redémarrages peuvent échapper au contrôle de disponibilité : il est donc utile de vérifier depuis combien de temps la base tourne sans panne ni arrêt. Par exemple, vous pouvez fixer le seuil d'alerte lorsque :
uptime < 1800
où 1800 est la durée de fonctionnement de la base, en secondes, depuis le dernier démarrage.
2. Erreurs de connexion
L'un des problèmes possibles est l'échec de connexion de nouveaux clients. L'indicateur Nombre d'erreurs de connexion repère les périodes où la base génère ces erreurs trop souvent. Il regroupe les variables d'état suivantes du serveur MySQL (compteurs) :
- Connection_errors_accept
Nombre d'erreurs survenues lors des appels accept() sur le port d'écoute. - Connection_errors_internal
Nombre de connexions refusées à cause d'erreurs internes du serveur, par exemple l'impossibilité de démarrer un nouveau thread ou un manque de mémoire. - Connection_errors_max_connections
Nombre de connexions refusées parce que la limite max_connections du serveur a été atteinte. - Connection_errors_peer_address
Nombre d'erreurs lors de la résolution des adresses IP des clients qui se connectent. - Connection_errors_select
Nombre d'erreurs lors des appels select() ou poll() sur le port d'écoute (l'échec de cette opération ne signifie pas forcément que la connexion du client a été refusée). - Connection_errors_tcpwrap
Nombre de connexions refusées par libwrap.
Si le paramètre max_connections est mal réglé sur le serveur MySQL, la base peut échouer face à un grand nombre de connexions simultanées, et le compteur Connection_errors_max_connections augmente. Vous pouvez prévenir cette situation en surveillant le rapport entre le nombre de connexions courantes et le maximum possible. La requête suivante convient :
SELECT ROUND(100 - (100 * Variable_value / [max_connections]), 0) as tc FROM sys.metrics where Variable_name = 'threads_connected'
où vous remplacez [max_connections] par la valeur réelle du paramètre max_connections (100 par défaut). Vous pouvez l'obtenir dans la console MySQL :
show variables like "max_connections";
Cette commande renvoie un résultat de ce type :
La variable tc de la requête indique le pourcentage de connexions disponibles. Le seuil peut être fixé à 30 %.
3. Requêtes lentes
MySQL tient un journal des requêtes lentes. Le nombre d'entrées de ce journal se lit avec l'indicateur slow_queries. Pour obtenir sa valeur, une requête SQL simple suffit :
SELECT Variable_value FROM sys.metrics where Variable_name = 'slow_queries'
Le programme peut réagir aux variations de cet indicateur en signalant de nouvelles entrées dans le journal des requêtes lentes, ce qui peut indiquer un problème de performance.
4. Requêtes de jointure
Les compteurs d'exécution des jointures permettent d'être averti des opérations qui consomment trop de ressources.
- Select_full_join
Nombre de jointures qui parcourent les tables parce qu'elles n'utilisent pas d'index. Si cette valeur n'est pas 0, vérifiez attentivement les index des tables. - Select_full_range_join
Nombre de jointures qui ont utilisé une recherche par plage dans la table de recherche. - Select_range_check
Nombre de jointures sans clé qui vérifient l'usage d'une clé après chaque ligne. Si la valeur n'est pas 0, vérifiez attentivement les index des tables. - Select_scan
Nombre de jointures qui ont effectué un parcours complet de la première table. - Select_range
Nombre de jointures qui ont utilisé des plages dans la première table. Ce n'est en général pas critique, même si la valeur est élevée.
5. Taux de succès du cache
MySQL utilise un cache en mémoire pour optimiser les lectures et les écritures disque. Un taux de succès du cache trop bas dégrade les performances. Cette requête calcule le taux de succès du cache des tables ouvertes :
SELECT ROUND((open_cache_hits / (open_cache_hits + open_cache_misses)), 2) * 100 OpenTableFactor FROM (SELECT variable_value open_cache_misses FROM sys.metrics WHERE variable_name = 'table_open_cache_misses') miss, (SELECT variable_value open_cache_hits FROM sys.metrics WHERE variable_name = 'table_open_cache_hits') hits;
Fixez le seuil OpenTableFactor à 90 %. Si la valeur est inférieure, le programme vous prévient.
6. Temps d'exécution des requêtes
Un autre indicateur de dégradation des performances est le temps d'exécution des requêtes. Écrivez une requête SQL de test et mesurez son temps d'exécution dans des conditions normales. Cette valeur peut servir de seuil. Un dépassement important et prolongé peut indiquer que la base est fortement chargée et que les utilisateurs attendent longtemps une réponse.
MySQL expose un grand nombre d'indicateurs pour évaluer l'état de la base. La plupart se trouvent dans les tables système INFORMATION_SCHEMA (sys). Les tables et les vues de ce schéma sont accessibles en lecture. Le programme exécute des requêtes quelconques, ce qui permet de créer un large éventail de contrôles de performance.
Surveillance d'autres bases
Nul ne sait ce qu'une panne de SGBD peut coûter à une entreprise. Cela arrive pourtant. Si la base devient indisponible, plus elle est rétablie vite, moins les pertes sont lourdes. Il est donc essentiel d'être informé à temps des pannes de base et de leur nature.
Vous pouvez mettre en place la surveillance d'une base SQL avec 10-Strike Network Monitor. Ajoutez le contrôle « MySQL », « MSSQL » ou « ODBC » et configurez la connexion : adresse du serveur SQL, port, identifiant et mot de passe. Choisissez un indicateur à surveiller, ou indiquez une requête SQL qui lit des valeurs dans les tables.
10-Strike Network Monitor se connecte à la base à la fréquence indiquée et exécute une requête SQL de test, ce qui confirme que le SGBD fonctionne.
Les SGBD suivants sont pris en charge :
• Microsoft SQL
• MySQL
• tout autre SGBD accessible via l'interface ODBC (MSAccess®, Oracle®, Sybase, Firebird, et bien d'autres).
Avec des requêtes SQL vers le serveur de base, vous pouvez aussi surveiller des services tiers qui y stockent et y mettent à jour leurs paramètres. Si une valeur sort de la plage, le programme en avertit l'administrateur.
Surveillance des processus métier
Vous pouvez aussi superviser les processus métier de l'entreprise en traitant, par des requêtes SQL, les valeurs et indicateurs stockés dans la base : nombre de ventes, chiffre d'affaires, coûts, etc. Les contrôles par requête SQL peuvent être utilisés seuls ou combinés dans une formule, pour calculer une valeur plus complexe. Le programme propose pour cela le contrôle par expression (formules de calcul). Par exemple, vous pouvez créer deux contrôles sur des bases différentes et utiliser les paramètres obtenus pour calculer une autre valeur avec la formule indiquée.
Voir aussi : Surveillance des serveurs HTTP/HTTPS, du contenu des pages et des défigurations, Surveillance des serveurs FTP
Configuration requise : Windows XP/Vista/7/8.1/10/11, Server 2003/2008/2012/2016/2019/2022 pris en charge.





