Résumé
Cette page décrit le contenu du pack MySQL livré permettant de superviser une base MySQL. Les checks du packs supervisent différents indicateurs, comme par exemple :
- Le temps de réponse
- Le nombre de connexions
- Le ratio de cache
- etc...
Plusieurs étapes de configuration sont nécessaires afin de superviser une base de données MySQL :
- Analyser ce qui est disponible dans le pack MySQL livré avec Shinken Entreprise
- Mettre en place un compte MySQL utilisé par les scripts de supervision
- Tester la connexion à la base de données
- Configurer l'hôte Shinken pour démarrer la supervision de la base
Contenu du pack MySQL
Pour faciliter la supervision de bases de données MySQL, certaines étapes de configuration sont déjà effectuées par l'installation de Shinken :
- Le script check_mysql_health utilisé par la supervision est installé dans /var/lib/shinken/libexec/check_mysql_health
- Des modèles préconfigurés utilisables sont installés dans Shinken Entreprise (ils seront décrits en détail dans la suite de cette documentation)
Remarque
On suppose dans la suite de cette documentation que le serveur MySQL à superviser est un serveur Linux appelé "srv-lin-1". Il faudra donc adapter les commandes qui utilisent ce nom d'hôte à votre infrastructure.
Mise en place d'un compte de supervision MySQL
Pour pouvoir superviser la base de données, il faut d'abord créer un compte sur la base MySQL qui va être utilisé par Shinken pour récupérer les informations nécessaires à la supervision.
Pour commencer, on se connecte avec l'utilisateur root sur la base de données (changer "password" par le mot de passe root de la base de données) :
lin-srv-1:# mysql -u root -p password
On crée ensuite un utilisateur "shinken" (remplacer "shinkenpassword" par un mot de passe fort au choix à utiliser pour l'utilisateur shinken) :
GRANT usage ON *.* TO 'shinken'@'%' IDENTIFIED BY 'shinkenpassword';
On change ensuite dans Shinken les données globales utilisées par le pack MySQL qui définissent l'utilisateur et le mot de passe à utiliser pour la connexion à la base de données. Dans /etc/shinken/resource.d/mysql.cfg :
$MYSQLUSER$=shinken $MYSQLPASSWORD$=shinkenpassword
Vérification de la connexion à la base de données
Une fois l'utilisateur défini dans la base de données MySQL, on peut vérifier que la connexion est opérationnelle avec la commande suivante :
/var/lib/shinken/libexec/check_mysql_health --hostname "srv-lin-1" --username "shinken" --password "shinkenpassword" --mode connection-time
Modèles d'hôtes disponibles dans le pack MySQL
Le pack MySQL livre des modèles d'hôtes préconfigurés qui peuvent être utilisés avec très peu de configuration manuelle. Parmi ces modèles d'hôtes, certains sont visibles par les administrateurs de SI (modèles publics) tandis que d'autres plus précis ne sont visibles que pour les administrateurs Shinken.
Modèles d'hôtes publics
mysql
Le modèle "mysql" est le modèle d'hôte de base du pack qui permet de vérifier certains indicateurs essentiels de la base :
| Check | Détails | Seuil avertissement | Donnée du seuil d'avertissement | Seuil critique | Donnée du seuil critique | |
|---|---|---|---|---|---|---|
| Mysql-connection | Temps de connexion au serveur | 0 à n (en secondes) | 1 | CONNECTIONTIME_WARN | 5 | CONNECTIONTIME_CRIT |
| Mysql-restart | Temps écoulé depuis le dernier redémarrage de MySQL | 0:0 à n:m (minutes:secondes) | 10: (10mn) | MYSQL_UPTIME_WARN | 5: (5mn) | MYSQL_UPTIME_CRIT |
| Mysql-slow_queries | Ratio de requêtes par seconde détectées comme "lentes" | 0 à n/seconde | 0.1 | SLOWQUERIES_WARN | 1 | SLOWQUERIES_CRIT |
| Mysql-tmp_disk_tables | Pourcentage de tables temporaires créées sur le disque au lieu de directement en mémoire | 0 à 100 | 25 | TMPDISKTABLES_WARN | 50 | TMPDISKTABLES_CRIT |
Ce modèle est également utilisé par les autres modèles d'hôtes du pack (sauf mysql-connection-method) en tant de modèle parent. Tous les autres modèles d'hôtes présentés ci-dessous auront donc également les mêmes checks décrits dans le tableau précédent.
mysql-full
Ce modèle regroupe l'ensemble des modèles du pack MySQL listés dans la partie "Modèles réservés aux administrateurs Shinken".
Important
L'utilisation du modèle d'hôte mysql-full ajoute un nombre importants de checks sur l'hôte. Consommé sans modération, il peut surcharger les Pollers et Schedulers. On lui préférera les modèles d'hôtes plus ciblés présentés par la suite qui sont moins consommateurs de ressources.
Modèles d'hôtes réservés aux administrateurs Shinken (ne peuvent pas être vus par les autres utilisateurs)
mysql-connection-method
Ce modèle contient les paramètres permettant de se connecter à la base de données MySQL. Par conséquence, tous les modèles du pack MySQL héritent de ce modèle.
mysql-cluster
Ce modèle permet de superviser un cluster MySQL :
| Check | Détails | |
|---|---|---|
| Mysql-cluster-ndbd-running | Vérifie que tous les noeuds du cluster répondent |
mysql-innoDB
Ce modèle permet de récupérer des informations sur les buffers InnoDB et les attentes :
| Check | Détails | Seuil avertissement | Donnée du seuil d'avertissement | Seuil critique | Donnée du seuil critique | |
|---|---|---|---|---|---|---|
| Mysql-bufferpool-hitrate | Ratio d'utilisation du cache dans les pools de buffers InnoDB | 0 à 100% | 99: | BUFFERPOOLHITRATE_WARN | 95: | BUFFERPOOLHITRATE_CRIT |
| Mysql-bufferpool-wait-free | Ratio d'attente des pools de buffer InnoDB | 0 à n/sec | 1 | BUFFERPOOLWAITFREE_WARN | 10 | BUFFERPOOLWAITFREE_CRIT |
| Mysql-log-waits | Attentes de logs InnoDB à cause d'un buffer de logs trop petit | 0 à n/sec | 1 | LOGWAITS_WARN | 10 | LOGWAITS_CRIT |
mysql-MyISAM
| Check | Détails | Seuil avertissement | Donnée du seuil d'avertissement | Seuil critique | Donnée du seuil critique | |
|---|---|---|---|---|---|---|
| Mysql-keycache-hitrate | Ratio d'utilisation du cache de clés MyISAM | 0 à 100% | 99: | KEYCACHEHITRATE_WARN | 95: | KEYCACHEHITRATE_CRIT |
mysql-performance
Ce modèle permet de récupérer des informations sur les performances globales :
| Check | Détails | Seuil avertissement | Donnée du seuil d'avertissement | Seuil critique | Donnée du seuil critique | |
|---|---|---|---|---|---|---|
| Mysql-index-usage | Utilisation des indexes : L'index est l'endroit où la base de données conserves des pointeurs vers les enregistrement depuis une sélection restreinte de champs. Son utilisation accélère les opérations de recherche quand on utilise ces champs restreints, il faut donc que cette utilisation soit au maximum. La valeur retournée par le check index-usage représente la proportion de requêtes qui sont effectuées via ces raccourcis au lieu de parcourir la table en entière (souvent lue depuis le disque si la base est grande). Elle correspond à l'indicateur classique en base de données : le cache hit. Cette valeur devrait normalement être supérieur à 99 % pour une efficacité optimale.
| 0 à 100% | 90: | INDEXUSAGE_WARN | 80: | INDEXUSAGE_CRIT |
| Mysql-long-running-procs | Nombre de processus en exécution depuis plus d'une minute | 0 à n | 10 | LONGRUNNINGPROCS_WARN | 20 | LONGRUNNINGPROCS_CRIT |
| Mysql-table-lock-contention | Ratio d’échec d'obtention de locks sur des tables MySQL | 0 à 100% | 1 | TABLELOCKCONTENTION_WARN | 2 | TABLELOCKCONTENTION_CRIT |
| Mysql-tablecache-hitrate | Ratio d'utilisation du cache des tables | 0 à n | 99: | TABLECACHEHITRATE_WARN | 95: | TABLECACHEHITRATE_CRIT |
| Mysql-threadcache-hitrate | Ratio d'utilisation du cache des threads | 0 à n | 10 | THREADCACHE_WARN | 20 | THREADCACHE_CRIT |
mysql-query-cache
Ce modèle permet de récupérer des informations sur les caches de requêtes :
| Check | Détails | Seuil avertissement | Donnée du seuil d'avertissement | Seuil critique | Donnée du seuil critique | |
|---|---|---|---|---|---|---|
| Mysql-qcache-hitrate | Ratio d'utilisation du cache des requêtes | 0 à 100% | 80: | QCACHEHITRATE_WARN | 90: | QCACHEHITRATE_CRIT |
| Mysql-qcache-lowmem-prunes | Nombre de déplacements hors du cache des requêtes à cause d'un manque de mémoire | 0 à n/sec | 1 | QCACHELOWMEMPRUNES_WARN | 10 | QCACHELOWMEMPRUNES_CRIT |
mysql-usage
Ce modèle permet de récupérer des informations à propos de l'utilisation du serveur MySQL :
| Check | Détails | Seuil avertissement | Donnée du seuil d'avertissement | Seuil critique | Donnée du seuil critique | |
|---|---|---|---|---|---|---|
| Mysql-open-files | Nombre de fichiers ouverts (ratio par rapport à la limite maximum) | 0 à 100% | 80 | OPENFILES_WARN | 95 | OPENFILES_CRIT |
| Mysql-threads-connected | Nombre de connexion actuellement ouvertes | 0 à n | 10 | THREADSCONNECTED_WARN | 20 | THREADSCONNECTED_CRIT |
Comment utiliser les modèles du pack MySQL
Utiliser le modèle d'hôtes voulu sur l'hôte et configurer
Sur l'hôte à configurer, ajouter le modèle MySQL voulu dans la liste des modèles à utiliser.
Dans l'onglet Données, modifier les données pour configurer les seuils et identifiants de connexion à utiliser.
Les différentes données et leur signification sont décrites plus haut dans le récapitulatif de chaque modèle et des checks qu'il contient.
Version des scripts livrés
check_mysql_health : 2.1.8.2

