stern
lnav
Our great sponsors
stern | lnav | |
---|---|---|
16 | 75 | |
2,743 | 6,661 | |
3.3% | - | |
5.9 | 9.5 | |
21 days ago | 2 days ago | |
Go | C++ | |
Apache License 2.0 | BSD 2-clause "Simplified" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
stern
-
☸️ Kubernetes: From your docker-compose file to a cluster with Kompose
deploy: stage: deploy image: alpine/k8s:1.29.1 variables: NAMESPACE: $CI_COMMIT_REF_SLUG before_script: # init namespace - kubectl config use-context $KUBE_CONTEXT - kubectl create namespace $NAMESPACE || true # download tools - curl --show-error --silent --location https://github.com/stern/stern/releases/download/v1.22.0/stern_1.22.0_linux_amd64.tar.gz | tar zx --directory /usr/bin/ stern && chmod 755 /usr/bin/stern && stern --version - curl --show-error --silent --location https://github.com/kubernetes/kompose/releases/download/v1.32.0/kompose-linux-amd64 -o /usr/local/bin/kompose && chmod a+x /usr/local/bin/kompose && kompose version # show logs asynchronously. Timeout to avoid hanging indefinitely when an error occurs in script section - timeout 1200 stern -n $NAMESPACE "app-" --tail=0 --color=always & # in background, tail new logs if any (current and incoming) pod with this regex as name - timeout 1200 kubectl -n $NAMESPACE get events --watch-only & # in background, tail new events in background script: # first delete CrashLoopBackOff pods, polluting logs - kubectl -n $NAMESPACE delete pod `kubectl -n $NAMESPACE get pods --selector app.kubernetes.io/component=$MODULE | awk '$3 == "CrashLoopBackOff" {print $1}'` || true # now deploying - kompose convert --out k8s/ - kubectl apply -n $NAMESPACE -f k8s/ - echo -e "\e[93;1mWaiting for the new app version to be fully operational...\e[0m" # waiting for successful deployment - kubectl -n $NAMESPACE rollout status deploy/app-db - kubectl -n $NAMESPACE rollout status deploy/app-back - kubectl -n $NAMESPACE rollout status deploy/app-front # on any error before this line, the script will still wait for these threads to complete, so the initial timeout is important. Adding these commands to after_script does not help - pkill stern || true - pkill kubectl || true after_script: # show namespace content - kubectl config use-context $KUBE_CONTEXT - kubectl -n $NAMESPACE get deploy,service,ingress,pod
-
stern VS stern - a user suggested alternative
2 projects | 11 Dec 2023
The old repo is dead
-
🦊 GitLab CI: 10+ Best Practices to Avoid Widespread Anti-patterns
node-and-git: image: node:18.10-alpine before_script: - apk --no-cache add git kubectl-and-stern: image: alpine/k8s:1.22.13 before_script: # install stern - curl --show-error --silent --location https://github.com/stern/stern/releases/download/v1.22.0/stern_1.22.0_linux_amd64.tar.gz | tar zx --directory /usr/bin/ stern && chmod 755 /usr/bin/stern playwright-and-kubectl: image: mcr.microsoft.com/playwright:v1.35.1-focal before_script: # install kubectl - curl --show-error --silent --location --remote-name https://storage.googleapis.com/kubernetes-release/release/v1.25.3/bin/linux/amd64/kubectl && chmod +x ./kubectl && mv ./kubectl /usr/local/bin/
-
K9s: A lazier way to manage Kubernetes Clusters
I'll add stern (https://github.com/stern/stern) to that - follow logs from multiple pods easily.
-
What k8s related tool you wish you knew earlier?
Multi pod and container log tailing for Kubernetes https://github.com/stern/stern
- What's your "IDE" of choice nowadays?
-
How to Deploy and Scale Strapi on a Kubernetes Cluster 1/2
stern v1.22.0
-
Getting started with kubectl plugins
Link to GitHub Repository
-
Julia Evans: Tips for Analyzing Logs
If you are using Kubernetes, I highly recommend using https://github.com/stern/stern
-
What daily terminal based tools are you using for cluster management?
Stern: https://github.com/stern/stern for log streaming
lnav
- FLaNK Stack 26 February 2024
- LNAV – The Logfile Navigator
-
Toolong: Terminal application to view, tail, merge, and search log files
The code base seems like a good reference as a small Python project.
My fav option in this class of apps: https://lnav.org/ It lets you use journalctl with pipes as requested here: https://github.com/Textualize/toolong/issues/4
-
Logdy.dev – web based logs viewer UI for local development environment
For local development, I cannot recommend lnav[1] enough. Discovering this tool was a game changer in my day to day life. Adding comments, filtering in/out, prettify and analyse distribution is hard to live without now.
I don't think a browser tool would fit in my workflow. I need to pipe the output to the tool.
- Textanalysistool.net
- Ask HN: What apps have you created for your own use?
-
Ask HN: How does `lnav` run its playground which you can just SSH into?
It looks like they run an SSH server inside a Docker container defined by this Dockerfile [1]. This uses the ForceCommand directive in the sshd_config file to ensure that a specific command is run when a user connects (rather than the user connecting directly to a shell).
Depending on whether the user connects as the `playground` or `tutorial1` user they interact with a bash script that is either [2] or [3].
[1]: https://github.com/tstack/lnav/blob/master/demo/Dockerfile
[2]: https://github.com/tstack/lnav/blob/master/docs/tutorials/pl...
[3]: https://github.com/tstack/lnav/blob/master/docs/tutorials/tu...
-
Show HN: Tailspin – A Log File Highlighter
This is really pretty - I do really wish for a good rust replacement for lnav[1] someday.
-
Structured Logging with Slog
> I also don't see something else I might want: a way to have a different "view" for certain log messages; maybe to switch between filtering/viewing particular ones, maybe to just have line-format be conditional based on the detected format.
Have a look at the following comment on an issue that might be similar to what you're thinking of:
https://github.com/tstack/lnav/issues/1065#issuecomment-1602...
> I guess I can sort of do this based on `module-field`? but I might want it lighter-weight/finer-grained than that.
Unfortunately, the "module-field" does not work for JSON logs at the moment. It's something I should really fix.
Ultimately, lnav has existed for almost two decades now and I use it every day. So, it's always seeing improvements. If you're having a problem with it, file an issue on github. I don't always get around quickly to fixing other folks feature requests / issues, but it tends to happen eventually.
Thanks.
What are some alternatives?
kubetail - Bash script to tail Kubernetes logs from multiple pods at the same time
lightproxy - 💎 Cross platform Web debugging proxy
awesome-k8s-resources - A curated list of awesome Kubernetes tools and resources.
dive - A tool for exploring each layer in a docker image
kail - kubernetes log viewer
glow - Render markdown on the CLI, with pizzazz! 💅🏻
cw - The best way to tail AWS CloudWatch Logs from your terminal
GoAccess - GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.
openlens-node-pod-menu - Node and pod menus for OpenLens
nnn - n³ The unorthodox terminal file manager
saw - Fast, multi-purpose tool for AWS CloudWatch Logs
conio-for-linux - Conio.h for linux