--- title: Kubetail created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, logs, kubernetes, k8s, dashboard, real-time, multi-pod, typescript, kubectl] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Logs, https://github.com/kubetail-org/kubetail] --- # 📋 Kubetail > **Le `kubectl logs` revisité** : dashboard web et TUI pour suivre les logs de plusieurs pods Kubernetes en temps réel, avec sélection de containers, namespaces et tail multi-stream. Le k9s des logs. ## 📋 Informations Générales | Champ | Valeur | | :--- | :--- | | **Site web** | [kubetail.com](https://www.kubetail.com/) | | **GitHub** | [kubetail-org/kubetail](https://github.com/kubetail-org/kubetail) | | **License** | Apache-2.0 | | **Langage** | TypeScript (Node.js) + Go (backend) | | **Étoiles GitHub** | 1.7k ⭐ | | **Dernière MAJ** | 2026-06-04 | | **Catégorie** | [[cat-logs|Logs]] | ## 📝 Description **Kubetail** est un **dashboard de logs Kubernetes** qui résout le plus gros point de friction de `kubectl` : **suivre les logs de plusieurs pods simultanément**. Fini le jonglage entre 5 terminaux avec `kubectl logs -f pod-1`, `kubectl logs -f pod-2`, etc. Kubetail unifie tout dans une seule UI web (ou TUI) avec sélection des containers, namespaces, et filtrage. L'outil propose deux interfaces : une **UI web** moderne (basée sur le kubeconfig local ou un service account K8s) et un **TUI** terminal (style k9s). Les deux supportent le **tail multi-pod**, la **colorisation par container**, la **recherche full-text**, et la **sélection dynamique** des ressources à suivre. C'est un outil indispensable pour le debug en cluster. Kubetail peut être utilisé en **mode local** (CLI qui lit votre kubeconfig) ou **mode serveur** (déployé dans le cluster avec un service account, accessible à toute l'équipe). Le mode serveur permet de **partager** une session de debug avec des collègues ou de surveiller depuis un navigateur distant. **Public cible** : développeurs backend qui débuggent des microservices K8s, SRE qui font du troubleshooting en cluster, équipes DevOps qui veulent partager des sessions de logs, toute personne qui trouve `kubectl logs` limité. - ✅ **Dashboard web** : UI moderne accessible depuis le navigateur - ✅ **TUI terminal** : pour les SSH dans des jump hosts - ✅ **Multi-pod** : tail simultané de N pods/containers - ✅ **Multi-namespace** : switch rapide entre namespaces - ✅ **Recherche full-text** : grep-like sur les logs en temps réel - ✅ **Colorisation** : logs colorés par container/pod - ✅ **Mode CLI local** : utilise votre `~/.kube/config` - ✅ **Mode serveur** : déployé dans le cluster pour l'équipe - ✅ **Kubernetes RBAC** : respect des permissions K8s natives - ✅ **Source d'events K8s** : integration avec les Events API - ✅ **Apache-2.0** : usage libre, même commercial - ⚠️ **Pas de rétention** : viewer, pas aggregator (utiliser Loki en complément) ## 🚀 Installation ### Option 1 : Kubetail CLI (mode local) ```bash # macOS / Linux curl -L https://raw.githubusercontent.com/kubetail-org/kubetail/main/install.sh | sh # Homebrew brew install kubetail # Vérifier l'install kubetail --version ``` ### Option 2 : Docker (mode serveur) ```yaml # docker-compose.yml (déploiement dans le cluster recommandé) # Ou en standalone pour test : version: '3.8' services: kubetail: image: kubetail-org/kubetail:latest container_name: kubetail restart: unless-stopped ports: - "7500:7500" # Backend API - "8080:8080" # Web UI volumes: - ./kubeconfig:/root/.kube/config:ro labels: - "traefik.enable=true" - "traefik.http.routers.kubetail.rule=Host(`kubetail.example.com`)" - "traefik.http.routers.kubetail.entrypoints=websecure" - "traefik.http.routers.kubetail.tls.certresolver=letsencrypt" ``` ### Option 3 : Helm (Kubernetes) ```bash helm repo add kubetail https://kubetail-org.github.io/helm-charts helm install kubetail kubetail/kubetail \ --namespace logging --create-namespace ``` ### Option 4 : kubectl plugin ```bash kubectl krew install tail kubectl tail deployment/my-app ``` ## ⚙️ Configuration Initiale 1. **Vérifier kubectl** : `kubectl get nodes` doit fonctionner 2. **Lancer le mode local** : `kubetail` → ouvre le TUI 3. **Sélectionner une ressource** : TUI > taper le nom du deployment/statefulset 4. **Lancer le mode web** : `kubetail web --port 8080` 5. **Accéder à l'UI** : `http://IP:8080` 6. **Sélectionner namespace/pods** : UI > dropdowns 7. **Tail multi-pod** : cocher plusieurs pods dans l'UI 8. **Rechercher** : barre de recherche (regex supporté) 9. **Mode serveur cluster** : déployer via Helm, créer un ServiceAccount dédié ## 🔄 Alternatives ### Open Source - **k9s** — Dashboard K8s généraliste (inclut logs) - **Lens** — IDE K8s avec logs intégrés - **Rancher** — Plateforme K8s (logs) - [[app-loki]] + [[app-grafana]] — Pour archivage long terme - **stern** — Multi-pod log tailer en CLI (Go) - **kubectl-tail** — Plugin kubectl de base ### Comparaison Kubetail vs autres | Critère | Kubetail | k9s | stern | Loki/Grafana | | :--- | :--- | :--- | :--- | :--- | | **Focus** | Logs | K8s général | Logs CLI | Logs + métriques | | **UI** | Web + TUI | TUI | CLI | Web | | **Multi-pod** | ✅ UI | ✅ UI | ✅ | ✅ | | **Mode partageable** | ✅ (serveur) | ❌ | ❌ | ✅ | | **Recherche full-text** | ✅ | ❌ | ✅ | ✅ Excellente | | **Rétention** | ❌ | ❌ | ❌ | ✅ Configurable | | **Setup** | 2 min | 5 min | 30s | 30 min | | **Ressources cluster** | Aucune | Aucune | Aucune | Lourdes | | **License** | Apache-2.0 | Apache-2.0 | Apache-2.0 | AGPL-3.0 | **Verdict** : Kubetail est **le meilleur viewer de logs K8s** pour le debug en temps réel. Pour l'archivage long terme, [[app-loki]] + Grafana est incontournable. En complément de k9s, c'est le duo parfait. ### Propriétaires (ce que Kubetail remplace) - **Datadog Log Monitoring** (cher, K8s integration payante) - **New Relic Logs** (K8s) - **Splunk Observability Cloud** (K8s) - **Sumo Logic** (K8s log monitoring) - **Dynatrace** (K8s log management) ## 🔐 Sécurité - ⚠️ **Logs = données sensibles** : logs K8s contiennent souvent des secrets, tokens - ✅ **Chiffrement in-transit** : TLS obligatoire (Traefik en reverse proxy) - ✅ **K8s RBAC natif** : Kubetail respecte les permissions Kubernetes - ✅ **Service Account dédié** : créer un SA avec permissions minimales - ✅ **Read-only** : Kubetail ne fait que lire, jamais d'écriture sur le cluster - ⚠️ **Rétention** : aucune, c'est un viewer (ne pas y aller pour la conformité) - ✅ **Pas de stockage** : aucune base de données à compromettre - ✅ **Audit K8s** : les accès logs sont tracés par K8s audit log - ✅ **Pas de backup nécessaire** : stateless - ⚠️ **Secret leak** : attention aux secrets en clair dans les env vars des pods ## 📚 Ressources - [GitHub kubetail-org/kubetail](https://github.com/kubetail-org/kubetail) - [Documentation officielle](https://www.kubetail.com/docs) - [Démo en ligne](https://demo.kubetail.com/) - [Blog technique](https://www.kubetail.com/blog) ## Pages Liées - [[cat-logs]] — Catégorie Logs - [[app-loki]] — Archivage long terme K8s - [[app-grafana]] — Visualisation (couplage Loki) - [[app-prometheus]] — Métriques K8s - [[app-uptime-kuma]] — Monitoring uptime - [[securisation-home-lab]] — Bonnes pratiques sécurité