This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved. |
1. Introduction
Checkmk vous permet de surveiller de manière exhaustive les clusters MySQL et Galera pour MySQL. Vous trouverez une liste complète des options de supervision dans notre catalogue de plugins de supervision. Checkmk peut notamment surveiller les éléments suivants :
Pour pouvoir effectuer la supervision des bases de données, outre l'agent Checkmk, vous n'avez besoin que du plugin d'agent sur le serveur de base de données. Aucun logiciel supplémentaire n'est requis, ni sur Checkmk, ni sur le serveur de base de données.
Nous allons maintenant décrire la configuration de la supervision de MySQL pour les ordinateurs hôtes Linux et Windows. Nous aborderons ensuite la configuration à l'aide de la boulangerie d’agents.
2. Configuration de la supervision
2.1. Création d'un utilisateur
La seule condition requise pour configurer la supervision dans MySQL est qu’un utilisateur de base de données et son mot de passe soient disponibles. Cet utilisateur n’a besoin que de droits de lecture sur les instances MySQL. Si un tel utilisateur n’existe pas encore, créez-le dans les instances à surveiller. Pour ce faire, connectez-vous à MySQL avec un utilisateur disposant de droits d’accès suffisants, puis créez un nouvel utilisateur de base de données :
Cet utilisateur nouvellement créé a besoin d'une autorisation pour lire les instances.
Vérifiez donc si l'utilisateur dispose des autorisations nécessaires, ou ajoutez-les à l'aide de l'instruction suivante.
L'exemple suivant effectue cette opération pour l'utilisateur checkmk :
Si vous utilisez la réplication MySQL, l'utilisateur doit disposer au minimum de l'autorisation « REPLICATION CLIENT » pour superviser le serveur répliqué :
2.2. Installation du plugin
- Linux
Le plugin requis, «
mk_mysql», se trouve sur votre serveur Checkmk via Setup > Linux, Solaris, AIX files > Plugins ou, à défaut, dans le répertoire~/share/check_mk/agents/plugins/.Dans un premier temps, copiez ce plugin dans le répertoire des plugins de l'agent sur l'ordinateur hôte à superviser. Le répertoire des plugins est généralement
/usr/lib/check_mk_agent/plugins/. Dès que le script se trouve dans le répertoire spécifié, rendez-le exécutable :Ce plugin peut bien sûr également être exécuté de manière asynchrone si nécessaire.
- Windows
L'agent pour Windows est fourni en standard avec un certain nombre de plug-ins. C'est pourquoi vous trouverez également le plugin permettant de réaliser la supervision de MySQL sur votre ordinateur hôte après avoir installé l'agent. Il vous suffit de le copier dans le répertoire approprié pour pouvoir l'utiliser.
2.3. Création du fichier de configuration
Le fichier de configuration que vous créez ci-dessous — ou via la boulangerie d’agents — sert de source unique pour les paramètres de supervision de MySQL. Checkmk ne prend pas en compte les autres paramètres de configuration qui pourraient exister localement.
- Linux
Créez ensuite un fichier nommé «
mysql.cfg» dans le répertoire de configuration (par défaut :/etc/check_mk/) de l'agent Checkmk sur l'ordinateur hôte cible.L'agent peut récupérer les informations souhaitées depuis votre instance MySQL à l'aide des données de l'utilisateur qui y sont saisies. Bien que la spécification d'un utilisateur de base de données soit facultative, nous vous la recommandons, car l'agent exécute généralement le plugin en tant qu'utilisateur système
root. Si aucun nom d'utilisateur de base de données n'est spécifié, le client MySQL tente d'accéder à la base de données avec le nom d'utilisateur de l'utilisateur système exécutant, sans utiliser de mot de passe, ou en utilisant le mot de passe stocké dans.mylogin.cnf. Vous trouverez de plus amples informations, par exemple, dans la documentation MySQL.Cela s'effectue selon le format habituel des fichiers de configuration MySQL :
L'enregistrement des données d'accès à l'aide de l'instruction suivante permet de se prémunir contre tout accès non autorisé :
- Windows
Sur un ordinateur hôte Windows, créez un fichier nommé «
mysql.ini» dans le répertoire suivant :Si vous exécutez plusieurs instances MySQL avec des noms d'utilisateur et des mots de passe différents sur l'ordinateur hôte, créez simplement un fichier «
.ini» par instance en utilisant le schéma de nommage suivant :mysql_INSTANCE-ID.ini
2.4. Création de services
Maintenant que vous avez installé et configuré le plugin, vous pouvez effectuer une reconnaissance du service pour cet ordinateur hôte. La capture d'écran suivante ne montre qu'une sélection des services disponibles :

3. Configuration avancée
3.1. Exécution asynchrone d'un plugin
Le plugin de supervision de MySQL, comme tant d'autres, peut être exécuté de manière asynchrone, par exemple pour tenir compte des durées d'exécution plus longues des instances MySQL de grande taille.
- Linux
Sur un ordinateur hôte Linux, il suffit de déplacer le plugin dans un sous-répertoire du répertoire des plugins. Par exemple, si vous souhaitez exécuter le plugin toutes les 5 minutes, déplacez simplement le script «
mk_mysql» dans un sous-répertoire nommé «300». Vous trouverez des instructions détaillées concernant l'exécution asynchrone des plugins dans l'article consacré à l'agent Linux.- Windows
Pour exécuter le plugin de manière asynchrone sous Windows, modifiez la configuration de l'agent et ajoutez l'entrée suivante à la section «
execution» sous «plugins» :
3.2. Options supplémentaires pour les fichiers de configuration
Configuration de la communication avec MySQL via un socket
Au lieu de laisser l'agent communiquer avec MySQL via TCP, vous pouvez demander à Checkmk d'utiliser le socket.
Pour ce faire, il suffit de définir la variable « socket » dans le fichier « mysql.cfg ».
Voici un exemple de fichier de configuration Windows :
Définition manuelle des ordinateurs hôtes
Il est également possible de définir manuellement l'hôte MySQL via les fichiers de configuration.
La variable correspondante s'appelle simplement « host ».
Prenons à nouveau l'exemple de Windows :
3.3. Configuration des valeurs seuils
Supervision sessions
Certaines des vérifications configurées de cette manière ne disposent pas de valeurs de seuil prédéfinies. C'est généralement le cas car il n'existe pas de valeurs par défaut raisonnables qui seraient suffisantes dans la plupart des cas. Cependant, celles-ci peuvent être configurées en quelques étapes simples.
Par exemple, vous trouverez dans l'Service monitoring rules la règle « MySQL sessions & connections ». Celle-ci peut être utilisée pour définir des valeurs de seuil pertinentes pour le service MySQL sessions de votre instance MySQL.

Supervision des connexions
Nous n’avons pas non plus spécifié de valeurs seuils pour l’utilisation du nombre maximal de connexions simultanées défini par MySQL, car celles-ci dépendent bien davantage de la structure de votre instance MySQL que pour les autres services.
La définition des valeurs seuils correspondantes s'effectue en un clin d'œil à l'aide d'une règle issue du jeu de règles « MySQL connections ». Il en va de même pour le nombre de connexions ouvertes.

Supervision de la taille des bases de données
La taille des bases de données individuelles dans MySQL est surveillée par le plugin de supervision MySQL: Capacity check. Les valeurs seuils pour ce plugin peuvent être définies à l'aide de la règle «MySQL database sizes».

3.4. Supervision des fichiers journaux
À l'aide du plugin de supervision logwatch, vous pouvez également surveiller les fichiers journaux générés par MySQL afin de détecter d'éventuelles erreurs.
Après avoir configuré le plugin, vérifiez d'abord où se trouvent les fichiers journaux correspondants dans votre instance MySQL.
Vous trouverez leur emplacement exact dans le fichier .ini ou .cnf de votre instance.
Vous pouvez indiquer les journaux qui vous intéressent dans le fichier de configuration de logwatch et effectuer les entrées suivantes, par exemple sur un ordinateur hôte Linux :
/var/log/mysql/error.log
W Can't create/write to file
C [ERROR] Can't start server
C mysqld_safe mysqld from pid file /var/run/mysql/mysqld.pid ended4. Configurations à l'aide de la boulangerie d’agents
La configuration est grandement simplifiée grâce à la boulangerie d’agents, car cela permet d'éviter les erreurs de syntaxe dans les fichiers de configuration
et d'adapter facilement le système à des environnements changeants.
La principale différence par rapport à une installation manuelle réside dans le fait que ce n'est que pour certaines configurations spécifiques à MySQL que vous devez intervenir sur l'ordinateur hôte MySQL via sa ligne de commande.
Pour la configuration initiale, il suffit de créer l'utilisateur de la base de données sur l'ordinateur hôte MySQL et de créer une règle correspondante dans la boulangerie d’agents.
Vous trouverez l'ensemble de règles sous « Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules ».
Vous pouvez ensuite rechercher « mysql » dans le champ de recherche :

Saisissez l'identifiant et le mot de passe du nouvel utilisateur de la base de données. Le champ suivant vous permet de configurer l'agent Checkmk pour les ordinateurs hôtes Linux de manière à ce qu'il n'établisse pas la connexion à MySQL via TCP, mais via le socket. En fonction de la taille et de l'utilisation, cela peut contribuer à améliorer les performances.
Une version asynchrone du plugin MySQL peut également être définie à l'aide de cet ensemble de règles. Cela peut s'avérer utile pour tenir compte de durées d'exécution plus longues avec des instances MySQL volumineuses, ou si les données d'état ne sont tout simplement pas requises toutes les minutes.

5. Options de diagnostic
Si, par exemple, un comportement inattendu ou des problèmes surviennent lors de la configuration de la supervision, il est recommandé de vérifier directement sur l'ordinateur hôte concerné. Étant donné que les plug-ins de supervision de MySQL pour Linux et Windows sont des scripts shell ou Visual Basic, ils peuvent être facilement exécutés sans l'agent. Quel que soit le système d'exploitation utilisé, il suffit d'indiquer le répertoire de configuration concerné au shell ou à la ligne de commande.
- Linux
Vérifiez d'abord les répertoires applicables à votre ordinateur hôte respectif.
Utilisez maintenant l'instruction export pour créer les variables d'environnement
MK_CONFDIRetMK_LIBDIR. Personnalisez les instructions en fonction de vos répertoires réels.
Ces variables d'environnement n'existent que dans le shell actuellement ouvert et disparaissent dès que vous le fermez.
Vous pouvez ensuite exécuter le script
mk_mysqldirectement dans le répertoire des plugins d'agent Checkmk.Si toutes les autorisations ont été correctement accordées à l'utilisateur de la base de données, vous devriez maintenant voir plusieurs centaines de lignes de sortie, même dans un environnement MySQL petit et actuel.
- Windows
Pour pouvoir exécuter manuellement le plugin de supervision sur un ordinateur hôte Windows, ouvrez d'abord une ligne de commande avec des droits d'administrateur. Définissez ensuite la variable d'environnement
MK_CONFDIRdans cette ligne de commande. Cette opération est nécessaire pour que le plugin puisse trouver vos fichiers de configuration.
Ici aussi, une variable d'environnement définie ici n'est pas permanente, mais n'existe que tant que cette ligne de commande est ouverte.
Lors de l'exécution effective du plugin, il est conseillé de rediriger la sortie vers la ligne de commande. Windows fournit l'outil intégré «
cscript» à cet effet.
5.1. Erreurs possibles et messages d'erreur
Le message d'erreur « connect to server at xyz failed » indique que l'utilisateur spécifié dans le fichier de configuration n'a pas accès à MySQL.
Check d'abord qu'aucune erreur de saisie ne s'est glissée lors de la création du fichier de configuration (mysql.cfg ou mysql.ini).
Si le nom d'utilisateur ou le mot de passe spécifié dans le fichier de configuration est incorrect, vous recevrez un message d'erreur similaire à celui-ci :
Access denied for user checkmkSi vous voyez toute une série de données provenant de votre instance MySQL dans Checkmk, mais qu'aucun service ne réalise la supervision de la taille des bases de données qu'elle contient,
cela indique que l'utilisateur de la base de données ne dispose pas de l'autorisation « SELECT ».
Vérifiez votre utilisateur de base de données dans MySQL à l'aide de l'instruction suivante :
Si le mot-clé « SELECT » n'apparaît pas dans votre sortie, accordez à l'utilisateur de la base de données les droits appropriés, comme indiqué dans la section relative à la configuration des utilisateurs.
6. Fichiers et répertoires
6.1. Sur l'ordinateur hôte MySQL
- Linux
Chemin d'accès au fichier Fonction /usr/bin/check_mk_agentL'agent qui collecte toutes les données relatives à l'ordinateur hôte.
/usr/lib/check_mk/plugins/Répertoire habituel dans lequel les plugins sont stockés.
/etc/check_mk/mysql.cfgLe fichier de configuration du plugin MySQL.
/etc/check_mk/mysql.local.cfgFichier de configuration supplémentaire permettant de spécifier des sockets spécifiques à l'ordinateur hôte.
- Windows
Chemin d'accès au fichier Fonction C:\ProgramData\checkmk\agent\plugins\Répertoire habituel dans lequel les plugins sont stockés.
C:\ProgramData\checkmk\agent\config\Répertoire de configuration habituel.
6.2. Sur le serveur Checkmk
| Chemin d'accès | Fonction |
|---|---|
|
Le plugin qui récupère les données depuis l'ordinateur hôte MySQL. |
