Windows process monitoring via SNMP

I’d like to monitor a few processes on a Windows host and I see that there is some SNMP output regarding processes:

	snmpwalk ... | grep hrSWRu | grep 17224

	HOST-RESOURCES-MIB::hrSWRunIndex.17224 = INTEGER: 17224
	HOST-RESOURCES-MIB::hrSWRunName.17224 = STRING: "Microsoft.Exchange.Imap4Service.exe"
	HOST-RESOURCES-MIB::hrSWRunID.17224 = OID: SNMPv2-SMI::zeroDotZero
	HOST-RESOURCES-MIB::hrSWRunPath.17224 = ""
	HOST-RESOURCES-MIB::hrSWRunParameters.17224 = ""
	HOST-RESOURCES-MIB::hrSWRunType.17224 = INTEGER: application(4)
	HOST-RESOURCES-MIB::hrSWRunStatus.17224 = INTEGER: running(1)
	HOST-RESOURCES-MIB::hrSWRunPerfMem.17224 = INTEGER: 440116 KBytes

How do I get this in LibreNMS with some alerting when a process is not found?

(Preferably by the process name not an numeric ID)


I think this is the same as requested in Feature request: Discovery : Windows process and software installed

That feature request hasn’t seen any progress since 2017? How would one implement this, I can try if there are some pointers

I am looking for Windows Process Monitoring too. Still looking around for the solution. It will be great if this feature is build in. Thank you.

Any movement on this. Would love to see easier windows monitoring implimented as I run a mix of Linux and Windows servers, across 3 sites and 2 clouds.

Patches are welcome. They are probably multiple ways to think about this feature, but I would go with :

  • Create a new poller module to fill a new DB table with a list of processes (PID, Name, status, type, memory and CPU)
    – Poller module is run at every polling interval, so this code must be optimized for speed.
  • Create the correct GUI to display this table
  • Alerting could be done on any of those DB fields
    – process using too much memory
    – process in status other than “running”
    – no process with name “Microsoft.Exchange.Imap4Service.exe”
    – etc

This module will be compatible with every SNMP device using “HOST-RESOURCES-MIB”, that means quite a lot of devices (servers running various *nix, windows, but not only)