高级功能需要额外执行 kubetail cluster install 安装 Kubetail API;切换多集群功能仅桌面版支持;日志依赖集群 Kubernetes API 权限,需能访问目标集群
kubetail
kubetail-orgApache-2.0活跃维护Kubernetes 实时日志面板,支持在终端或浏览器中查看多个 Pod 的日志,可部署在桌面、集群或 Docker 中,方便排查线上问题。
Real-time logging dashboard for Kubernetes. View logs in a terminal or a browser. Run anywhere - desktop, cluster, docker.
brew install kubetail
kubetail serveREADME 未说明
Kubetail 是 Kubernetes 实时日志面板,把多容器工作负载的日志合并成一条时间线,在终端或浏览器里跟踪
Kubernetes 实时日志面板,支持在终端或浏览器中查看多个 Pod 的日志,可部署在桌面、集群或 Docker 中,方便排查线上问题。
核心能力
- 按工作负载合并多容器日志为单一时间线
- 通过 Kubernetes API 直接拉取日志,无需转发到外部服务
- 按工作负载、时间范围、节点属性和 grep 过滤日志
- 跟踪容器生命周期事件,容器重建后时间线保持同步
- 支持桌面、集群、Docker 多种运行方式
容易踩的坑
- cli/v0.18.1最新正式版2026-10-22 · 2026-10-22 13:47 UTC
What's Changed
- ✨ Use fresh single-entry changelog with -sa per series for Launchpad by @amorey in https://github.com/kubetail-org/kubetail/pull/1170
- ✨ Bump dependencies to address security CVEs by @amorey in https://github.com/kubetail-org/kubetail/pull/1174
- 🎣 Handle unsupported grep regex errors by @joaquinalmora in https://github.com/kubetail-org/kubetail/pull/1173
- ✨ Replace interface{} with any in handwritten Go code by @enumura1 in https://github.com/kubetail-org/kubetail/pull/1178
- ✨ Use WaitGroup.Go for directly launched goroutines by @enumura1 in https://github.com/kubetail-org/kubetail/pull/1180
- Add Renovate to pin GitHub Actions to SHA by @sapienfrom2000s in https://github.com/kubetail-org/kubetail/pull/1182
- 🎣 Change Renovate token to use GITHUB_TOKEN by @amorey in https://github.com/kubetail-org/kubetail/pull/1183
- 🎣 Make Renovate run and open PRs by @sapienfrom2000s in https://github.com/kubetail-org/kubetail/pull/1184
- ✨ Sign Renovate commits with kubetail-bot SSH key by @amorey in https://github.com/kubetail-org/kubetail/pull/1188
- ✨ Pin GitHub Actions to commit SHAs by @kubetail-bot in https://github.com/kubetail-org/kubetail/pull/1189
- 🎣 Patch Dependabot alerts in Go modules by @amorey in https://github.com/kubetail-org/kubetail/pull/1191
- 🎣 Bump npm dependencies to resolve security advisories by @amorey in https://github.com/kubetail-org/kubetail/pull/1192
- 🎣 Bump google.golang.org/grpc to v1.83.2 by @amorey in https://github.com/kubetail-org/kubetail/pull/1193
- ✨ Use modern Go iteration and reflection APIs by @enumura1 in https://github.com/kubetail-org/kubetail/pull/1194
- Add actionlint for GitHub Actions workflows by @sapienfrom2000s in https://github.com/kubetail-org/kubetail/pull/1195
- 🎣 Bump dependencies to resolve Dependabot security alerts by @amorey in https://github.com/kubetail-org/kubetail/pull/1196
- ✨ Upgrade Go to 1.26.10 by @amorey in https://github.com/kubetail-org/kubetail/pull/1197
New Contributors
- @enumura1 made their first contribution in https://github.com/kubetail-org/kubetail/pull/1178
- @sapienfrom2000s made their first contribution in https://github.com/kubetail-org/kubetail/pull/1182
- @kubetail-bot made their first contribution in https://github.com/kubetail-org/kubetail/pull/1189
Full Changelog: https://github.com/kubetail-org/kubetail/compare/cli/v0.18.0...cli/v0.18.1
- cli/v0.18.02026-06-16 · 2026-06-16 14:43 UTC
查看更新说明
What's Changed
- 🎣 Add arrow key navigation for selected log cells by @ZhangDT-sky in https://github.com/kubetail-org/kubetail/pull/1126
- 🎣 Fix thin-border selection bug and refactor code by @amorey in https://github.com/kubetail-org/kubetail/pull/1139
- ✨ Address CodeQL alert and bump dependencies for CVEs by @amorey in https://github.com/kubetail-org/kubetail/pull/1140
- 🎣 Bump kubetail backend probe timeout to 5s by @amorey in https://github.com/kubetail-org/kubetail/pull/1141
- 🎣 Fix race condition in stream forwarder causing flaky test by @jerome-wilson in https://github.com/kubetail-org/kubetail/pull/1138
- test(shared): replace time.sleep with channel sync in syncgroup tests by @rwrrioe in https://github.com/kubetail-org/kubetail/pull/1143
- ✨ Add bats tests and shellcheck for install script. by @KaanSimsek in https://github.com/kubetail-org/kubetail/pull/1144
- ✨ Rename install-script CI jobs to shell lint/test by @amorey in https://github.com/kubetail-org/kubetail/pull/1145
- 🐋 Add utilities for configurable timestamp formatting and timezone support by @DavidReque in https://github.com/kubetail-org/kubetail/pull/1146
- ✨ Improve error handling and remove unnecessary unwraps in cluster agent by @KaanSimsek in https://github.com/kubetail-org/kubetail/pull/1147
- ✨ Bump dependencies by @amorey in https://github.com/kubetail-org/kubetail/pull/1153
- 🎣 Allow absent Sec-Fetch-Site in CSRF check by @amorey in https://github.com/kubetail-org/kubetail/pull/1155
- ✨ Add Python lint job to PR checks by @AhmedRabea2100 in https://github.com/kubetail-org/kubetail/pull/1157
- 🎣 Tighten Sec-Fetch-Site CSRF check to reject same-site by @amorey in https://github.com/kubetail-org/kubetail/pull/1158
- ✨ Add install.sh health checks to package-healthcheck cronjob by @smazmi in https://github.com/kubetail-org/kubetail/pull/1151
- ✨ Add fail-fast: false to matrix jobs in CI workflow by @smazmi in https://github.com/kubetail-org/kubetail/pull/1160
- ✨ Make PR checks diff-aware by @Tiago-Vier-Preto in https://github.com/kubetail-org/kubetail/pull/1159
- ✨ Simplify install-sh package healthcheck job to a single shell path by @amorey in https://github.com/kubetail-org/kubetail/pull/1161
- ✨ Simplify console sidebar UI and bump @kubetail/ui by @amorey in https://github.com/kubetail-org/kubetail/pull/1164
- ✨ Normalize sidebar label weights and counter alignment by @amorey in https://github.com/kubetail-org/kubetail/pull/1165
- ✨ Upgrade frontend dependencies and graphql-codegen to v6/v7 by @amorey in https://github.com/kubetail-org/kubetail/pull/1166
- ✨ Release/0.25.0 by @amorey in https://github.com/kubetail-org/kubetail/pull/1167
- ✨ Bump quic-go to v0.59.1 (CVE) and pin esbuild override by @amorey in https://github.com/kubetail-org/kubetail/pull/1168
- ✨ Pin pnpm via packageManager field and use frozen lockfile by @amorey in https://github.com/kubetail-org/kubetail/pull/1169
New Contributors
- @rwrrioe made their first contribution in https://github.com/kubetail-org/kubetail/pull/1143
- @KaanSimsek made their first contribution in https://github.com/kubetail-org/kubetail/pull/1144
- @AhmedRabea2100 made their first contribution in https://github.com/kubetail-org/kubetail/pull/1157
- @Tiago-Vier-Preto made their first contribution in https://github.com/kubetail-org/kubetail/pull/1159
Full Changelog: https://github.com/kubetail-org/kubetail/compare/cli/v0.17.0...cli/v0.18.0
- cli/v0.17.02026-05-05 · 2026-05-05 23:10 UTC
查看更新说明
What's Changed
- ✨ Support forwarded host in same-origin check by @amorey in https://github.com/kubetail-org/kubetail/pull/1103
- 🎣 Relax hex requirement for session key-pairs by @amorey in https://github.com/kubetail-org/kubetail/pull/1107
- ✨ Trigger publish workflows only on stable releases by @amorey in https://github.com/kubetail-org/kubetail/pull/1110
- ✨ Add CSRF token support to GraphiQL page by @amorey in https://github.com/kubetail-org/kubetail/pull/1111
- 🎣 Fix CSRF rejection of legitimate same-origin POSTs by @amorey in https://github.com/kubetail-org/kubetail/pull/1112
- 🎣 Prevent client-supplied X-Forwarded-Authorization from shadowing service-account-token by @amorey in https://github.com/kubetail-org/kubetail/pull/1113
- 🎣 Harden CSRF token handling by @amorey in https://github.com/kubetail-org/kubetail/pull/1114
- 🎣 Stop trusting X-Forwarded-* headers in same-origin check by @amorey in https://github.com/kubetail-org/kubetail/pull/1117
- ✨ Add allowed-origins config for proxied deployments by @amorey in https://github.com/kubetail-org/kubetail/pull/1118
- ✨ Consolidate publish-guru workflow and add pkgcheck by @amorey in https://github.com/kubetail-org/kubetail/pull/1120
- 🎣 Fix context cancellation in mergeLogStreams by @jerome-wilson in https://github.com/kubetail-org/kubetail/pull/1121
- ✨ Add end-to-end test suite by @amorey in https://github.com/kubetail-org/kubetail/pull/1127
- ✨ Put cluster-api behind kube-apiserver aggregation layer by @amorey in https://github.com/kubetail-org/kubetail/pull/1125
- ✨ Simplify e2e suite by dropping env/backend parametrization by @amorey in https://github.com/kubetail-org/kubetail/pull/1129
- ✨ Migrate e2e cluster tool from k3d to kind by @amorey in https://github.com/kubetail-org/kubetail/pull/1130
- ✨ Bump grpc-dispatcher-go to v0.1.6 by @amorey in https://github.com/kubetail-org/kubetail/pull/1132
- 🐋 Add Kubetail API backend to
kubetail logsby @amorey in https://github.com/kubetail-org/kubetail/pull/1133 - 🎣 Remove invalid --upload flag from cosign sign in release workflow by @amorey in https://github.com/kubetail-org/kubetail/pull/1134
- 🎣 Fix kubetail logs backend fallback, filters, and pagination by @amorey in https://github.com/kubetail-org/kubetail/pull/1135
- ✨ Add background update check with notification by @amorey in https://github.com/kubetail-org/kubetail/pull/1137
Full Changelog: https://github.com/kubetail-org/kubetail/compare/cli/v0.15.0...cli/v0.17.0
- cli/v0.16.02026-04-28 · 2026-04-28 12:23 UTC
查看更新说明
What's Changed
- ✨ Drop kubetail-bin from publish-guru and trim old ebuilds by @amorey in https://github.com/kubetail-org/kubetail/pull/1100
- ✨ Support forwarded host in same-origin check by @amorey in https://github.com/kubetail-org/kubetail/pull/1103
- 🎣 Honor Forwarded proto directive in same-origin scheme check by @amorey in https://github.com/kubetail-org/kubetail/pull/1104
- 🎣 Disable WebSocket per-message compression in GraphQL servers by @amorey in https://github.com/kubetail-org/kubetail/pull/1105
- 🐋 Add CSRF protection to dashboard and cluster-api by @amorey in https://github.com/kubetail-org/kubetail/pull/1106
- 🎣 Relax hex requirement for session key-pairs by @amorey in https://github.com/kubetail-org/kubetail/pull/1107
- ✨ Release/0.22.0 by @amorey in https://github.com/kubetail-org/kubetail/pull/1109
- ✨ Trigger publish workflows only on stable releases by @amorey in https://github.com/kubetail-org/kubetail/pull/1110
- ✨ Add CSRF token support to GraphiQL page by @amorey in https://github.com/kubetail-org/kubetail/pull/1111
- 🎣 Fix CSRF rejection of legitimate same-origin POSTs by @amorey in https://github.com/kubetail-org/kubetail/pull/1112
- 🎣 Prevent client-supplied X-Forwarded-Authorization from shadowing service-account-token by @amorey in https://github.com/kubetail-org/kubetail/pull/1113
- 🎣 Harden CSRF token handling by @amorey in https://github.com/kubetail-org/kubetail/pull/1114
- 🎣 Stop trusting X-Forwarded-* headers in same-origin check by @amorey in https://github.com/kubetail-org/kubetail/pull/1117
- ✨ Add allowed-origins config for proxied deployments by @amorey in https://github.com/kubetail-org/kubetail/pull/1118
Full Changelog: https://github.com/kubetail-org/kubetail/compare/cli/v0.15.0...cli/v0.16.0
- cli/v0.15.1-rc3pre-release2026-04-28 · 2026-04-28 11:32 UTC
查看更新说明
What's Changed
- ✨ Drop kubetail-bin from publish-guru and trim old ebuilds by @amorey in https://github.com/kubetail-org/kubetail/pull/1100
- ✨ Support forwarded host in same-origin check by @amorey in https://github.com/kubetail-org/kubetail/pull/1103
- 🎣 Honor Forwarded proto directive in same-origin scheme check by @amorey in https://github.com/kubetail-org/kubetail/pull/1104
- 🎣 Disable WebSocket per-message compression in GraphQL servers by @amorey in https://github.com/kubetail-org/kubetail/pull/1105
- 🐋 Add CSRF protection to dashboard and cluster-api by @amorey in https://github.com/kubetail-org/kubetail/pull/1106
- 🎣 Relax hex requirement for session key-pairs by @amorey in https://github.com/kubetail-org/kubetail/pull/1107
- ✨ Release/0.22.0 by @amorey in https://github.com/kubetail-org/kubetail/pull/1109
- ✨ Trigger publish workflows only on stable releases by @amorey in https://github.com/kubetail-org/kubetail/pull/1110
- ✨ Add CSRF token support to GraphiQL page by @amorey in https://github.com/kubetail-org/kubetail/pull/1111
- 🎣 Fix CSRF rejection of legitimate same-origin POSTs by @amorey in https://github.com/kubetail-org/kubetail/pull/1112
- 🎣 Prevent client-supplied X-Forwarded-Authorization from shadowing service-account-token by @amorey in https://github.com/kubetail-org/kubetail/pull/1113
- 🎣 Harden CSRF token handling by @amorey in https://github.com/kubetail-org/kubetail/pull/1114
- 🎣 Stop trusting X-Forwarded-* headers in same-origin check by @amorey in https://github.com/kubetail-org/kubetail/pull/1117
- ✨ Add allowed-origins config for proxied deployments by @amorey in https://github.com/kubetail-org/kubetail/pull/1118
Full Changelog: https://github.com/kubetail-org/kubetail/compare/cli/v0.15.0...cli/v0.15.1-rc3
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Kubetail
Kubetail is a real-time logging dashboard for Kubernetes
Demo: https://www.kubetail.com/demo
English | 简体中文 | 日本語 | 한국어 | Deutsch | Español | Português | Français
Introduction
Kubetail is a general-purpose logging dashboard for Kubernetes, optimized for tailing logs across multi-container workloads in real-time. With Kubetail, you can view logs from all the containers in a workload (e.g. Deployment or DaemonSet) merged into a single, chronological timeline, delivered to your browser or terminal.
The primary entry point for Kubetail is the kubetail CLI tool, which can launch a local web dashboard on your desktop or stream raw logs directly to your terminal. Behind the scenes, Kubetail uses your cluster's Kubernetes API to fetch logs directly from your cluster, so it works out of the box without needing to forward your logs to an external service. Kubetail also uses your Kubernetes API to track container lifecycle events in order to keep your log timeline in sync as containers start, stop or get replaced. This makes it easy to follow logs seamlessly as user requests move from one ephemeral container to another across services.
Our goal is to build the most powerful, user-friendly logging platform for Kubernetes and we'd love your help. If you notice a bug or have a suggestion please create a GitHub Issue or send us an email ([email protected])!
Features
- Clean, easy-to-use interface
- View log messages in real-time
- Filter logs by:
- Workload (e.g. Deployment, CronJob, StatefulSet)
- Absolute or relative time range
- Node properties (e.g. availability zone, CPU architecture, node ID)
- Grep
- Uses your Kubernetes API to retrieve log messages so data never leaves your possession (private by default)
- Switch between multiple clusters (Desktop-only)
- Run anywhere: Desktop, Cluster, Docker
Quickstart
Installation
To install kubetail you can use Homebrew:
brew install kubetail
# Krew
kubectl krew install kubetail
# Snap
sudo snap install kubetail
# Winget
winget install kubetail
# Chocolatey
choco install kubetail
# Scoop
scoop install kubetail
# MacPorts
sudo port install kubetail
# Ubuntu/Mint (apt)
sudo add-apt-repository ppa:kubetail/kubetail
sudo apt update && sudo apt install kubetail-cli
# Fedora/CentOS/RHEL/Amazonlinux/Mageia (copr)
dnf copr enable kubetail/kubetail
dnf install kubetail
# SUSE (zypper)
zypper addrepo 'https://download.opensuse.org/repositories/home:/kubetail/$releasever/' kubetail
zypper refresh && zypper install kubetail-cli
# Alpine (apk)
apk add kubetail --repository=https://dl-cdn.alpinelinux.org/alpine/edge/testing
# Arch Linux (AUR)
yay -S --noconfirm kubetail-cli
# Gentoo (GURU)
ACCEPT_KEYWORDS="~$(portageq envvar ARCH)" emerge dev-util/kubetail
# Nix (Flake)
nix profile add github:kubetail-org/kubetail-nix
# Nix (Classic)
nix-env -i -f https://github.com/kubetail-org/kubetail-nix/archive/refs/heads/main.tar.gz
# asdf
asdf plugin add kubetail https://github.com/kubetail-org/asdf-kubetail.git
asdf install kubetail latest
If you prefer, you can also download it from the release binaries or use our install script:
curl -sS https://www.kubetail.com/install.sh | bash
Usage
Here are some ways to use kubetail:
1. Start the web dashboard (GUI)
kubetail serve
2. View logs in your terminal
kubetail logs -f deployments/my-app
3. Enable advanced features (by installing Kubetail API)
kubetail cluster install
4. Initialize a local config file
kubetail config init
See the documentation for a full list of commands. Have fun tailing your logs!
Run Anywhere
In addition to running Kubetail on your desktop you can also run it in these environments:
Documentation
Visit our full documentation at https://www.kubetail.com
Roadmap and Status
This is our high-level plan for the Kubetail project, in order:
| Step | Status | |
|---|---|---|
| 1 | Real-time container logs | ✅ |
| 2 | Real-time search and polished user experience | 🛠️ |
| 3 | Real-time system logs (e.g. systemd, k8s events) | 🔲 |
| 4 | Basic customizability (e.g. colors, time formats) | 🔲 |
| 5 | Message parsing and metrics | 🔲 |
| 6 | Historic data (e.g. log archives, metrics timeseries) | 🔲 |
| 7 | Kubetail API and developer-facing client libraries | 🔲 |
| N | World Peace | 🔲 |
And here are some additional details:
Real-time container logs
Users can view the container logs from the pods currently running inside their clusters quickly and easily using a web dashboard. Users can view container logs organized by workloads and follow log messages as ephemeral containers get created and deleted. They can also narrow their viewing window by timestamp and filter logs by source properties such as region, zone and node.
Real-time search and polished user experience
Users can install Kubetail easily on their desktops and in their clusters. By default, Kubetail will use only the Kubernetes API to fetch basic data such as running workloads and container logs. If a user wants more advanced functionality they can install Kubetail custom services in their cluster (i.e. "Kubetail Cluster API" and "Kubetail Cluster Agent", collectively known as the "Kubetail API") and gain access to features such as log search, log file sizes and last event timestamps. The entire experience of installing, upgrading and uninstalling the Kubetail API is very polished and users are able to view their logs with equally powerful tools in the browser and the terminal using the Kubetail web dashboard and CLI tool.
Real-time system logs
Users who install the Kubetail API gain immediate access to their node-level logs (e.g. systemd) and cluster-level logs (e.g. kubernetes events) and view them in an integrated interface that shows their container logs in context with other system information such as CPU utilization, memory usage and disk space. System logs are viewable in real-time, in the same merged timeline with other logs. Users can filter system logs by timestamp and source properties.
Basic customizability
Users can fully customize their Kubetail experience when using the web dashboard and CLI tool by modifying their user settings. The user settings are modifiable by hand using a config file or via the dashboard UI. The experience is very polished and works seamlessly across upgrades that may add/remove/modify user settings. Users have the option to sync their settings across multiple devices.
Development
Repository Structure
This monorepo contains the following modules:
- Kubetail CLI (modules/cli)
- Kubetail Cluster API (modules/cluster-api)
- Kubetail Cluster Agent (crates/cluster_agent)
- Kubetail Dashboard (modules/dashboard)
It also contains the source code for the Kubetail Dashboard's frontend:
- Dashboard UI (dashboard-ui)
Setting up the Development Environment
Dependencies
- Go
- pnpm
- Tilt
- Tilt-compatible cluster (e.g. minikube, kind, docker-desktop)
- ctlptl (optional)
Next steps
- Create a Tilt-compatible Kubernetes Dev Cluster:
# minikube
ctlptl apply -f hack/ctlptl/minikube.yaml
# kind
ctlptl apply -f hack/ctlptl/kind.yaml
# docker-desktop
ctlptl apply -f hack/ctlptl/docker-desktop.yaml
- Start the dev environment:
tilt up
- Start the Dashboard server:
cd modules/dashboard
go run cmd/main.go -c hack/config.yaml
- Run the Dashboard UI locally:
cd dashboard-ui
pnpm install
pnpm dev
Now access the dashboard at http://localhost:5173.
By default, the dev environment uses a pre-built image for the Rust-based cluster-agent. If you're working on the Rust code, you can use the KUBETAIL_RUST_DEV_MODE environment variable to enable a development mode that compiles the Rust code and syncs the binary into the cluster. There are two modes available:
| Mode | Description |
|---|---|
docker | Compiles the Rust code inside a Docker container. No local Rust toolchain required. |
local | Compiles the Rust code on your machine using cross-compilation. Faster rebuilds but requires local setup. |
Docker mode
To use Docker mode, run Tilt with the KUBETAIL_RUST_DEV_MODE env variable set to docker:
KUBETAIL_RUST_DEV_MODE=docker tilt up
Local mode
Local mode requires additional dependencies and setup but offers faster rebuild times.
Dependencies
Setup
First, install the Rust target required for your architecture:
# x86_64
rustup target add x86_64-unknown-linux-musl
# aarch64
rustup target add aarch64-unknown-linux-musl
Next, install the tools required by Rust cross compiler:
# macOS (Homebrew)
brew install FiloSottile/musl-cross/musl-cross
# Linux (Ubuntu)
apt-get install musl-tools
On macOS, add this to your ~/.cargo/config.toml file:
[target.x86_64-unknown-linux-musl]
linker = "x86_64-linux-musl-gcc"
[target.aarch64-unknown-linux-musl]
linker = "aarch64-linux-musl-gcc"
Finally, run Tilt with the KUBETAIL_RUST_DEV_MODE env variable set to local:
KUBETAIL_RUST_DEV_MODE=local tilt up
Build
CLI Tool
To build the Kubetail CLI tool executable (kubetail), run the following command:
make
When the build process finishes you can find the executable in the local bin/ directory.
Dashboard
To build a docker image for a production deployment of the Kubetail Dashboard server, run the following command:
docker build -f build/package/Dockerfile.dashboard -t kubetail-dashboard:latest .
Cluster API
To build a docker image for a production deployment of the Kubetail Cluster API server, run the following command:
docker build -f build/package/Dockerfile.cluster-api -t kubetail-cluster-api:latest .
Cluster Agent
To build a docker image for a production deployment of the Kubetail Cluster Agent, run the following command:
docker build -f build/package/Dockerfile.cluster-agent -t kubetail-cluster-agent:latest .
Get Involved
We're building the most user-friendly, cost-effective, and secure logging platform for Kubernetes and we'd love your contributions! Here's how you can help:
- UI/UX design
- React frontend development
- Reporting issues and suggesting features
Reach us at [email protected], or join our Discord server or Slack channel.