Munin Node for Windows
C++ C
Latest commit 025d148 Feb 24, 2015 @steveschnepp steveschnepp Merge pull request #57 from meke/master
[Patch]: fix build error VS2013 later
Permalink
Failed to load latest commit information.
bin.x64 Add x64 targets to solution Nov 12, 2012
bin ignores, new README, fixing bits and pieces Jun 21, 2012
installer ignores, new README, fixing bits and pieces Jun 21, 2012
src [Patch]: fix build error VS2013 later Feb 20, 2015
.gitignore ignores, new README, fixing bits and pieces Jun 21, 2012
README.rst test commit Jun 21, 2012
bird.ico add structure and forked code Jan 14, 2010
munin-node.ini [PATCH]: Add Hostname configuration option Dec 24, 2014
munin-node.rc Updated version number to 1.6.1.0. Jan 31, 2011
munin-node.sln
munin-node.vcproj Revert "Link NtQuerySystemInformation to ntdll.lib (from Windows Driv… Oct 19, 2013
munin-node.vcxproj Convert solution file to VS2012 Sep 9, 2014
munin-node.vcxproj.filters Convert solution file to VS2012 Sep 9, 2014
resource.h add structure and forked code Jan 14, 2010

README.rst

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