[HN Gopher] Internet-monitoring - A Docker stack that monitors y... ___________________________________________________________________ Internet-monitoring - A Docker stack that monitors your home network Author : simonpure Score : 143 points Date : 2021-04-11 13:58 UTC (9 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | corndoge wrote: | See also smokeping, vaping | | https://github.com/20c/vaping | | https://oss.oetiker.ch/smokeping/ | mjlee wrote: | https://github.com/SuperQ/smokeping_prober | | This project is quite good for a smokeping-a-like for | prometheus. | avh02 wrote: | I recently set up smokeping to gather some data, I can't say it | was a breeze - documentation appears complete but misses some | key pieces of information you have to dig for or trial/error it | out. | | E.g: i struggled figuring out where to put a non-standard probe | | Failure modes were also quite weird... adding a slave to the | mix broke my mind a little. Was never sure it worked but then | didn't need it so retired it before i figured it out | | Changing what you think is something trivial (e.g: frequency of | data collection) invalidates your previously collected data | files. | | Other than that - fairly solid, did what i needed, runs without | a fuss. | linsomniac wrote: | I've set up smokeping a number of times over decades. Always | a minor pain until the most recent one... | | I used a docker container, and it was a breeze! `sudo docker | run -it -p 8000:80 -e WIPE=y -e TARGET="ISP;NextHop;$IP" -d | dperson/smokeping` | | https://hub.docker.com/r/dperson/smokeping | Noah-Huppert wrote: | Cool! It's so funny my internet has been bad just recently so I | took an old bash script of mine which did something similar and | have been upgrading it into a proper application which exports | metrics to Prometheus and Grafana: https://github.com/Noah- | Huppert/net-test | | I saw a comment below where some was rolling their eyes that you | "complicated" stuff with Prometheus, Grafana, and Docker and how | you could just use Bash scripts and crons. As I just upgraded my | codebase from this more bare metal approach to this "more complex | setup" I'd like to mention: there's no way you could do time | series statistical analysis easily with "just a cron job and a | bash script". Prometheus and Grafana are for more than just buzz | words. Prometheus offers an advanced time series database which | allows you to, at minimum, do more robust analysis using data | techniques like Histograms. As for Grafana, it makes exploring | data dead easy. | | Providing users with a Docker Compose setup is also something I | did with my tool and the benefits are huge. It lets me distribute | a setup which relies on multiple moving parts working smoothly | together. Sure I could write a whole wiki on how you should setup | Prometheus Grafana and my tool, or I could distribute the setup | with a configuration as code tool. Ensuring that even if someone | doesn't want to use Docker Compose they can at least read my | configuration as code and see exactly what I did to setup my | tool. | midrus wrote: | Recently I was looking to add some metrics to a small script | and I didn't want to deal with all the complexity of setting up | grafana, prometheus, the push-proxy-thing (sorry, don't | remember the name). | | Looking for alternatives, I found InfluxDB, which was just one | apt-get install away. | | It comes with a web interface to create dashboards, supports | push based metrics, and overall I'm loving it. | | The web interface doesn't seem as powerful as grafana, but it | covers most basic needs. And I think you can use it with | grafana too. | nitrogen wrote: | The closest analogous tool people would use back in the classic | cron and bash days was MRTG. | DavideNL wrote: | Another similar alternative: | https://github.com/henrywhitaker3/Speedtest-Tracker | aequitas wrote: | Grafana and prometheus are a very nice combo for all sorts of | monitoring. For my current setup I have added victoriametrics | which is a drop-in replacement for prometheus. I like it more for | home setup as it is easier on disk-space usage and the collection | client (vmagent) does disk buffering. So I run the collection on | a battery backupped raspberry pi which uses remote_write to send | it to victoriametrics on my home server (which has a less higher | uptime than the raspberry pi) without the risk of losing precious | metrics. | programd wrote: | Use node exporter on your machines and Prometheus to scrape the | metrics and you will be drowning in pretty graphs. Super easy to | set up and gives you system details across all your machines, all | in one place. | | https://github.com/prometheus/node_exporter | _joel wrote: | There are also script exporters (a few implementations) for | simpler Nagios style checks and more specialised ones for | getting things like Cloudwatch data (shout out to YACE[1] - | with dashboards from promcat). It's really quite vibrant the | ecosystem. | | [1] https://github.com/ivx/yet-another-cloudwatch-exporter | nitrogen wrote: | Does anyone still use SNMP to announce metrics/monitors? | jtchang wrote: | I've been toying around with the idea of building a small device | or widget to display things like this. There is hardware like | this for temperature and humidity and such but nothing for | internet health. | | If anyone is interested feel free to contact me. Would love to | learn about what you would want in such a device. | jcims wrote: | I've been tangentially looking at this as a 'beta' customer of | Starlink, as the service is presently extremely variable with | many small outages throughout the day. This kind of a collection | of internet monitoring is super useful for the individual, but | what I would really love to see is a way to federate the data in | a meaningful way so that you can start to see operating patterns | in the provider(s) being used. | guillaumerose wrote: | Remember the time the same job could be done with a simple cron, | rrd and cacti for the storage and apache. | | Now you need "complicated" things: prometheus, grafana, docker, | etc. | | I am a bit puzzled. Is it because sysadmin tutorials from 2000's | are not showing up anymore in Google ? Why these tools failed to | stay popular ? | rcarmo wrote: | Well, FWIW, I'm running a simple smokeping Docker container. | | Just works, sits neatly alongside a few extra services (managed | via compose) in a little ARM dev board and has kept on ticking | for around five years without any hassles using exactly those | bits you mentioned. | | The new things are shinier, I think, and on the other hand a | lot of the old, simpler tools have become less relevant. | | As an aside, I recall a younger self annoyed at the inability | to get data out of RRDTool into a nice SVG chart. These days I | just want the data in whatever format the best tool spits | out... | linsomniac wrote: | As someone who has set up a number of "simple" visualizing | systems using the exact toolpath you mention (cron, shell | scripts, rrdtool), I can say with some authority that getting | them right was never simple. | | And the load of dozens to hundreds of data points in rrd is | shockingly large. Our infrastructure utilization dropped by 30% | when I switched from a Graphite/collectd setup to gathering | MORE data more frequently with telegraf and influxdb. | enobrev wrote: | rrd and cacti are considerably more complicated and far less | useful than prometheus and grafana. | | I generally agree with the rest of your point, but the new- | fangled infrastructure tools do have some merit and I look | forward to seeing where we go with them. | Jiejeing wrote: | You can still do it, but the "old school" way of doing it is | much less flexible. | | For this kind of setup, prometheus and grafana are not | complicated (close to 0 configuration), and docker mostly works | out of the box on linux hosts, barring nftables shenanigans. | You end up with something that "just works", is pretty, and | does not require fiddling. | | Technically I do find this overkill for "home network | monitoring", but at least it does not require k8s so I won't | complain. | toyg wrote: | _> at least it does not require k8s_ | | One would think that should be a hell of a low bar. It's like | having to choose a car and going "Trabant will do, at least | it does not require a crew of seamen". | midrus wrote: | For a home setup having to bring up 3 containers just to have | some metrics is too much in my opinion. | | I've been using InfluxDB at home just because of how easy it | is to setup and use. | _joel wrote: | You don't even need cacti or rrd if it's just taking a value | and putting it in a file. However these newer tools are much | more flexible that cacti and RRD. I find using Grafana _miles_ | better than dealing with RRDs, beter granularity and more | options for querying data /overlaying results from different | metrics on the fly etc. | midrus wrote: | See my other comment in this thread. I've found InfluxDB a lot | easier to setup and use (just apt-get install) and comes with | push support, dashboards web ui, etc. | | I'd say it is easier and more powerful than rrd and cacti (used | them like 10 years ago!) | nine_zeros wrote: | Reinventing the wheel is the new mantra. | _joel wrote: | It's really not, Prometheus and Grafana can do a hell of a | lot more than Cacti/RRDs | hacker_newz wrote: | Prometheus as a monitoring tool is definitely a lot more | complex and does not 'just work' straight out of the box. You | need to configure Prometheus to know where to scrape using | service discovery, set up different agents on your hosts to | export metrics, build graphs in Grafana using PromQL to look | for specific labels, and create alerts Alert Manager for every | alert you want to receive. | colemannugent wrote: | They called to stay popular because they kinda suck. The setup | you described works on one host and produces static graphs. | | With Prometheus and Grafana you can monitor an entire data | center and add visualizations for metrics as you need them with | no change to the monitored hosts. | | TLDR: the old software stack could be made to do this, modern | monitoring stacks do it out of the box. | izacus wrote: | So people regularly run datacenters at home that need | monitoring? That's what the original article is about after | all. | orhmeh09 wrote: | I think they meant to give an example to indicate the | flexibility of the platform. You know nobody is claiming | people regularly run data centers at home -- why are you | asking? | deadbunny wrote: | You should check out r/homelab, the answer is yes. | Avamander wrote: | It's a great way to learn without breaking things for a few | hundred thousand users. | gmuslera wrote: | I would use Telegraf (a better/distributed collector far more | efficient than cacti, even if you have to learn the OIDs for | the snmp devices you want to monitor, because not everything is | snmp anyway), InfluxDB (a timeseries database better than rrd, | is not the only alternative, but at least it works for me), and | yes, Grafana. | | The cron gives you low granularity (and for some things, it may | matter to measure things that changes in less than a minute), | and flexibility (both in what you can measure and how you can | arrange and correlate the different pieces of information). | atat7024 wrote: | That is correct. | | All of the SEO skiddies are the ones pimping Kubernetes for | your personal homepage and a few links. | | And it shows. Lots of ways to build things fast, but nobody's | building cool, lasting shit. | mschuster91 wrote: | > Lots of ways to build things fast, but nobody's building | cool, lasting shit. | | No way to make money with something that's well-built with | the intention to last a life time. It's the "planned | obsolescence" of the software world... | lbotos wrote: | A lot of people are now building huge container based SaaS | software in their $Day_job, so in their free-time they use | those technologies because they are more familiar, or they want | the practice. | | I ran K3s for a few weeks on ODroid hosts at home to get more | k8s experience. | hoophoop wrote: | Don't be fooled by the rain of downvotes that some comments are | getting: the HN crowd is incredibly biased towards hyped stuff | and CV-driven development. | | I worked in FAANGS where simplicity really mattered over hype. | xfitm3 wrote: | Docker is a pain in the butt. I much prefer "bare metal" and | VMs. I have tried to get into it but I can't say I see the | appeal. | | The best I can make of it is to treat docker as a package | manager. All the dependencies in one place. | angrais wrote: | Could you expand on why Docker is a pain for you? | windexh8er wrote: | I did something similar for continuous speedtest and tracking of | home Internet [0]. | | [0] https://gitlab.com/splatops/cntn-speedtest | Avamander wrote: | In addition to monitoring your own network, you might want to | monitor your ISP's and share the results for research - a | software RIPE Atlas probe is a great method for that: | https://labs.ripe.net/Members/alun_davies/ripe-atlas-softwar... | sdfhbdf wrote: | I use telegraf with Ping and speedtest cli that both output to | influxdb which then I browse with Grafana as well. Kind of | similar but not quite. I also orchestrate with docker-compose on | my RPi and I find this quite pleasent but in the end you should | choose what you're most familiar with. I didn't want to spend my | innovation tokens on promotheus hence I've gonna in what I viewed | them as simpler, with telegraf. | | I ping Google, CloudFlare, Quad9 and Amazon EC2 and plot it to | see the any unusual spikes. | syoc wrote: | Cool. I have read a lot of approaches to home network monitoring | and everybody seems to do things a little bit different. Telegraf | has built-in modules for ping and dns latency. I recommend it as | an alternative to prometheus. | linsomniac wrote: | Telegraf is just going to do the "probe" component, right? | You're still going to need Prometheus or Influxdb for storing | the timeseries, and Grafana for visualizing I expect. ___________________________________________________________________ (page generated 2021-04-11 23:00 UTC)