/munin-node-win32

Munin Node for Windows

Primary LanguageC++

Munin Node for Windows

Introduction

Munin Node for Windows AKA munin-node-win32, is a Windows client for the Munin monitoring system.

It is written in C++ with most plugins built into the executable. This is different from the standard munin-node client, which only uses external plugins written as shell and Perl scripts.

Command Line Usage

  • -install Install as a system service.
  • -uninstall Removes the installed service.
  • -quiet Close the console window, running in the background.
  • -run Run as a normal program, rather than a service.

Configuration File

The configuration file munin-node.ini uses the standard INI file format.

The main section is the Plugins section which defines which plugins are enabled and which are disabled. Use 1 to enable and 0 to disable. Most plugins handle failing to load gracefully, however some may have a bug (if so please report :).

You can disable plugins you don't want, to save on memory and cpu usage.

Plugins

  • CPU (cpu):

    • Reports the current user cpu usage
  • Disk (df):

    • Reports disk drive space usage
    • Configuration in DiskPlugin section.
  • HD (hdd):

    • Reports HardDrive temperature
  • Memory (memory):

    • Reports memory usage
  • Process (processes):

    • Reports process and thread count
  • Network (network):

    • Reports network bytes send and received
  • MBM (mbm, mbm_volt, mbm_fan, mbm_cpu):

    • Reports sensor data from Motherboard Monitor
  • SpeedFan (speedfan):

    • Reports sensor data from SpeedFan xAP broadcasts
    • Configuration in SpeedFanPlugin section. You have to change the BroadcastIP and UID settings to match SpeedFan (Configuration->xAP)
  • Performance Counter:

    • Reports performance counter values, very extenable to monitor any counter

    • An instance of this plugin is created for every section starting with PerfCounterPlugin in the Configuration. For example there is a PerfCounterPlugin_uptime section in the stock configuration file. This defines a plugin with a name of uptime.

    • An example section is listed below

      ; The Object and Counter settings are used to access the Performance Counter
      ; For uptime this would result in \System\System Up Time
      Object=System
      Counter=System Up Time
      ; The Graph settings are reported to munin
      GraphTitle=Uptime
      GraphCategory=system
      GraphDraw=AREA
      GraphArgs=--base 1000 -l 0
      ; The DropTotal setting will drop the last instance from the counter list,
      ; which is often _Total
      ; Has no effect on single instance counters (Uptime)
      DropTotal=0
      ; The CounterFormat setting controls what format the counter value is read in as
      ; a double, int, or large (int64).
      ; The plugin always outputs doubles, so this shouldn't have that much effect
      CounterFormat=large
      ; The CounterMultiply setting sets a value the counter value is multiplied by,
      ; use it to adjust the scale
      ; 1.1574074074074073e-005 is the result of(1 / 86400.0),
      ; the uptime counter reports seconds and we want to report days.
      ; So we want to divide the counter value by the number of seconds in a day, 86400.
      CounterMultiply=1.1574074074074073e-005
      
  • External Plugin:

    • A plugin that supports external plugins in the style of munin-node.

    • Configuration in [ExternalPlugin] section. Just add an entry with the path to the program to run, It doesn't matter what the name of the name=value pair is.

    • The output of the external program should be similar to the following,

    • Note: add quotes (") around the value if it has spaces!

      >disk_free.py name
      drive_free
      
      >disk_free.py
      drive_free_c.value 40.3635149113
      .
      
      >disk_free.py config
      graph_title Filesystem free (in %)
      graph_category disk
      graph_info This graph shows the amount of free space on each disk.
      graph_args --upper-limit 100 -l 0
      graph_vlabel %
      drive_free_c.label C:
      .
      

Version History

See ChangeLog

Building a release

Using MS Visual C++ 2008 Express Edition

Bump version in munin-node.rc and installermunin-node-win32.nsi

Open munin-node.sln

Select Release and win32 build options

Then Build / Rebuild solution

That creates the binReleasemunin-node.exe file

Get the NSIS (Nullsoft Scriptable Install System) (2.46)

Compile installermunin-node-win32.nsi with NSIS