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-005External 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