--- title: Traefik Log Dashboard created: 2026-06-06 updated: 2026-06-06 type: app tags: [catalogue, reverse-proxy, monitoring, logs, dashboard, traefik, observabilite] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Reverse+Proxy, https://github.com/hhftechnology/traefik-log-dashboard] --- # 🚦 Traefik Log Dashboard > **Dashboard temps réel pour analyser les logs Traefik avec géolocalisation IP, codes HTTP et métriques par service**. Stack React (Shadcn UI) + agent Go haute performance, supporte les déploiements multi-instances Traefik. ## 📋 Informations Générales | Champ | Valeur | | :--- | :--- | | **Site web** | [hhf.technology](https://hhf.technology/) | | **GitHub** | [hhftechnology/traefik-log-dashboard](https://github.com/hhftechnology/traefik-log-dashboard) | | **License** | AGPL-3.0 | | **Langage** | TypeScript (75.4 %), Go (20.2 %) | | **Étoiles GitHub** | 779 ⭐ | | **Dernière MAJ** | 2026-04-14 (v3.1.1) | | **Catégorie** | [[cat-reverse-proxy|Reverse Proxy]], Monitoring, Observabilité | ## 📝 Description **Traefik Log Dashboard** est un **dashboard analytique dédié à Traefik** qui parse les logs d'accès et d'erreur du reverse proxy pour fournir une visualisation temps-réel des flux : top IPs, top services, codes de réponse, géolocalisation sur **globe 3D interactif**, alertes Discord, et bien plus. C'est l'outil de référence pour quiconque veut **comprendre son trafic** sans exporter vers un ELK/Grafana/Loki lourd à maintenir. L'architecture est en **deux composants** : - **Agent (Go, ~15 MB)** : un service léger qui **tail les logs Traefik en JSON** (CLF/JSON supportés), parse incrémentalement avec **position tracking** (pas de reparse à chaque redémarrage) et expose une **API REST** (port 5000) consommée par le dashboard. - **Dashboard (Vite/React, ~151 MB)** : l'UI web servie sur le port 3000, construite avec **Shadcn UI** et **Recharts** pour les graphes. **Caractéristiques principales** : - ✅ **Globe 3D interactif** : visualisation géographique des requêtes par pays - ✅ **Multi-agent** : un dashboard peut centraliser les logs de **plusieurs instances Traefik** (ex: cluster multi-host, plusieurs sites) - ✅ **Filtres avancés** : include/exclude, filtres géographiques, regex custom - ✅ **Alertes Discord** : webhooks, résumés quotidiens, seuils configurables - ✅ **GeoIP automatique** sans base MaxMind externe (intégré) - ✅ **Mobile app** : iOS et Android (apps natives officielles) - ✅ **CLI TUI** (Bubble Tea) : consulter les stats depuis un terminal SSH - ✅ **Compatibilité Traefik v2 et v3**, intégration **Pangolin** native - ✅ **Auth Pangolin / Basis** supportée pour sécuriser l'accès **Public cible** : opérateurs de Traefik qui veulent **un outil clé en main** au lieu d'assembler Grafana + Loki + Promtail + GeoIP, ou d'utiliser des SaaS comme Datadog. Particulièrement pertinent pour les setups **Pangolin** (la même équipe édite Middleware Manager, Traefik Log Dashboard et d'autres outils HHF). ## 🚀 Installation ### Prérequis : activer les access logs dans Traefik ```yaml # traefik.yml (statique) accessLog: filePath: "/var/log/traefik/access.log" format: json bufferingSize: 100 fields: defaultMode: keep headers: defaultMode: drop names: Authorization: redact Cookie: redact ``` > ⚠️ `format: json` est **fortement recommandé** pour le parsing par l'agent. Le format `common` est supporté mais limité. ### Option 1 : Docker Compose (recommandé) ```yaml # docker-compose.yml version: '3.8' services: traefik-agent: image: hhftechnology/traefik-log-dashboard-agent:latest container_name: traefik-log-dashboard-agent restart: unless-stopped ports: - "5000:5000" volumes: - /var/log/traefik:/logs:ro # logs Traefik en read-only - ./data/positions:/data # position tracking environment: - TRAEFIK_LOG_DASHBOARD_ACCESS_PATH=/logs/access.log - TRAEFIK_LOG_DASHBOARD_ERROR_PATH=/logs/traefik.log - TRAEFIK_LOG_DASHBOARD_AUTH_TOKEN=changeme-32-hex - TRAEFIK_LOG_DASHBOARD_SYSTEM_MONITORING=true - TRAEFIK_LOG_DASHBOARD_LOG_FORMAT=json healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:5000/api/logs/status"] interval: 2m timeout: 10s retries: 3 networks: - proxy traefik-dashboard: image: hhftechnology/traefik-log-dashboard:latest container_name: traefik-log-dashboard restart: unless-stopped ports: - "3000:3000" volumes: - ./data/dashboard:/app/data - ./data/positions:/data environment: - AGENT_API_URL=http://traefik-agent:5000 - AGENT_API_TOKEN=changeme-32-hex # MÊME token que l'agent - AGENT_NAME=Default Agent - NODE_ENV=production - PORT=3000 - NEXT_PUBLIC_MAX_LOGS_DISPLAY=500 depends_on: traefik-agent: condition: service_healthy networks: - proxy networks: proxy: external: true ``` ### Variante Traefik (exposer le dashboard derrière Traefik) ```yaml # ajout au docker-compose.yml ci-dessus traefik-dashboard: # ... (même bloc) labels: - "traefik.enable=true" - "traefik.docker.network=proxy" - "traefik.http.routers.tld.rule=Host(`logs.example.com`)" - "traefik.http.routers.tld.entrypoints=websecure" - "traefik.http.routers.tld.tls.certresolver=letsencrypt" - "traefik.http.services.tld.loadbalancer.server.port=3000" # optionnel : auth basique - "traefik.http.routers.tld.middlewares=auth" - "traefik.http.middlewares.auth.basicauth.users=admin:$$apr1$$abc..." ``` > 💡 **Générer un token sécurisé** : `openssl rand -hex 32` (32 octets en hexadécimal = 64 caractères). Utiliser la **même valeur** pour `TRAEFIK_LOG_DASHBOARD_AUTH_TOKEN` (côté agent) et `AGENT_API_TOKEN` (côté dashboard). ## ⚙️ Configuration Initiale 1. **S'assurer que Traefik écrit des logs JSON** dans `/var/log/traefik/access.log`. 2. **Monter ce dossier en read-only** dans le conteneur agent (`/logs:ro`). 3. **Créer le réseau externe** `proxy` s'il n'existe pas : `docker network create proxy`. 4. **Lancer** : `docker compose up -d`. 5. **Accéder au dashboard** : `http://YOUR_HOST:3000` (ou `https://logs.example.com` si derrière Traefik). 6. **Configurer l'agent** depuis l'UI : nom, timezone, alertes Discord, filtres. 7. **Ajouter d'autres agents** (multi-instance) via le menu Settings → Agents. ## 🔄 Alternatives ### Open Source - [[app-traefik]] — UI native de Traefik (basique, pas d'analytique) - **Grafana + Loki + Promtail** — combo standard mais lourd - **Apache Superset + Traefik logs** — analytics SQL sur logs - **GoAccess** — analyseur de logs terminal/HTML léger - **Matomo / Plausible** — orientés web analytics (pas logs reverse proxy) ### Propriétaires (ce que Traefik Log Dashboard remplace) - **Datadog Log Management** (à partir de 0,10 $/GB ingéré) - **New Relic Logs** - **Splunk Cloud** - **Sumo Logic** - **Better Stack / Logtail** ### Comparaison rapide | Critère | Traefik Log Dashboard | Grafana + Loki | Datadog | | :--- | :--- | :--- | :--- | | Complexité | ✅ Faible (2 conteneurs) | ⚠️ Moyenne | ✅ Aucune (SaaS) | | Coût | Gratuit (self-hosted) | Gratuit | Payant (volumique) | | Globe 3D géo | ✅ | ❌ (carte basique) | ✅ | | Multi-agent | ✅ Natif | ✅ (Promtail) | ✅ | | Alertes Discord | ✅ | ✅ (Alertmanager) | ✅ (multi-canal) | | Recherche full-text | Basique | ✅ (LogQL) | ✅ | | License | AGPL-3.0 | AGPL-3.0 (Loki) | Propriétaire | **Verdict** : **Traefik Log Dashboard** pour une stack **légère clé en main** dédiée à Traefik. **Grafana + Loki** pour des besoins de **requêtage avancé** et un écosystème large. **Datadog** pour une solution **managée sans effort** mais payante. ## 🔐 Sécurité - **Token partagé agent ↔ dashboard** (32+ caractères hex) : rotation possible depuis l'UI - **Auth Pangolin / Basis** : recommandée pour l'accès à l'UI web - **Logs en lecture seule** dans l'agent (`:ro`) : impossible d'altérer les logs depuis l'agent - **Redaction de headers sensibles** : configurer Traefik pour `drop` les `Authorization` et `Cookie` dans les logs - **Discord webhooks** : utiliser des webhooks privés (canal restreint), pas publics - ⚠️ **L'agent expose une API REST non chiffrée** par défaut : à mettre derrière un réseau privé ou via HTTPS reverse proxy - ⚠️ **AGPL-3.0** : si vous modifiez et exposez publiquement le service, vous devez publier vos modifications ## 📚 Ressources - [Quick Start Guide officiel](https://github.com/hhftechnology/traefik-log-dashboard/blob/main/QUICK_START_GUIDE.md) - [Helm Charts (Kubernetes)](https://github.com/hhftechnology/traefik-log-dashboard/tree/main/charts) - [Documentation Traefik access logs](https://doc.traefik.io/traefik/observability/access-logs/) - [Mobile app iOS / Android](https://github.com/hhftechnology/traefik-log-dashboard) (liens dans le README) - [Forum HHF Technology](https://forum.hhf.technology/tag/traefik-log-dashboard) ## Pages Liées - [[cat-reverse-proxy]] — Catégorie Reverse Proxy - [[app-traefik]] — Le reverse proxy dont on analyse les logs - [[app-middleware-manager]] — du même éditeur HHF - [[monitoring]] — concepts d'observabilité - [[comparatif-reverse-proxy]] — Comparaison détaillée - [[loki-promtail]] — alternative Grafana stack