En brefCollectez et visualisez les logs d’accès Nginx (format JSON) 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 à une installation Nginx existante
Prérequis
- Une instance ClickStack en cours d’exécution
- Une installation Nginx existante
- Un accès permettant de modifier les fichiers de configuration de Nginx
Configurer le format des logs Nginx
Commencez par configurer Nginx pour qu’il génère des logs au format JSON afin d’en faciliter l’analyse. Ajoutez cette définition du format des logs à votrenginx.conf :Le fichier nginx.conf se trouve généralement à l’emplacement suivant :- Linux (apt/yum) :
/etc/nginx/nginx.conf - macOS (Homebrew) :
/usr/local/etc/nginx/nginx.confou/opt/homebrew/etc/nginx/nginx.conf - Docker : la configuration est généralement montée comme volume
http :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. La configuration personnalisée est fusionnée avec la configuration de base gérée par HyperDX via OpAMP.Créez un fichier nommé nginx-monitoring.yaml avec la configuration suivante :- Lit les logs Nginx depuis leurs emplacements standard
- Analyse les entrées de log JSON
- Extrait et préserve les horodatages d’origine des logs
- Ajoute l’attribut source : Nginx pour le filtrage dans HyperDX
- Achemine les logs vers le ClickHouse exporter via un pipeline dédié
- Vous définissez uniquement de nouveaux receivers et pipelines dans la configuration personnalisée
- Les processors (memory_limiter, transform, batch) et exporters (clickhouse) sont déjà définis dans la configuration de base de ClickStack ; vous vous contentez de les référencer par leur nom
- L’opérateur time_parser extrait les horodatages du champ time_local de Nginx afin de préserver l’heure d’origine des logs
- Les pipelines achemine les données de vos receivers vers le ClickHouse exporter via les processors existants
Configurer ClickStack pour charger une configuration personnalisée
Pour activer une configuration personnalisée du collecteur dans votre déploiement ClickStack existant, vous devez :- Monter le fichier de configuration personnalisé à l’emplacement /etc/otelcol-contrib/custom.config.yaml
- Définir la variable d’environnement CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
- Monter vos répertoires de logs Nginx pour que le collecteur puisse les lire
Option 1 : Docker Compose
Mettez à jour la configuration de votre déploiement ClickStack :Option 2 : Docker Run (image tout-en-un)
Si vous utilisez l’image tout-en-un avec docker run :Assurez-vous que le collecteur ClickStack dispose des autorisations nécessaires pour lire les fichiers journaux de nginx. En production, 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 bien :- Accédez à la vue Search
- Définissez la source sur Logs, puis vérifiez que vous voyez des entrées de logs avec des champs tels que request, request_time, upstream_response_time, etc.
Jeu de données de démonstration
Télécharger le jeu de données d’exemple
- Des entrées de log avec des schémas de trafic réalistes
- Divers endpoints et méthodes HTTP
- Un mélange de requêtes réussies et d’erreurs
- Des temps de réponse et des volumes d’octets réalistes
Créer une configuration de collector de test
Créez un fichier nomménginx-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 en cours d’exécution :- Ouvrez HyperDX et connectez-vous à votre compte (vous devrez peut-être d’abord en créer un)
- Accédez à la Search view et définissez la source sur
Logs - Définissez l’intervalle de temps sur 2025-10-19 11:00:00 - 2025-10-22 11:00:00
Affichage du fuseau horaireHyperDX affiche les timestamps dans le fuseau horaire local de votre navigateur. Les données de démonstration couvrent la période du 2025-10-20 11:00:00 au 2025-10-21 11:00:00 UTC. Cet intervalle de temps large garantit que vous verrez les logs de démonstration, quel que soit votre lieu. Une fois les logs affichés, vous pouvez réduire l’intervalle à 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 l’angle supérieur droit, sous les points de suspension.
- Téléversez le fichier nginx-logs-dashboard.json, puis cliquez sur Finish Import.
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-10-20 11:00:00 - 2025-10-21 11:00:00 (UTC) (à ajuster selon votre fuseau horaire local). Par défaut, aucun intervalle de temps ne sera défini pour le tableau de bord importé.
Dépannage
La configuration personnalisée ne se charge pas
- Vérifiez que la variable d’environnement CUSTOM_OTELCOL_CONFIG_FILE est correctement définie
- Vérifiez que le fichier de configuration personnalisé est bien monté à l’emplacement /etc/otelcol-contrib/custom.config.yaml
- Consultez le contenu de la config personnalisée pour vérifier qu’il est bien lisible
Aucun log ne s’affiche dans HyperDX
- Assurez-vous que nginx écrit des logs au format JSON
- Vérifiez que le collector peut lire les logs
- Vérifiez que la configuration effective inclut votre receiver filelog
- Recherchez des erreurs dans les logs du collector
Prochaines étapes
- Configurez des alertes pour les métriques critiques (taux d’erreur, seuils de latence)
- Créez des tableaux de bord supplémentaires pour des cas d’usage spécifiques (surveillance des API, événements de sécurité)