Kubetail is a web dashboard for Kubernetes logs that lets you view multiple log streams simultaneously, in real-time (runs on desktop or in cluster)
Demo: https://www.kubetail.com/demo
Viewing application logs in a containerized environment can be challenging. Typically, an application consists of several services, each deployed across multiple containers which are load balanced to ensure an even consumption of resources. Although viewing individual container logs is easy using tools such as kubectl
or the Kubernetes Dashboard, simultaneously monitoring logs from all the containers that constitute an application is more difficult. This is made even more difficult by the ephemeral nature of containers, which constantly cycle in and out of existence.
Kubetail solves this problem by providing an easy-to-use, web-based interface that allows you to view all the logs for a set of Kubernetes workloads (e.g. Deployment, CronJob, StatefulSet) simultaneously, in real-time. Under the hood, it uses your cluster's Kubernetes API to monitor your workloads and detect when a new workload container gets created or an old one deleted. Kubetail will then add messages from the new container to your viewing stream or update its UI to reflect that an old container will no longer produce messages. This allows you to follow your application logs easily as user requests move from one ephemeral container to another across services. Kubetail can also help you to debug application issues by allowing you to filter your logs by node properties such as availability zone, CPU architecture or node ID. This can be useful to find problems that are specific to a given environment that an application instance is running in.
The main entry point for Kubetail is a CLI tool called kubetail
that you can use to run a web dashboard locally on your desktop. The web dashboard will make requests to your Kubernetes API using the current cluster specified in your local kube config file. In addition, you can run the web dashboard inside your cluster if you want to enable cluster users to use it without installing the CLI tool. Internally, Kubetail uses your Kubernetes API to request logs, so your log messages always stay in your possession and Kubetail is private by default. Most of Kubetail is written in Go and the web interface is written in Typescript/React.
Our goal is to build a powerful cloud-native logging platform designed from the ground up for a containerized environment and this project is a work-in-progress. If you notice a bug or have a suggestion please create a GitHub Issue or send us an email (hello@kubetail.com)!
- 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)
- Handles ephemeral container events automatically
- Uses your Kubernetes API to retrieve log messages so data never leaves your possession (private by default)
- Web dashboard can be installed on desktop or in cluster
First, install the Kubetail CLI tool (kubetail
) via homebrew (or the latest release binaries):
brew install kubetail
Next, start the web dashboard using the serve
subcommand:
kubetail serve
This command will open http://localhost:7500/ in your default browser. To view the logs for a different cluster just change your kubectl
context. Have fun viewing your Kubernetes logs in realtime!
First, add the Kubetail org's chart repository, then install the "kubetail" chart:
helm repo add kubetail https://kubetail-org.github.io/helm-charts/
helm install kubetail kubetail/kubetail --namespace kubetail-system --create-namespace
For more information on how to configure the helm chart, see the chart's values.yaml file.
To access the web dashboard you can expose it as an ingress using the chart or you can use your usual access methods such as kubectl port-forward
:
kubectl port-forward -n kubetail-system svc/kubetail-server 7500:7500
Visit http://localhost:7500. Have fun viewing your Kubernetes logs in realtime!
First, create a namespace for the Kubetail resources:
kubectl create namespace kubetail-system
Next, choose your authentication mode (cluster
or token
) and apply the latest manifest file:
# For cluster-based authentication use kubetail-clusterauth.yaml:
kubectl apply -f https://github.com/kubetail-org/helm-charts/releases/latest/download/kubetail-clusterauth.yaml
# For token-based authentication use kubetail-tokenauth.yaml:
kubectl apply -f https://github.com/kubetail-org/helm-charts/releases/latest/download/kubetail-tokenauth.yaml
To access the web dashboard you can use your usual access methods such as kubectl port-forward
:
kubectl port-forward -n kubetail-system svc/kubetail-server 7500:7500
Visit http://localhost:7500. Have fun viewing your Kubernetes logs in realtime!
To install Kubetail using Glasskube, you can select "Kubetail" from the "ClusterPackages" tab in the Glasskube GUI then click "install" or you can run the following command:
glasskube install kubetail
Once Kubetail is installed you can use it by clicking "open" in the Glasskube GUI or by using the open
command:
glasskube open kubetail
Have fun viewing your Kubernetes logs in realtime!
Visit the Kubetail documentation
This monorepo contains:
- CLI Tool (modules/cli)
- Backend Server (modules/server)
- Backend Agent (modules/agent)
- Dashboard UI (dashboard-ui)
- Create a Kubernetes dev cluster that works with Tilt:
ctlptl apply -f hack/ctlptl/minikube.yaml
- Start the dev environment:
tilt up
- Run the Dashboard UI locally:
cd dashboard-ui
pnpm install
pnpm dev
Now access the dashboard at http://localhost:5173.
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.
To build a docker image for a production deployment of the backend server, run the following command:
docker build -f build/package/Dockerfile.server -t kubetail-server:latest .
To build a docker image for a production deployment of the backend agent, run the following command:
docker build -f build/package/Dockerfile.agent -t kubetail-agent:latest .
We're building a cloud-native logging platform and would love your contributions! Here's how you can help:
- UI/UX design
- React frontend development
- Reporting issues and suggesting features
Reach us at hello@kubetail.com, or join our Discord server or Slack channel.