9.4 KiB
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 |
| GitHub | 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 |
📝 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
# 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: jsonest fortement recommandé pour le parsing par l'agent. Le formatcommonest supporté mais limité.
Option 1 : Docker Compose (recommandé)
# 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)
# 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 pourTRAEFIK_LOG_DASHBOARD_AUTH_TOKEN(côté agent) etAGENT_API_TOKEN(côté dashboard).
⚙️ Configuration Initiale
- S'assurer que Traefik écrit des logs JSON dans
/var/log/traefik/access.log. - Monter ce dossier en read-only dans le conteneur agent (
/logs:ro). - Créer le réseau externe
proxys'il n'existe pas :docker network create proxy. - Lancer :
docker compose up -d. - Accéder au dashboard :
http://YOUR_HOST:3000(ouhttps://logs.example.comsi derrière Traefik). - Configurer l'agent depuis l'UI : nom, timezone, alertes Discord, filtres.
- 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
droplesAuthorizationetCookiedans 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
- Helm Charts (Kubernetes)
- Documentation Traefik access logs
- Mobile app iOS / Android (liens dans le README)
- Forum HHF Technology
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