DEV Community

Cover image for Poor Man's Tools that are actually awesome! 💪
KeyboardInterrupt
KeyboardInterrupt

Posted on

Poor Man's Tools that are actually awesome! 💪

These are 3 of the more outstanding Linux (and MAC) Tools which I use on a regular basis.

I can highly recommend all of them, they made my live a lot easier! :)

lnav - Poor Man's ELK Stack

lnav on an auth.log (yes ssh is on port 22 on this system.)

If you regularly have to deal with Log files I highly recommend checking out lnav. lnav is so freaking cool that I probably will have to Write a whole article about it eventually, but trust me on this, if you are on Linux or Mac and have to deal with log files. Check out lnav.

Just a quick overview of some of the things lnav can do:

  • Automatically detects log Formats, merges multiple log files into a single view and decompresses GZIP'ed and BZIP2'ed files on the fly
  • Syntax Highlighting!
  • Filter Log files via regular Expressions! (press : to get a command palette)
  • The Timeline View shows a histogram of Messages over time. (By pressing i)
  • XML and JSON in log messages can be pretty Viewed. (by pressing SHIFT + P)
  • Use SQL to Query Logs! (srsly!)
  • VIM Key Bindings
  • Easy Log Navigation

And so on! This is just the tip of the iceberg! Give lnav a try it's a poor man's ELK ;)

sshuttle - Poor Man's VPN

Sometimes you want to test a service, or access hosts that are running in a different Network which is only accessible via a Jump/Bastion Host, or maybe you are constantly adding more and more Ports to your SSH Port Forwarding configuration. What you really would like to have is VPN access into said Network to gain unhindered access to all the systems in it.

That is where sshuttle comes into play, given that you have a SSH Jump/Bastion host, that is able to access all the Network Resources you want direct access to, you can just run the following command on your System:

sshuttle -r username@jumphost <target_subnet>
Enter fullscreen mode Exit fullscreen mode

And voila! All traffic for <target_subnet> will be tunneled/routed through the Jumphost sshuttle. To tear down the tunnel, simply close sshuttle and your routing is back to normal!

sshuttle comes with a few limitations which makes it "only" a poor man's vpn, but it is a really useful Tool for a lot of situations! Check it out!

PS: For real VPN, check out Wireguard! 💚

netdata - Poor Man's Metrics / Monitoring and "top" on Steroids!

Netdata is a Web based and lightweight Metrics and Monitoring Solution, It is a great Tool to get Metrics and Graphs of your Systems NOW, e.G. in a situation where your traditional monitoring does either not provide the right Metrics or is to slow.
Netdata, unlike more traditional Monitoring Solutions, which do a poll for metrics only ever so often, is best compared to "top" but on steroids! 💪 and in beautiful ✨.

Netdata Demo GIF from Github

Netdata Is not a long term Monitoring solution, in its default configuration no more than a few Hours of Metrics are stored, But it is a really great Tool to either find out which metrics you actually would like to monitor and for debugging of acute problems. In this regard, it is a poor man's Monitoring.

That's it for now. I hope That you got something out of this List, and that I was able to introduce you to a Tool that will make your live easier!

Do you know of any Tools that are awesome in similar ways? They don't have to be a Poor Man's Version of something, Leave a comment, and let me know! I am always on the look out for Tools that help me automate, and improve my work!

Top comments (22)

Collapse
 
tstack profile image
Tim Stack

Hi, I'm the author of lnav, thanks for the mention! If you have any thoughts on how to improve it (or bugs to fix), please file GitHub issues. I don't have much time to do stuff these days, but it would be good to have them logged for the future.

Collapse
 
keyboardinterrupt profile image
KeyboardInterrupt

Hi, thank you for writing/maintaining lnav.
It is truly an amazing tool!

I have nothing major to complain about, if I encounter any tangible, reproducible bugs, I will gladly report them via GH.

Collapse
 
emperorkonstantin profile image
Konstantin Anthony

lnav looks great and will possibly join my toolset!

Collapse
 
keyboardinterrupt profile image
KeyboardInterrupt • Edited

Hi 👋, This is my debut Post to DEV, Thank you for taking the Time to Read through it!
I really hope you got something out of it!

If you got any Feedback, please let me know :)

Greetings.
KeyboardInterrupt

Collapse
 
booyaa profile image
Mark Sta Ana

Congrats on your first of what I hope is many more posts!

I’ve love these types posts. Every so often I find a gem (in this case lnav)!

Collapse
 
keyboardinterrupt profile image
KeyboardInterrupt

Thank you very much, and yes. lnav really was a big one for me as well, when I discovered it.

I plan to write a whole Post about it some time in the future.

Collapse
 
slavius profile image
Slavius

I highly recommend these:

generic colourizer

bat (cat/less replacement)

fzf

Collapse
 
keyboardinterrupt profile image
KeyboardInterrupt

Nice, thank you.
I did not know about grc Bringing color into the terminal to better highlight deviations is really helpful, I will probably set up a few Aliases now ;)
I already knew about bat, which is indeed another cool colorful helper i use from time to time.
Instead of fzf I used peco in the past, do you know of peco? If so, could you point out differences that make choosing fzf instead worthwhile?

Collapse
 
slavius profile image
Slavius

I did not know about peco. I will definitely check it out. Grc comes with bash and zsh profiles in /etc you just include it in your ~/. {Shell} rc and you should be up and running.

Collapse
 
xtofl profile image
xtofl

Did you know tac?

Collapse
 
slavius profile image
Slavius

I've heard about it but for some reason I'm not using it.
The best tools for me are the ones that are invisible. I copy over my .bashrc and .zshrc with all the aliases around so every time I work I get the benefit of enhanced productivity and output by default.

Collapse
 
thefern profile image
Fernando B 🚀

+1 fzf

Collapse
 
nickfun profile image
Nick F

Lnav and sshuttle look like quick to use tools, but netdata requires me to integrate with it in my app, correct? How much set up did you need before netdata was useful? I'm looking for something easy and self host like this, it might be what I need.

Collapse
 
keyboardinterrupt profile image
KeyboardInterrupt • Edited

No setup/configuration at all, but I am mostly using it as a real time debugging/metrics/dashboard.

I usually use the Alternate method of installation, Docker, this makes Installation and tear down really easy!.

When I am permanently installing Netdata this way, I bind it to localhost, or only on an internal docker network, and use a proxy for authentication and SSL Offloading.

Check out:
learn.netdata.cloud/docs/agent/pac...

Collapse
 
marcbria profile image
Marc Bria

Thanks a lot for lnav. I didn't know about it and looks impressive.

If you are interested in docker, you will love:

  • ctop: A top segmented by containers.

About security:

  • trivy: Vulnerability scanner.

For documentation:

Collapse
 
apjanke profile image
Andrew Janke

Oh cool! This is the first I've heard of Netdata. I fiddled it with a bit after reading this post; looks like a cool tool!

Collapse
 
sq5rix profile image
Tom

I didn't know lnav
It's awesome - thanks for sharing!!

Collapse
 
mrcartoonster profile image
Evan E. Baird

Holy Sh#$%! Thank you!

Collapse
 
keyboardinterrupt profile image
KeyboardInterrupt

You are welcome :)

Collapse
 
pradeep3 profile image
PradeepKumar K 🚀

Thanks a lot for sharing this 😊

Collapse
 
keyboardinterrupt profile image
KeyboardInterrupt

You are welcome! 🙇

Collapse
 
biros profile image
Boris Jamot ✊ /

Netdata looks great, definitely need to test that!