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)


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écuperer 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 -ppassword

On créée ensuite un utilisateur "shinken" (remplacer "shinkenpassword" par un mot de passe au choix à utiliser pour l'utilisateur shinken):

GRANT usage ON *.* TO 'shinken'@'%' IDENTIFIED BY 'shinkenpassword';

It’s a good thing to change the shinkenpassword to another password. Then you need to update the /etc/shinken/resource.d/mysql.cfg

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:

CheckDétails
Seuil avertissementDonnée du seuil d'avertissementSeuil critiqueDonnée du seuil critique
Mysql-connectionTemps de connexion au serveur0 à n (en secondes)1CONNECTIONTIME_WARN5CONNECTIONTIME_CRIT
Mysql-restartTemps écoulé depuis le dernier redémarrage de MySQL0:0 à n:m (minutes:secondes)10:   (10mn)MYSQL_UPTIME_WARN5:   (5mn)MYSQL_UPTIME_CRIT
Mysql-slow_queriesRatio de requêtes par seconde détectées comme "lentes"0 à n/seconde0.1SLOWQUERIES_WARN1SLOWQUERIES_CRIT
Mysql-tmp_disk_tablesPourcentage de tables temporaires créées sur le disque au lieu de directement en mémoire0 à 10025TMPDISKTABLES_WARN50TMPDISKTABLES_WARN


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

Using the mysql-full template will require a lot of resources on your poller daemon. We advise to use only the needed templates.

Contains all MySQL host templates listed in the Shinken Adminstrators templates.

Using the mysql-full template will require a lot of resources on your poller daemon. We advise to use only the needed templates.


Modèles d'hôtes réservés aux administrateurs Shinken (ne peuvent pas être vus par les autres utilisateurs)

mysql-connection-method

This template describes the method to connect to MySQL server. Every MySQL templates use it as a parent template.


mysql-cluster

This template gives informations about the MySQL cluster.

mysql-innoDB

This template gives informations about innoDB buffers and logwaits.


CheckDetailCheck rangeDefault WarningDefault Critical
bufferpool_hitrateInnoDB buffer pool hitrate0 to n99:95:
bufferpool_wait_freeInnoDB buffer pool waits for clean page available0 to n110
log_waitsInnoDB log waits because of a too small log buffer0 to n110



mysql-MyISAM

This template gives informations about MyISAM key cache hitrate.


CheckDetailCheck rangeDefault WarningDefault Critical
keycache-hitrateMyISAM key cache hitrate0 to n99:95:


mysql-performance

This template gives informations about the global server performance.


CheckDetailCheck rangeDefault WarningDefault Critical
index_usageUsage of indexes0 to n90:80:
long_running_procslong running processes0 to n1020
table_lock_contentionTable lock contention0 to n12
tablecache_hitrateTable cache hitrate0 to n99:95:
threadcache_hitrateHit rate of the thread-cache0 to n1020


mysql-query-cache

This template gives informations about query cache.


CheckDetailCheck rangeDefault WarningDefault Critical
qcache_hitrateQuery cache hitrate0 to n90:80:
qcache_lowmem_prunesQuery cache entries pruned because of low memory0 to n110


mysql-usage

This template gives informations about MySQL server usage.


CheckDetailCheck rangeDefault WarningDefault Critical
open_filesPercent of opened files0 to n8095
threads_connectedNumber of currently open connections0 to n1020


How to 

Configuration of Mysql-connection-method host template

Click on Hosts then on Hosts Templates in the Elements menu



In the Name field, type mysql-connection.

Then clic on mysql-connection-method



Clic on Data tab

You can setup the following DATA : 

  • MYSSQLPASSWORD : the MySQL password of the user used to connect to database
  • MYSQLUSER : the MySQL user name used to connect to database




You can also set the user and password directly in /etc/shinken/resource.d/myslq.cfg

$MYSQLUSER$=shinken
$MYSQLPASSWORD$=shinkenpassword



Attach a MySQL template to you host

Clic on Hosts in the Elements menu



Add the chosen MySQL host template to the Host Templates to inherit field.

For example the MySQL host template.



Click on the Data tab



Check if the Following data are ok.