Show HN: Kubetail – Real-time log search for Kubernetes
github.comHi Everyone!
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.
I launched Kubetail on HN last year and at that time the top request was to add search. Now I'm happy to say we finally have search available in our latest official release (cli/v0.4.3, helm/v0.10.1). You can check it out in action here:
Kubetail normally fetches logs using the Kubernetes API, which does not have search built-in. To enable search, click the “Install” button in the GUI or run `kubetail cluster install` in the CLI to deploy a DaemonSet that places a Kubetail agent on every node. Each agent runs a custom Rust binary powered by ripgrep; it scans the node’s log files and streams only matching lines to your browser or terminal. You can think of a Kubetail search as "remote grep" for your Kubernetes logs. Now you don’t need to download an entire log file just to grep it locally.
Since last year we've also added some other neat features that users find helpful. In particular, we built a simple CLI tool that starts the web dashboard on your desktop:
# Install
brew install kubetail
# Run
kubetail serve
We also added a powerful logs sub-command to the CLI that you can use to follow container logs or even fetch all the records in a given time window to analyze them in more detail locally (quick-start): # Follow example
$ kubetail logs deployments/web \
--with-ts \
--with-pod \
--follow
# Fetch example
$ kubetail logs deployments/web \
--since 2025-04-20T00:00:00Z \
--until 2025-04-21T00:00:00Z \
--all > logs.txt
We’ve added a lot more features since last year but these are the ones I wanted to highlight.I hope you like what we're doing with Kubetail! Your feedback is very valuable so please let us know what you think in the comments here or in our Discord chat.
Andres
Damn, if you took out the “Kubernetes” part, and made it generalized, it looks like you built something that I have wanted to see for a long time. I think log explorers work best as a GUI, and that they need deep integration with structured logs. Basically I just want the DataDog log explorer but locally, and able to simply intake from some files. Some have tried, but they are always too simple, not parsing out properties of structured logs and building good filtering on top of that. I think setting up Grafana/Loki/Whatever is way too heavy for such a simple ask.
Anyway all that is anecdotal, what you made here is really cool!
Thanks! Part of what enables us to make a helpful lightweight solution is that we're leveraging the Kubernetes API to give logs context without requiring extra configuration. It'd be great to generalize Kubetail but a lot of that depends on how cloud platforms evolve over the next few years. Do you use Kubernetes?
Look into https://logdy.dev . I've played around with it a little bit, but really putting some work into learning it and integrating it with OTEL traces is my next side project.
Another alternative is https://openobserve.ai/ . It needs to run as a daemon to ingest logs (instead of opening a file), but it has a really nice UI.
Logdy author here, thanks for calling out the project! Kubetail is probably best fit for k8s while Logdy is leveraging more unix-like philosophy of being a self contained tool you can tailor to your needs whether that's tailing files, pumping it through TCP socket or REST API. I have plans to include a sqlite storage so Logdy could be used in environments where permanent storage is needed
I’ve tried it, but it didn’t seem to have enough structure log support, so I gave up. I just want a way to say “this is a jsonl stream” and have it do the right thing, which is parse out the json paths of each line, and let me filter by those, or add columns for those to the viewer table. It’s not trivial to do this, but that’s exactly why it needs to be done.
Sorry for bringing up my own side-project on a "Show HN", but I'm making humanlog.io which does exactly what you want. Local-first log query engine (and tracing too, soon). You feed it your logs and you can search them, aggregate them, and soon make some graphs and dashboards with them. It started as just a CLI tool to parse and make structured logs pretty, and now I'm turning it into a full observability tool on your machine.
It's very WIP but I would love to help you get started if you want to try it out.
My personal preference for log tailing is Stern. It doesn't have a web UI but then I've never felt like I needed one.
https://github.com/stern/stern
Happy to see this mentioned and still being useful to people! I started this project 9 years ago at a startup but progress stopped when the startup got acquired. The community took over and has done a fantastic job keeping it alive
I was about to comment about Stern. It's an established well known OSS project - I wonder if the author knew about it, and if so.. what was his inspiration for creating an almost identical clone, albeit with a UI on top?
If you get a chance to try out the Kubetail CLI, I'd love to hear your thoughts! There's a lot of overlap with stern at the moment but we're planning on adding new features soon that will be unique (e.g. remote grep, system logs).
+1 for Stern especially since it only has Go dependencies whereas Kubetail does not. Ease of integration with an existing stack is a bigger addition than the lack of a web UI is a subtraction.
Stern is the best!
Wow, this is exactly what I’ve been missing—juggling a dozen kubectl logs windows and still losing context. Seeing all container logs merged in real time is a game-changer for debugging multi-pod workloads. Love that it runs locally against the API—no more sending sensitive logs offsite. Big thanks to the author for saving my sanity here!
While the search offered is handy, I watch logs on multi-pod workloads via:
This follows along all pods with the given label (app: api) for up to 50 pods or however many you want. Quite useful when I'm looking for specific output such as ERROR logs to just pipe it to grep like this: and get realtime filtering of all log output without having to tail individual pods by name.Thanks! Your comment made my day! It sounds like your use-case is similar to mine when I started working on the project. Now we have a community of contributors working on Kubetail so if you have time, stop by our Discord and let us know what else we can do to help (https://discord.gg/CmsmWAVkvX).
I don't use kubernetes but the GUI looks great, I'm looking for something sililar for heroku (currently storing logs in papertrail but haven't found a great way to search through achieved logs, especially locally).
Great demo video btw. Would you mind detailing which software you used to make it? I'd like to do similarly for some of my projects.
Thanks! I used Screen Studio for the demos (https://screen.studio). I had to pay for it but I couldn't find the zoom+highlight feature anywhere else.
Regarding Heroku - I loved Heroku the first time I used it so I set up my Kubernetes cluster to work in a similar way (`git push` to deploy to production). I know K8s has a reputation for being useful only for large deployments/large teams but in my experience this isn't true. You can run a single node cluster and use it to host multiple projects all sharing the same load balancer, or you can scale up to thousands of machines with many microservices working together internally. Would it be helpful for you to see a HOWTO for setting up a Heroku-like K8s cluster?
> I used Screen Studio for the demos (https://screen.studio)
Thanks for sharing! The zoom and highlight are so simple but really make your demo pop.
> Would it be helpful for you to see a HOWTO for setting up a Heroku-like K8s cluster?
Sure, I think a lot of people would appreciate that!
"Search" feels like a bit of a stretch to me--that suggests that it plays in the same space as OpenSearch or Splunk. There's no index here that I can tell.
"Filter" sounds more accurate.
Yes, there's no index. It uses grep (powered by ripgrep) under the hood.
This looks awesome --do you cache or store the logs, or is that left up to k8s?
Thanks! Kubetail doesn't cache or store logs itself. By default, it uses the Kubernetes API to fetch logs from your cluster and send them directly to your client (browser or terminal). If the "Kubetail Cluster API" is installed then it uses Kubetail's custom agent to do the same.
Presumably I can install this (the web frontend) into k8s itself. Is there a helm chart or kustomize?
Would be really cool to install it into k8s and just hit a hosted web endpoint with all the logs and grep/exploration capabilities kubetail has.
Yep! You can use Kubetail on your desktop (using the CLI tool) or you can install it directly in your cluster using helm:
Then you can access it using `kubectl proxy` or `kubectl port-forward`: You can also configure an ingress using the values.yaml file (https://github.com/kubetail-org/helm-charts/blob/main/charts...)I’ve been using Kubetail since the early days it was released in my homelab Kubernetes cluster. It’s fantastic and incredibly easy to setup and configure (unlike Loki + Grapha or ELk). Very polished.
Hi @nodesocket! Thanks for your support! Your help ironing out the bugs after launch was incredibly helpful.
Not to be confused with the other kubetail that also does kube log things.
https://github.com/johanhaleby/kubetail
Thanks for posting a link to Johan's project. I'm in touch with him to figure out the best way to avoid confusing users.
A good starting point would be to not take over the name of an existing product.
If you don't know about argocd, try it out! It also shows you the logs of containers.
Otherwise check out grafana with Loki (kube-stack)
How does it compare to tools like Loki/Grafana or Stern?
Kubetail is more lightweight than Loki/Grafana. It fetches logs using the Kubernetes API which means you can only see the current state of the cluster but you can use it without installing any additional software or provisioning storage. Our new search feature greps container log files on the nodes themselves as compared to Loki/Grafana that builds a full-text index in the background and queries that at search time (I think).
Stern is a CLI tool which more closely compares to the Kubetail CLI tool (as opposed to the Kubetail web interface). Currently, there's a lot of overlap between the two tools but Kubetail gives you more control over source filters and time. For example with the Kubetail CLI tool you can do queries like this:
I'm not too familiar with stern though so please correct me if I'm wrong. In any case, soon we're going to add more features to the Kubetail CLI tool that will be unique (e.g. remote grep, system logs).bruh merging logs from all pods at once is something i always wanted, props for finally making this sane
I have hacked together a shell script using tail -f with multiple inputs (from kubectl log), and fzf (to select namespace/deployment if there are many).
you can also use stern for that!
https://github.com/stern/stern