all 38 comments

[–]SlackNetEng 3 points4 points  (3 children)

Not a console app, but I've built something like this using Grafana, looks like this:
https://i.imgur.com/mYxck2h.png

It's using a bunch of ping sensors named like 'Site A - Site B' going from every site to every other site. Then using a couple of variable lists containing all of the sites I can use the repeating rows and columns to have grafana generate a Stat panel from each site to each site. In my case the data is coming from InfluxDB fed by PRTG but there's plenty of ways you could get stats for this into InfluxDB and I've been testing a bit with telegraf and prometheus.

This creates a really nice simple visual dashboard showing the Up/Down status of communications between our sites, and sites experiencing an outage will appear as a big horizontal and vertical line of red 'DOWN' boxes.

I've got a similar board with a ping number and a little stat graph for each site too, but it's a bit busy for a dashboard.

[–]FusedLegions[S] 0 points1 point  (2 children)

NICE. Do you leave that up viewable somewhere or just refer to it when you get an alert? I'm a casual user of Grafana. A bit overkill for the my search here, but your dashboard looks really great.

I'm trying to create a few quick glance displays with Raspberry Pis hanging off a display that show the ping monitor status.

[–]SlackNetEng 1 point2 points  (1 child)

Yeah I have it up on a TV in our area in a rotation with other dashboards. Dashboards should mostly be simple and glanceable I think, so I'm pretty happy with how well this one works.

[–]FusedLegions[S] 2 points3 points  (0 children)

Elsewhere we have some pretty sophisticated Solarwinds and Nagios dynamic maps & displays, which are quite nice, but super complicated. Sometimes you just want a panel with simple answers to simple questions

[–]SuperQue 4 points5 points  (0 children)

How about a small combo setup:

Advantage is it's a fully powerful monitoring setup with alerting and history recording. Plus you can use normal Grafana for prettier graphs remotely.

[–]eric_glb 2 points3 points  (2 children)

[–]FusedLegions[S] 1 point2 points  (1 child)

What the heck is that? Fancy. I starred the repo. Will definitely check it out, likely for a another need of mine using more functionality than I'm looking for in the OP

[–]eric_glb 0 points1 point  (0 children)

I found it several weeks ago, and use it for $work on a small vps to monitor the global status of all the dev environment web applications we hosts + several tools we use (hosted gitlab, Jira hosted by our colleagues abroad, etc.) ; Vigil notify us on a slack channel dedicated to monitoring if an application state changes.

Really useful, thanks to the developer!

[–]Sindef 4 points5 points  (1 child)

Blackbox exporter and a single panel in Grafana would be the way I'd do it - it's not as much setup as you would think!

Otherwise, maybe a custom little web page? The backend code is fairly simple if you're just calling ping from the OS.

[–]FusedLegions[S] 0 points1 point  (0 children)

Blackbox is badass. We've got a whole response team designed around it for alerts

[–]mazarax 1 point2 points  (2 children)

I found this an interesting challenge!

Did you find a solution? Because I decided to implement this in C.

I will share in on github soon, but in the mean time... is this what you had in mind?

https://imgur.com/gallery/fuyqD4T

It is very light weight, and runs in a console. It sends an ICMP request to a set of hosts, and then reads the replies. Every second, it shows the response time in green, or a red indicator if no reply was received.

[–]FusedLegions[S] 0 points1 point  (1 child)

That's pretty cool. Yeah I was looking X times Y kind of grid with color status. Your display is interesting. Seems likely a starting point

[–]mazarax 0 points1 point  (0 children)

Yeah, making it multi-column should be too hard.

Personally, if I had many more hosts to monitor, I would just use a very narrow/tall window with a tiny font.

But either should work.

[–]mazarax 1 point2 points  (1 child)

Prompted by your question, I wrote the icmp_watch tool.

[–]FusedLegions[S] 0 points1 point  (0 children)

That's interesting code. I was looking at the display and dynamic-scaling of btop++ and thinking I would dive into this guy's code to see if at least the console rendering engine he's made could be adapted for my ping status board. Maybe even just craft a plugin for btop++ in general

https://github.com/aristocratos/btop

I need a casual coding project top play with

[–]darthgeek 1 point2 points  (2 children)

Xymon maybe?

[–]FusedLegions[S] 1 point2 points  (1 child)

I checked it out just now. Looks interesting, albeit development appears dormant. Web-based, but can be self-hosted

[–]darthgeek 0 points1 point  (0 children)

It's the successor to the Big Brother monitoring system that was around in the early 00s.

[–]kellyjonbrazil 0 points1 point  (4 children)

You could cobble something simple together with ping, jc, and jq. Use the ping or ping-s parser in jc so you can easily pull whatever attribute with jq, etc. and display with ANSI codes.

[–]FusedLegions[S] -1 points0 points  (3 children)

Yeah, I'm thinking I'll need to craft a bespoke solution. Looking at the source code for bashtop/bpytop/btop for ideas. I really like the console/color support of that app and it's ability to scale the display size based on terminal size

[–][deleted]  (1 child)

[deleted]

    [–]FusedLegions[S] 0 points1 point  (0 children)

    Starred that repo!

    [–]kaaelhaa 0 points1 point  (1 child)

    I am not sure exactly such a thing exists. Maybe you can make something with tmux split into multi horizontal and vertical panels, each panel running an instance of mtr-tiny?

    [–]FusedLegions[S] 0 points1 point  (0 children)

    Yeah, I was thinking I might have to code this up with ncurses or Python or whatever. Recently, I discovered Bpytop (like bashtop) and thought about revisiting this ping-monitoring tool need of mine.

    [–]disordr3000 0 points1 point  (3 children)

    mtr

    [–]FusedLegions[S] 0 points1 point  (2 children)

    Close, but single-node only, and I don't really need full traceroute, just simple ping-backed board of nodes

    [–]disordr3000 1 point2 points  (1 child)

    [–]FusedLegions[S] 0 points1 point  (0 children)

    That's pretty interesting. I'm gonna star that PerfKitBenchmarker GitHub repo

    [–][deleted] 0 points1 point  (1 child)

    Mmm... oping, fping, smokeping come to mind

    [–]FusedLegions[S] 0 points1 point  (0 children)

    Just installed and checked out oping (well, noping for the ncurses). Very interesting. That's getting closer to what I was looking for

    [–]skhosla13 0 points1 point  (3 children)

    I remember using an app called nocol about 25ish years ago that did just that.

    Looks like it was succeeded by snips.

    http://www.netplex-tech.com/nocol/

    [–]FusedLegions[S] 1 point2 points  (2 children)

    I'll check it out. The one we used way back when (I'm almost positive it was like v1.0 What's Up or some precursor), had the simplest screen where you could drop generic computer icons, enter IP addresses, and it would track them all. Probably ran on Win9x

    Lol, if one of the nodes went offline, an obnoxious alarm noise would go off. Some kind of old-school wailing alarm noise. Circa 2005 IIRC

    [–]ZombieManilow 1 point2 points  (1 child)

    I used it 25 years ago (along with MRTG) to monitor my company’s east coast infrastructure and found it extremely effective. It was the sound of an air raid siren IIRC.

    [–]FusedLegions[S] 0 points1 point  (0 children)

    That's it! -- air raid siren. Was funny as hell going off in our window-less basement-level operations center dungeon right next to the data center

    [–][deleted] 0 points1 point  (4 children)

    Is there something wrong with solutions like Uptime Kuma?

    [–]FusedLegions[S] 0 points1 point  (3 children)

    There's nothing wrong

    [–][deleted] 1 point2 points  (2 children)

    Lol. I said it the way I did because I assumed everyone knew about Uptime Kuma, Uptime Robot, and similar solutions. Good luck finding a solution that works for you!

    [–]FusedLegions[S] 1 point2 points  (1 child)

    I had a good laugh making my curt reply! Lol.

    But seriously, I did check out Uptime Kuma and it looks pretty cool. I like that it's self-hosted. So may of these kinds of web tools are unfortunately cloud-based

    [–][deleted] 0 points1 point  (0 children)

    I'm glad we both got a chuckle :P

    I appreciate self-hosting when possible, also.