En brefCollectez et visualisez les logs d’erreurs MySQL et les logs de requêtes lentes dans ClickStack à l’aide du receiver OTel
filelog. Inclut un jeu de données de démonstration et un tableau de bord préconfiguré.Intégration avec une instance MySQL existante
Prérequis
- Instance ClickStack en fonctionnement
- Installation MySQL existante (version 5.7 ou ultérieure)
- Accès aux fichiers de configuration de MySQL pour les modifier
- Espace disque suffisant pour les fichiers journaux
Configurer la journalisation de MySQL
MySQL prend en charge plusieurs types de journaux. Pour une supervision complète avec OpenTelemetry, nous recommandons d’activer le journal des erreurs et le journal des requêtes lentes.Le fichier de configurationmy.cnf ou my.ini se trouve généralement à l’un des emplacements suivants :- Linux (apt/yum) :
/etc/mysql/my.cnfou/etc/my.cnf - macOS (Homebrew) :
/usr/local/etc/my.cnfou/opt/homebrew/etc/my.cnf - Docker : la configuration est généralement définie via des variables d’environnement ou un fichier de configuration monté
[mysqld] :Le journal des requêtes lentes enregistre les requêtes qui prennent plus de
long_query_time secondes. Ajustez ce seuil en fonction des exigences de performances de votre application. Si vous le définissez trop bas, cela générera un volume excessif de journaux.Créer une configuration personnalisée pour l’OTel collector
ClickStack vous permet d’étendre la configuration de base de l’OpenTelemetry Collector en montant un fichier de configuration personnalisé et en définissant une variable d’environnement. Cette configuration personnalisée est fusionnée avec la configuration de base gérée par HyperDX via OpAMP.Créez un fichier nommémysql-logs-monitoring.yaml avec la configuration suivante :- Lit les logs d’erreurs MySQL et les logs de requêtes lentes depuis leurs emplacements standard
- Gère les entrées de log sur plusieurs lignes (les requêtes lentes s’étendent sur plusieurs lignes)
- Analyse les deux formats de log pour extraire des champs structurés (level, error_code, query_time, rows_examined)
- Préserve les horodatages d’origine des logs
- Ajoute les attributs
source: mysql-erroretsource: mysql-slowpour le filtrage dans HyperDX - Achemine les logs vers le ClickHouse exporter via un pipeline dédié
Deux receivers sont nécessaires, car les logs d’erreurs MySQL et les logs de requêtes lentes ont des formats complètement différents. Le
time_parser utilise le format gotime pour gérer le format d’horodatage ISO8601 de MySQL avec des décalages de fuseau horaire.Configurer ClickStack pour charger une configuration personnalisée
Pour activer une configuration personnalisée du collecteur dans votre déploiement ClickStack existant, montez le fichier de configuration personnalisé à l’emplacement/etc/otelcol-contrib/custom.config.yaml et définissez la variable d’environnement CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml.Mettez à jour la configuration de déploiement de ClickStack :Assurez-vous que le collecteur ClickStack dispose des permissions appropriées pour lire les fichiers de journal MySQL. Utilisez des montages en lecture seule (
:ro) et appliquez le principe du moindre privilège.Vérifier les logs dans HyperDX
Une fois la configuration terminée, connectez-vous à HyperDX et vérifiez que les logs remontent correctement :- Accédez à la vue Search
- Définissez la source sur Logs
- Filtrez sur
source:mysql-errorousource:mysql-slowpour afficher les logs spécifiques à MySQL - Vous devriez voir des entrées de log structurées avec des champs tels que
level,error_code,message(pour les logs d’erreur) ainsi quequery_time,rows_examined,query(pour les logs de requêtes lentes)
Jeu de données de démonstration
Téléchargez le jeu de données d’exemple
Téléchargez les exemples de fichiers journaux :- Des entrées du journal des erreurs (messages de démarrage, avertissements, erreurs de connexion, messages InnoDB)
- Des requêtes lentes avec des caractéristiques de performances réalistes
- Des événements du cycle de vie des connexions
- Des séquences de démarrage et d’arrêt du serveur de base de données
Créer une configuration de test du collecteur
Créez un fichier nommémysql-logs-demo.yaml avec la configuration suivante :Exécuter ClickStack avec la configuration de démonstration
Exécutez ClickStack avec les logs et la configuration de démonstration :Vérifier les logs dans HyperDX
Une fois ClickStack démarré :- Attendez quelques instants que ClickStack soit complètement initialisé (généralement 30 à 60 secondes)
- Ouvrez HyperDX et connectez-vous à votre compte (vous devrez peut-être d’abord en créer un)
- Accédez à la vue Search et définissez la source sur
Logs - Définissez l’intervalle de temps sur 2025-11-13 00:00:00 - 2025-11-16 00:00:00
- Vous devriez voir 40 logs au total (30 logs d’erreur avec
source:mysql-demo-error+ 10 requêtes lentes avecsource:mysql-demo-slow)
Si vous ne voyez pas immédiatement les 40 logs, attendez environ une minute pour que le collecteur termine le traitement. Si les logs n’apparaissent toujours pas après cela, exécutez
docker restart clickstack-demo, puis vérifiez à nouveau une minute plus tard. Il s’agit d’un problème connu du récepteur filelog d’OpenTelemetry lors du chargement en masse de fichiers préexistants avec start_at: beginning. Les déploiements de production utilisant start_at: end traitent les logs à mesure qu’ils sont écrits en temps réel et ne rencontrent pas ce problème.Affichage du fuseau horaireHyperDX affiche les timestamps dans le fuseau horaire local de votre navigateur. Les données de démonstration couvrent 2025-11-14 00:00:00 - 2025-11-15 00:00:00 (UTC). Cet intervalle de temps étendu vous permet de voir les logs de démonstration où que vous soyez. Une fois les logs visibles, vous pouvez réduire la plage à 24 heures pour obtenir des visualisations plus claires.
Tableaux de bord et visualisations
la configuration du tableau de bord
Importer le tableau de bord préconfiguré
- Ouvrez HyperDX et accédez à la section Dashboards
- Cliquez sur Import Dashboard dans le coin supérieur droit, dans le menu des points de suspension
- Téléversez le fichier
mysql-logs-dashboard.json, puis cliquez sur Finish Import
Afficher le tableau de bord
Le tableau de bord sera créé avec toutes les visualisations préconfigurées.Pour le jeu de données de démonstration, définissez l’intervalle de temps sur 2025-11-14 00:00:00 - 2025-11-15 00:00:00 (UTC) (à ajuster selon votre fuseau horaire local). Par défaut, le tableau de bord importé n’aura pas d’intervalle de temps défini.
Dépannage
La config personnalisée ne se charge pas
Aucun log ne s’affiche dans HyperDX
Les logs de requêtes lentes n’apparaissent pas
Les logs ne sont pas analysés correctement
Étapes suivantes
- Configurez des alertes pour les événements critiques (échecs de connexion, requêtes lentes dépassant les seuils, pics d’erreurs)
- Créez des tableaux de bord personnalisés pour analyser les requêtes lentes par modèle de requête
- Ajustez
long_query_timeen fonction des tendances de performances des requêtes observées