Skip to content
MuninLite is a single Bourne Shell script that implements the Munin protocoll as well as some Linux specific plugins. The motivation for developing MuninLite was to provide a simple Munin Node, using inetd on systems without a full featured Perl.
Shell Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
examples
plugins swap: return "U" in case of missing swap Jul 19, 2019
.svnignore Ignore releases as well Jun 13, 2007
CREDITS
Changelog git-svn-id: svn://svn.code.sf.net/p/muninlite/code/muninlite@35 35caa… Jan 27, 2011
LICENSE Import Jun 11, 2007
Makefile
README.md
TODO
VERSION Release VERSION 1.0.4 Jan 27, 2011
munin-node.conf
munin-node.in Fix parsing the available network interface names Jul 19, 2019

README.md

README for MuninLite

MuninLite is a single Bourne Shell script that implements the Munin protocoll as well as some Linux specific plugins. The motivation for developing MuninLite was to provide a simple Munin Node, using inetd on systems without a full featured Perl and/or bash or a busybox system.

MuninLite is Copyright (C) 2007 Rune Nordbøe Skillingstad rune@skillingstad.no and released under GPLv2 (see LICENSE file)

Features

MuninLite implements the following plugins:

  • df
  • cpu
  • if_
  • if_err_
  • load
  • memory
  • processes
  • swap
  • netstat
  • uptime
  • interrupts
  • irqstats

Included files

  • Changelog: Changelog
  • CREDITS: Credits to contributors
  • LICENSE: GPLv2 License
  • Makefile: Rules to make munin-node
  • README: This file
  • TODO: Things to do in future releases
  • VERSION: Current version
  • munin-node.in: The MuninLite script skeleton
  • examples/xinetd.d/munin: Sample xinetd configuration
  • examples/inetd.conf: Sample inetd.conf configuration
  • examples/inetd.busybox: Sample inetd.conf configuration for busybox
  • examples/hosts.deny: Sample hosts.deny configuration
  • examples/hosts.allow: Sample hosts.allow configuration
  • plugins/cpu: CPU usage plugin
  • plugins/df: Filesystem usage plugin
  • plugins/if_: Network interface traffic plugin
  • plugins/if_err_: Network interface errors plugin
  • plugins/interrupts: Interrupts & context switches plugin
  • plugins/irqstats: Individual interrupts plugin
  • plugins/load: Load average plugin
  • plugins/memory: Memory usage plugin
  • plugins/netstat: Netstat plugin
  • plugins/processes: Number of Processes plugin
  • plugins/swap: Swap in/out plugin
  • plugins/uptime: Uptime plugin

Build requirements

  • Make: not sure what requirements
  • Perl: even very old versions should work

Requirements

  • Bourne Shell: ash or dash should be sufficient
  • grep: simple grep in busybox is sufficient
  • sed: simple sed in busybox is sufficient -- but a bit strange...
  • cut: cut in busybox is sufficient
  • wc: wc in busybox is sufficient
  • xargs: xargs in busybox is sufficient
  • inetd: inetd in busybox is sufficient

Installation

Download source and unpack it. Edit Makefile to suit your choice of plugins

Make munin-node by running "make"

$ make
Making munin-node for muninlite version 0.9.14
Adding plugin df
Adding plugin cpu
Adding plugin if_
Adding plugin if_err_
Adding plugin load
Adding plugin memory
Adding plugin processes
Adding plugin swap
Adding plugin netstat
Adding plugin uptime
Adding plugin interrupts
Adding plugin irqstats

Copy munin-node to a suitable location (/usr/local/bin/) and make it executable (there will be a "make install" at a later release)

cp munin-node /usr/local/bin
chmod +x /usr/local/bin/munin-node

Add munin port to /etc/services:

echo "munin           4949/tcp        lrrd            # Munin" >>/etc/services

Configure inetd or xinetd to fork this script for request on the munin port (4949).

Sample configuration for xinetd is located in examples/xinetd.d/munin:

cp examples/xinetd.d/munin /etc/xinetd.d
killall -HUP xinetd

Sample configuration for inetd is located in examples/inetd.conf:

cat examples/inetd.conf >> /etc/inetd.conf
killall -HUP inetd

Restrict access to munin port using hosts.allow and hosts.deny or add a rule to your favorite firewall config. Examples of hosts.allow/deny settings is provided in the examples directory.

Iptables might be set with something like this:

iptables -A INPUT -p tcp --dport munin --source 10.42.42.25 -j ACCEPT

Test

To test script, just run it (/usr/bin/local/munin-node):

$ /usr/local/bin/munin-node
# munin node at localhost.localdomain
help
# Unknown command. Try list, nodes, config, fetch, version or quit
list
df cpu if_eth0 if_eth1 if_err_eth0 if_err_eth1 load memory
version
munins node on mose.medisin.ntnu.no version: 0.0.5 (munin-lite)
quit

For inetd-test, try to telnet to munin port from allowed host.

# telnet localhost 4949
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
# munin node at localhost.localdomain
help
# Unknown command. Try list, nodes, config, fetch, version or quit
list
df cpu if_eth0 if_eth1 if_err_eth0 if_err_eth1 load memory
version
munins node on mose.medisin.ntnu.no version: 0.0.5 (munin-lite)
quit
Connection closed by foreign host.

Plugin configuration

To configure which plugins should be enabled, locate the PLUGINS variable in munin-node and remove unwanted plugins.

There is no specific configuration for plugins.

Munin configuration

Configure your /etc/munin/munin.conf as you would for a regular munin-node.

[some.host.tld]
    address 10.42.42.25
    use_node_name yes
You can’t perform that action at this time.