Munin Website Redesigned
munin-monitoring.org
munin-monitoring.org
I think the homepage was overdue for a redesign, but I hope they don't redesign the tool itself! :-)
If they are trying to improve their communication, one thing I would have appreciated when I got started years ago is a clearer tutorial-like explanation about where the client & server live, how both execute (daemon vs cron), and who opens a connection to whom. Just the basic big picture architecture. It seemed difficult to find that information. EDIT: This right here: "Munin has a master/node architecture in which the master connects to all the nodes at regular intervals and asks them for data." Great!
ANOTHER EDIT: I see they are emphasizing how easy it is to write plugins. I can attest to that. I've written plugins for Postgres and Phusion Passenger, and both were really simple. Also there are tons of "contrib" plugins that probably already have most of what you want (even beyond the extensive default system-level metrics).
AND ANOTHER: The graphs at http://demo.munin-monitoring.org/munin-monitoring.org/www.mu... are more painful to read than my existing deployments. They are 497x261, and my own graphs are 499x277. That doesn't seem like enough difference to matter. The font is smaller though. Having to squint to read the graphs makes the display a lot more effort to read. It's a small thing, but I could feel the difference immediately.
I also agree that documentation about the basic architecture and execution method needs improvement. At some point in the CentOS 7 lifecycle, a minor update to EPEL's munin package deleted its own crontab file, effectively disabling the master, without providing an obvious alternative such as a systemd timer. I couldn't find any explanation about why it did that.
I've switched to this for all hosted/decentralized monitoring.
Jokes aside, I feel the lack of vertical whitespace makes the site feel a bit markety. Like it's trying to force a lot of marketing information in a small amount of vertical space.
And creating a munin plugin is as simple as writing a script that writes values to stdout (in whichever language you like), and copying it to /etc/munin/plugins/.
Monitoring new things with zabbix is also "write a value to stdout". Using telegraf and prometheus you have the same flexibility. I think these days you can even scrape prometheus exposition with zabbix. There are plenty of footguns with prometheus and zabbix, but they take big scale to run into.
But at the end of the day use what you're comfortable with.
- deploy with an apt-get install
- publish to the whole Internet as static pages without any security risk
- maintain with OS package updates and zero additional effort
In a world of resume-driven development, simplicity and security are the first victims. I wish we had more tools like Munin.
But, I agree that for a couple of servers, the security it procures might overtake the performance boost.
Let's add it again: https://github.com/munin-monitoring/munin/issues/1395
That, and the ability to create "overall" charts (same metric for all servers in a group) as well as per-server per-metric charts is what keeps me solidly using munin.
Where I get frustrated is scalability of RRDTool. Every data set has its own file so you get into this IO nightmare. I solved this for a while by storing them in a RAM disk.
Ultimately I set up InfluxDB+Grafana. It is a lot more work and last I tried, InfluxDB does not support downsampling of older data, so instead of two years of history we have 90 days. The collector from one version to the next renamed most of the datapoints so the Grafana dashboards broke ...
(Oh and of course also Munin looks like the 90s, which doesn't bother me, but sometimes gives decision makers cause to believe my solution is not hip.)
We took special care not to flush the cache too much, so the improvements are very noticeable.
Yet, it works only with on-demand graphing, of course.
Munin, Monit, Nagios, Zabbix and a few other tools are on my list to try out.
My biggest concern is around the data management. Ideally the underlying datastore can be moved, expanded, etc... as I sort out how much history I want to keep.
What do y'all use for this? I have 2 VM hosts (esxi), 1 bare metal box, and a handful of ubnt networking equipment.
A while ago I switched from munin to prometheus+node_exporter and with that went from collecting metrics every 5 minutes to more metrics every 15 seconds.
Munin is easy to operate initially. You can go from a script that outputs a number to a graph on your screen in a few minutes. It does get more complicated when you want to do something like graph the aggregate of a metric across a subset of machines. It is doable in the configuration, but a hell of a lot harder than just adding a widget in grafana and writing a simple promql query.
In terms of disk, munin uses 750MB, and it's not growing thanks to rrdtools; and it writes 1MB/s on average. Bandwidth usage is 5Mb/s on average (to get data from all munin nodes, also every 5 min in my config)
Munin nodes themselves are extremely lightweight. Essentially, the master calls the munin-node daemon via a TCP socket, which starts a plugin process and pipes its stdout to the socket. Plugins usually simply call a command like "df" or "netstat", parse its output, and write it in munin's format.
- There's 20KB of Bootstrap.css that could be replaced with native CSS that would be loads smaller.
- There's 96KB of jQuery that I can't see being used at all. Even if it is, it doesn't need to be the full fat version.
- There's a 138KB PNG image that can be shrunk to 91KB using OxiPNG (or 77KB as a WebP, or 52KB using AVIF) using a free tool like https://squoosh.app
- There's 80KB for the Material Design icons font that could be replaced with an optimized version that only includes the glyphs used on the page (using a free tool like https://www.fontsquirrel.com/tools/webfont-generator).
I don’t read it as a negative thing, and for me <500kB seems reasonable. Page size is an aspect of design – even if many websites are suffering far greater needless bloat than this one.
Of course it might be a very low priority feature, so it would be valid to close any issue reports as "WONTFIX" if the devs have no time or feel they are better spending their time on other matters, especially if people on slow connections are not expected to be a significant part of the target audience, but commenting on potential performance issues is perfectly valid when discussing a site (re)design IMO.
Someone put time on giving actual technical feedback for improvement. There's lots of developers here. This might even get people interested in contributing to the project.
Basically the same a pointing out a spelling error on a single slide in a CS class. You are technically correct about the feedback, but it is misplaced and not worth spending time on in class.
I read that comment as, "rip huge chunks of Bootstrap and jQuery out of it - should be quick"... well I am guessing given Bootstrap design patterns that they used these tools as a core library in-which they built their site around. They may be planning to leverage these tools in the future, or even just want to give themselves the option to... It's an over-simplification. Likely, this site got them to where they wanted to be... a much more modern-looking site without a ton of effort sunk into development.
It's also completely disingenuous to talk about these filesizes in pre-gzip numbers vs. post. When you look at these "optimizations" without taking into account gzip you are looking at a "worst case scenario" that doesn't exist - this site is gzipping it's assets over the wire. The jQuery gripe is more like 33.6Kb vs 96Kb when you look at it through the gzip lens.
---
This sort of response (and subsequent defense) is why I would never show my creations here. It's emotionally difficult for me to see such a stable and mature project as Munin accomplish a bit of modernization only to be nitpicked like this. Munin is a great tool.
"Raise a PR" is perfectly valid here when it comes down to it. I think the internet will handle the extra ~100Kb/page load just fine.
If that's the case then creating a PR and raising it would be a waste of time, as it'd be rejected.
Whether it's a website or some other open source project, maintainers usually don't like it when you create a massive refactoring PR without talking with them first.
If, luckily, the maintainers are on HN, I guess talking about the "problem" here could very well substitute for raising an issue on whatever platform they use.
I certainly think "open an issue/please make a pr" is a fine suggestion regarding FOSS projects in general.
Ed: isn't this the repo, built via github workflows ? https://github.com/munin-monitoring/munin-monitoring.github....
Beyond that; is there much cause to spend (any) effort to go from 0.5mb to less, really? Especially considering gzip?
https://munin-monitoring.org/munin/website/2021/04/20/we-mad...
Thanks!