.. index:: single: embedded machines; single: light-weight node; pair: munin-node; munin-c;
Munin C
is a C
rewrite of various munin components.
The node is a rewrite of :ref:`munin-node <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.
cpu
entropy
forks
fw_packets
interrupts
load
open_files
open_inodes
processes
swap
uptime
memory
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.