Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Make by tools (01.00.01) - action=same_as_next_version
Scroll Ignore
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmltrue
Panel
titleSommaire

Table of Contents
stylenone

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 :

Abstract

This document describes how you can monitor an MySQL 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: 

  • Understand what is already available (in the Shinken Entreprise installation) 
  • Setup the MySQL user account
  • Test the connection to the database 
  • Setup your server host definition  
Panel
titleOn this page

Table of Contents
maxLevel3

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_mysql_health plugin : 
  • Le script check_mysql_health utilisé par la supervision est installé dans 
  • /var/lib/shinken/libexec/check_mysql_health
  • Several host templates are ready to be used
    • 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)


     

    Tip
    titleNoteRemarque
    We suppose here that the MySQL server you want to monitor is named

    On suppose dans la suite de cette documentation que le serveur MySQL à superviser est un serveur Linux appelé "srv-lin-1

    and is a Linux. Please change the configuration and commands according with the real name of your server.

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

    Setup the MySQL user account

    Connect with a root account on your MySQL database. change ‘password’ with your mysql root password :

    Code Block
    languagebashtext
    themeEmacs
     lin lin-srv-1:# mysql -u root -ppasswordp password

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

    Code Block
    languagebash
    themesqlRDark
    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 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 :

    Code Block
    languagetext
    themeEmacs
    $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 :

    Code Block
    languagetext
    themeEmacs

    Test the connection

    To see if the connection to the MySQL server is ok, just launch :

    Image Removed Code Blocklanguagebash
    /var/lib/shinken/libexec/check_mysql_health --hostname "srv-lin-1" --username "shinken" --password "shinkenpassword" --mode connection-time

    What is checked with the templates

    Public templates

    mysql

    This is the very basic MySQL template allowing to know if your MySQL database server is running and usable.

    Every MySQL templates (except Mysql-connection-method) use it as a parent template.

    CheckDetailCheck rangeDefault WarningDefault Critical
    connectionTime to connect to the server0 to n15
    restartTime the server is running0 to n10:5:
    slow_queriesslow_queries0 to n0.11
    tmp_disk_tablesPercent of temp tables created on disk0 to n2550

    mysql-full

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

    Warning
    titleWarning

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

    Shinken Administrator templates (can't be seen by other users)

    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

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

    Warning
    titleImportant

    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 :

    CheckDétails
    Mysql-cluster-ndbd-runningVé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 :


    CheckDétails
    Seuil avertissementDonnée du seuil d'avertissementSeuil critiqueDonnée du seuil critique
    Mysql-bufferpool-hitrateRatio d'utilisation du cache dans les pools de buffers InnoDB0 à 100%99:BUFFERPOOLHITRATE_WARN95:BUFFERPOOLHITRATE_CRIT
    Mysql-bufferpool-wait-freeRatio d'attente des pools de buffer InnoDB0 à n/sec1BUFFERPOOLWAITFREE_WARN10BUFFERPOOLWAITFREE_CRIT
    Mysql-log-waitsAttentes de logs InnoDB à cause d'un buffer de logs trop petit0 à n/sec1LOGWAITS_WARN10LOGWAITS_CRIT

    mysql-MyISAM

    Ce modèle permet de récupérer des informations sur le ratio d'utilisation du cache de clés MyISAM :


    CheckDétails
    Seuil avertissementDonnée du seuil d'avertissementSeuil critiqueDonnée du seuil critique
    Mysql-keycache-hitrateRatio d'utilisation du cache de clés MyISAM0 à 100%99:KEYCACHEHITRATE_WARN95:KEYCACHEHITRATE_CRIT

    mysql-performance

    Ce modèle permet de récupérer des informations sur les performances globales :


    CheckDétails
    Seuil avertissementDonnée du seuil d'avertissementSeuil critiqueDonné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.

    • C'est pour cette raison que les seuils sont 90 en WARNING et 80 en CRITICAL.
    • Moins l'index est utilisé, moins la base MySQL sera performante.
    0 à 100%90:INDEXUSAGE_WARN80:INDEXUSAGE_CRIT
    Mysql-long-running-procsNombre de processus en exécution depuis plus d'une minute0 à n10LONGRUNNINGPROCS_WARN20LONGRUNNINGPROCS_CRIT
    Mysql-table-lock-contentionRatio d’échec d'obtention de locks sur des tables MySQL0 à 100%1TABLELOCKCONTENTION_WARN2TABLELOCKCONTENTION_CRIT
    Mysql-tablecache-hitrateRatio d'utilisation du cache des tables0 à n99:TABLECACHEHITRATE_WARN95:TABLECACHEHITRATE_CRIT
    Mysql-threadcache-hitrateRatio d'utilisation du cache des threads0 à n10THREADCACHE_WARN20THREADCACHE_CRIT



    mysql-query-cache

    Ce modèle permet de récupérer des informations sur les caches de requêtes :

    CheckDétails
    Seuil avertissementDonnée du seuil d'avertissementSeuil critiqueDonnée du seuil critique
    Mysql-qcache-hitrateRatio d'utilisation du cache des requêtes0 à 100%80:QCACHEHITRATE_WARN90:QCACHEHITRATE_CRIT
    Mysql-qcache-lowmem-prunesNombre de déplacements hors du cache des requêtes à cause d'un manque de mémoire0 à n/sec1QCACHELOWMEMPRUNES_WARN10QCACHELOWMEMPRUNES_CRIT

    mysql-usage

    Ce modèle permet de récupérer des informations à propos de l'utilisation du serveur MySQL :

    CheckDétails
    Seuil avertissementDonnée du seuil d'avertissementSeuil critiqueDonnée du seuil critique
    Mysql-open-filesNombre de fichiers ouverts (ratio par rapport à la limite maximum)0 à 100%80OPENFILES_WARN95OPENFILES_CRIT
    Mysql-threads-connectedNombre de connexion actuellement ouvertes0 à n10THREADSCONNECTED_WARN20THREADSCONNECTED_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.


    Panel

    Image Added



    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.


    Panel

    Image Added



    Version des scripts livrés

    check_mysql_health  : 2.1.8.2

    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

    Image Removed

    In the Name field, type mysql-connection.

    Then clic on mysql-connection-method

    Image RemovedClic 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

     

    Image Removed

     

    Tip

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

    Code Block
    $MYSQLUSER$=shinken
    $MYSQLPASSWORD$=shinkenpassword

    Attach a MySQL template to you host

    Clic on Hosts in the Elements menuImage Removed

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

    For example the MySQL host template.

    Image Removed

    Click on the Data tab

    Image Removed
    Check if the Following data are ok.Image Removed