4 Surveiller MySQL avec Zabbix agent 2

Introduction

Cette page vous guide à travers les étapes requises pour démarrer la surveillance de base d'un serveur MySQL.

Pour surveiller un serveur MySQL, il existe plusieurs approches : l'agent Zabbix, l'agent Zabbix 2 ou le standard Open Database Connectivity (ODBC). L'objectif principal de ce guide est la surveillance d'un serveur MySQL avec Zabbix agent 2, qui est l'approche recommandée en raison de sa configuration transparente sur diverses configurations. Cependant, cette page propose également des instructions pour les autres approches, alors n'hésitez pas à choisir celle qui correspond le mieux à vos besoins.

À qui s'adresse ce guide

Ce guide est conçu pour les nouveaux utilisateurs de Zabbix et contient l'ensemble minimum d'étapes requises pour activer la surveillance de base d'un serveur de donnés MySQL. Si vous recherchez des options de personnalisation approfondies ou si vous avez besoin d'une configuration plus avancée, consultez la section Configuration du manuel Zabbix.

Conditions préalables

Avant de continuer avec ce guide, vous devez télécharger et installer le serveur Zabbix, l'interface Zabbix et l'agent Zabbix 2 selon les instructions de votre système d'exploitation.

En fonction de votre configuration, certaines étapes de ce guide peuvent légèrement différer. Ce guide est basé sur la configuration suivante:

  • Version Zabbix: Zabbix 6.4 (installé à partir des packages)
  • Distribution du système d'exploitation: Ubuntu
  • Version du système d'exploitation: 22.04 (Jammy)
  • Composants Zabbix: Serveur, Frontend, Agent 2
  • Base de données: MySQL
  • Serveur Web: Apache

Créer un utilisateur MySQL

Pour surveiller un serveur MySQL, Zabbix doit y accéder ainsi qu'à ses processus. Votre installation MySQL dispose déjà d'un utilisateur avec le niveau d'accès requis (l'utilisateur "zabbix" qui a été créé lors de l'installation de Zabbix),cependant, cet utilisateur dispose de plus de privilèges que nécessaire pour une simple surveillance (privilèges DROP, DELETE, etc.).Par conséquent, un utilisateur MySQL dans le but de uniquement surveiller le serveur MySQL doit être créé.

1. Connectez-vous au client MySQL, créez un utilisateur "zbx_monitor" (remplacez <password> pour l'utilisateur "zbx_monitor" par un mot de passe de votre choix), et GRANT les privilèges nécessaires à l'utilisateur :

mysql -u root -p
       # Enter password:
       
       mysql> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
       mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
       mysql> quit;

Une fois l’utilisateur créé, vous pouvez passer à l’étape suivante.

Configurer l'interface Zabbix

1. Connectez-vous à l'interface Zabbix.

2. Créer un hôte dans l'interface Web Zabbix :

  • Dans le champ Nom d'hôte, saisissez un nom d'hôte (par exemple, "Serveur MySQL").
  • Dans le champ Modèles, saisissez ou sélectionnez le modèle "MySQL by Zabbix agent 2" qui sera lié à l'hôte.
  • Dans le champ Groupes d'hôtes, saisissez ou sélectionnez un groupe d'hôtes (par exemple, « Bases de données »).
  • Dans le champ Interfaces, ajoutez une interface de type "Agent" et précisez l'adresse IP de votre serveur MySQL. Ce guide utilise "127.0.0.1" (localhost) pour surveiller un serveur MySQL installé sur la même machine que le serveur Zabbix et l'agent Zabbix 2.

  • Dans l'onglet Macros, passez à Macros héritées et hôtes, recherchez les macros suivantes et cliquez sur Modifier à côté de la valeur de la macro pour la mettre à jour:
    • {$MYSQL.DSN} - définit la source de données du serveur MySQL (la chaîne de connexion d'une session nommée à partir du fichier de configuration du plugin MySQL Zabbix agent 2) . Ce guide utilise la source de données par défaut "tcp://localhost:3306" pour surveiller un serveur MySQL installé sur la même machine que le serveur Zabbix et l'agent Zabbix 2.
    • {$MYSQL.PASSWORD} - définit le mot de passe de l'utilisateur MySQL créé "zbx_monitor".
    • {$MYSQL.USER} - définit le nom de l'utilisateur MySQL créé "zbx_monitor".

3. Cliquez sur Ajouter pour ajouter l'hôte. Cet hôte représentera votre serveur MySQL.

Afficher les métriques collectées

Toutes nos félicitations! À ce stade, Zabbix surveille désormais votre serveur MySQL.

Pour afficher les métriques collectées, accédez à la section de menu Surveillance → Hôtes et cliquez sur Tableaux de bord à côté de l'hôte.

Cette action vous mènera au tableau de bord de l'hôte (configuré au niveau du modèle) avec les métriques les plus importantes collectées à partir du serveur MySQL.

Alternativement, à partir de la section de menu Surveillance → Hôtes, vous pouvez cliquer sur Dernières données pour afficher toutes les dernières mesures collectées dans une liste. Notez que l'élément MySQL : Valeur calculée de innodb_log_file_size ne devrait contenir aucune donnée, car la valeur sera calculée à partir des données de la dernière heure.

#### Configurer des alertes de problème

Zabbix peut vous informer d'un problème avec votre infrastructure en utilisant diverses méthodes. Ce guide fournit les étapes de configuration de base pour l'envoi d'alertes par e-mail.

1. Accédez à Paramètres utilisateur → Profil, passez à l'onglet Média et ajoutez votre e-mail.

2. Suivez le guide pour la réception d'une notification en cas de problème.

La prochaine fois, lorsque Zabbix détectera un problème, vous devriez recevoir une alerte par e-mail.

Testez votre configuration

Pour tester votre configuration, nous pouvons simuler un problème réel en mettant à jour la configuration de l'hôte dans l'interface Zabbix.

1. Ouvrez la configuration de l'hôte de votre serveur MySQL dans Zabbix.

2. Basculez vers l’onglet Macros et sélectionnez Macros héritées et hôtes.

3. Cliquez sur Modifier à côté de la valeur de la macro précédemment configurée {$MYSQL.USER} et définissez un nom d'utilisateur MySQL différent.

4. Cliquez sur Mettre à jour pour mettre à jour la configuration de l'hôte.

5. Dans quelques instants, Zabbix détectera le problème "MySQL : Service is down", car il ne pourra pas se connecter au serveur MySQL. Le problème apparaîtra dans Surveillance → Problèmes.

Si les alertes sont [configurées] (#set-up-problem-alerts), vous recevrez également la notification du problème.

6. Remplacez la valeur de la macro par sa valeur précédente pour résoudre le problème et continuer à surveiller le serveur MySQL.

Autres approches pour surveiller MySQL

Au lieu de surveiller un serveur MySQL avec l'agent Zabbix 2, vous pouvez également utiliser l'agent Zabbix ou la norme Open Database Connectivity (ODBC). Bien que l'utilisation de l'agent Zabbix 2 soit recommandée, certaines configurations peuvent ne pas prendre en charge l'agent Zabbix 2 ou nécessiter une approche personnalisée.

La principale différence entre l'agent Zabbix et ODBC réside dans la méthode de collecte de données : l'agent Zabbix est installé directement sur le serveur MySQL et collecte les données à l'aide de sa fonctionnalité intégrée, tandis qu'ODBC s'appuie sur un pilote ODBC pour établir une connexion au serveur MySQL et récupérer des données à l'aide de requêtes SQL.

Bien que de nombreuses étapes de configuration soient similaires à la surveillance d'un serveur MySQL avec l'agent Zabbix 2, il existe quelques différences significatives: vous devez configurer l'agent Zabbix ou ODBC pour pouvoir surveiller un serveur MySQL. Les instructions suivantes vous guident à travers ces différences.

Surveiller MySQL avec l'agent Zabbix

Pour surveiller un serveur MySQL avec l'agent Zabbix, vous devez télécharger et installer le serveur Zabbix, l'interface Zabbix et l'agent Zabbix conformément aux instructions de votre système d'exploitation.

Une fois que vous avez installé avec succès les composants Zabbix requis, vous devez créer un utilisateur MySQL comme décrit dans la section Créer un utilisateur MySQL.

Après avoir créé l'utilisateur MySQL, vous devez configurer l'agent Zabbix pour pouvoir établir une connexion avec le serveur MySQL et le surveiller. Cela inclut la configuration de plusieurs paramètres utilisateur pour exécuter des vérifications d'agent personnalisées, ainsi que de fournir à l'agent Zabbix les informations d'identification nécessaires pour se connecter au serveur MySQL en tant qu'utilisateur [précédemment créé] (#create-mysql-user) "zbx_monitor".

Configurer l'agent Zabbix

1. Accédez au répertoire des configurations supplémentaires de l'agent Zabbix.

cd /usr/local/etc/zabbix/zabbix_agentd.d

Le répertoire des configurations supplémentaires de l'agent Zabbix doit être situé dans le même répertoire que le fichier de configuration de votre agent Zabbix (zabbix_agentd.conf). En fonction de votre système d'exploitation et de votre installation Zabbix, ce répertoire peut avoir un emplacement différent de celui spécifié dans ce guide. Pour les emplacements par défaut, vérifiez le paramètre Include dans le fichier de configuration de l'agent Zabbix.

Au lieu de définir tous les paramètres utilisateur nécessaires à la surveillance du serveur MySQL dans le fichier de configuration de l'agent Zabbix, ces paramètres seront définis dans un fichier séparé dans le répertoire des configurations supplémentaires.

2. Créer un fichier template_db_mysql.conf dans le répertoire des configurations supplémentaires de l'agent Zabbix.

vi template_db_mysql.conf

3. Copiez le contenu du fichier template_db_mysql.conf (localisé dans le repertoire Zabbix) dans le fichier template_db_mysql.conf que vous avez créé et enregistrez.

4. Redémarrez l'agent Zabbix pour mettre à jour sa configuration.

systemctl restart zabbix-agent

Une fois que vous avez configuré les paramètres utilisateur de l'agent Zabbix, vous pouvez passer à la configuration des informations d'identification qui permettront à l'agent Zabbix d'accéder au serveur MySQL.

5. Accédez au répertoire personnel de l'agent Zabbix (s'il n'existe pas sur votre système, vous devez le créer; par défaut: /var/lib/zabbix).

cd /var/lib/zabbix

6. Créez un fichier .my.cnf dans le répertoire personnel de l'agent Zabbix.

vi .my.cnf

7. Copiez le contenu suivant dans le fichier .my.cnf (remplacez <password> par le mot de passe de l'utilisateur "zbx_monitor").

[client]
       user='zbx_monitor'
       password='<password>'

Configurez l'interface Zabbix et testez votre configuration

Pour configurer l'interface Zabbix, suivez les instructions de la section Configurer l'interface Zabbix avec les ajustements suivants :

  • Dans le champ Modèles, saisissez ou sélectionnez le modèle "Agent MySQL by Zabbix" qui sera lié à l'hôte.
  • La configuration des Macros n'est pas requise.

Une fois que vous avez configuré l'interface Zabbix, vous pouvez afficher les métriques collectées et configurer des alertes de problème.

Pour tester votre configuration, suivez les instructions de la section Tester votre configuration avec les ajustements suivants:

  • Dans la section Macros hérités et hôtes de la configuration de l'hôte du serveur MySQL, cliquez sur Modifier à côté de la valeur de la macro {$MYSQL.PORT} et définissez un port différent (par exemple, "6033").

Surveiller MySQL avec ODBC

Pour surveiller un serveur MySQL avec ODBC, vous devez télécharger et installer le serveur Zabbix et l'interface Zabbix.

Une fois que vous avez installé avec succès les composants Zabbix requis, vous devez créer un utilisateur MySQL comme décrit dans la section creer un utilisateur MySQL.

Après avoir créé l'utilisateur MySQL, vous devez configurer ODBC. Cela inclut l'installation de l'une des implémentations d'API ODBC open source les plus couramment utilisées - unixODBC - et un pilote unixODBC, ainsi que la modification du fichier de configuration du pilote ODBC.

Configurer ODBC

1. Installez unixODBC. La méthode suggérée pour installer unixODBC consiste à utiliser les référentiels de packages par défaut du système d'exploitation Linux.

apt install unixodbc

2. Installez le pilote de base de données MariaDB unixODBC. Bien que vous disposiez d'une base de données MySQL, le pilote MariaDB unixODBC est utilisé pour des problèmes de compatibilité.

apt install odbc-mariadb

3. Vérifiez l'emplacement des fichiers de configuration ODBC odbcinst.ini et odbc.ini.

odbcinst -j

Le résultat de l’exécution de cette commande devrait être similaire a:

unixODBC 2.3.9
       DRIVERS............: /etc/odbcinst.ini
       SYSTEM DATA SOURCES: /etc/odbc.ini
       FILE DATA SOURCES..: /etc/ODBCDataSources
       ...

4. Pour configurer le pilote ODBC pour surveiller une base de données MySQL, vous avez besoin du nom du pilote, qui se trouve dans le fichier odbcinst.ini.Dans l'exemple de fichier odbcinst.ini suivant, le nom du pilote est « MariaDB Unicode ».

[MariaDB Unicode]
       Driver=libmaodbc.so
       Description=MariaDB Connector/ODBC(Unicode)
       Threading=0
       UsageCount=1

5. Copiez le contenu suivant dans le fichier odbc.ini (remplacez <password> par le mot de passe de l'utilisateur "zbx_monitor"). Ce guide utilise « 127.0.0.1 » (localhost) comme adresse de serveur MySQL pour surveiller un serveur MySQL installé sur la même machine que le pilote ODBC. Notez le nom de la source de données (DSN) "test", qui sera requis lors de la [configuration de l'interface Zabbix] (#configure-zabbix-frontend).

[test]
       Driver=MariaDB Unicode
       Server=127.0.0.1
       User=zbx_monitor
       Password=<password>
       Port=3306
       Database=zabbix

Configurez l'interface Zabbix et testez votre configuration

Pour configurer l'interface Zabbix, suivez les instructions de la section Configurer l'interface Zabbix avec les ajustements suivants :

  • Dans le champ Modèles, saisissez ou sélectionnez le modèle "MySQL by ODBC" qui sera lié à l'hôte.
  • La configuration des Interfaces n'est pas requise.
  • La valeur de la macro {$MYSQL.DSN} dans la section Macros hérités et hôtes de la configuration de l'hôte du serveur MySQL doit être définie sur le nom DSN du fichier odbc.ini.

Une fois que vous avez configuré l'interface Zabbix, vous pouvez afficher les métriques collectées, configurer des alertes de problème et tester votre configuration.

Voir également

  • Création d'un élément - comment commencer à surveiller des métriques supplémentaires.
  • Escalations de problèmes - comment créer des scénarios d'alerte en plusieurs étapes (par exemple, envoyez d'abord un message à l'administrateur système, puis, si un problème n'est pas résolu dans les 45 minutes, envoyez un message au responsable du centre de données).
  • Surveillance ODBC - comment configurer ODBC sur d'autres distributions Linux et comment commencer à surveiller des métriques supplémentaires liées aux bases de données avec ODBC.
  • Modèle MySQL par agent Zabbix - informations supplémentaires sur le modèle MySQL by Zabbix agent.
  • Modèle MySQL par Zabbix agent 2 - des informations supplémentaires sur le modèle MySQL by Zabbix agent 2.
  • Modèle MySQL par ODBC - informations supplémentaire sur le modèle MySQL by ODBC.