Munin C is a
C rewrite of various munin components.
The node is a rewrite of munin-node, and the plugins are a rewrite of commonly used munin plugins a single binary.
- reducing resource usage
- disk space: the binary is smaller than the plugins together
- more diskspace: it has no dependencies on other programs
- less forks: it does not fork internally
- faster startup: it doesn’t start perl or shell
- less memory: just a small C program
- less file accesses: one binary for many plugins
- no need for Perl
- everything can be run from inetd
It makes it very useful for machines without native support for Perl scripting, mostly because of restricted resources like embedded machines.
- You lose flexibility as it is compiled code
- plugin modification is not that easy
- you have to create and distribute binaries
- you have to care about portability across architectures.
- Not all the features are implemented
- root uid is not supported. All plugins are run with a single user, usually nobody.
- no socket is opened. Everything runs from inetd.
What plugins are included?¶
After compiling there will be a binary named
munin-plugins-c. You can just replace the symlinks in
/etc/munin/plugins/ with symlinks to this binary.
Note that the C version of the plugins do not need the C version of the node. It is just recommended as it gives you the full benefits at no added cost.