Skip to content

munin-monitoring/munin-node-win32

Repository files navigation

Munin Node for Windows

Active development of this repo has been stopped New contributors are welcome to submit pull requests if you want to help revive this project ** - singularcitrus**

If you wish to follow the development of the new Munin Node for Windows, go to this repository

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.

Installer Usage

The installer may be run with different command-line flags.

  • /HELP or /? Shows the help message.
  • /SILENT or /VERYSILENT Instructs the installer to be silent or very silent.
  • more options are available. The full list is displayed in /HELP or on the Inno Setup website.

Command Line Usage

The munin-node executable takes these command-line flags.

  • -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
  • Spin (spinup)

    • Reports HardDrive spin-up time
  • Online (onlinehours)

    • Reports the total HardDrive Online Hours
  • Readerror (readerrorrate)

    • Reports the HardDrive Read Error Rate
  • Startstop (startstopcyclehdd)

    • Reports the total HardDrive Start Stop Cycles
  • Reallocsector (reallocsectorcount)

    • Reports the HardDrive reallocated sector count
  • Seekerror (seekerrorrate)

    • Reports the HardDrive Seek-Error rate
  • Spinretry (spinretrycount)

    • Reports the HardDrive Spin Retry count
  • Reporteduncorr (reporteduncorrectableerrors)

    • Reports the HardDrive Reported Uncorrectable errors
  • Poweroffretract (poweroffretract)

    • Reports the amount of Unsafe Shutdowns in the HardDrive's lifetime
  • 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 Visual Studio 2019 with Build Tool v142.

Open solution file (.sln) with Visual Studio.

On the top menu, find Build, and the select 'Build Solution'.

Creating an Installer

Using Inno Setup

Open '/Installer Files/Munin-node.iss'

Compile the installer