Windows – How to check that a process is running on windows with zabbix

windowszabbix

What would be the correct way to test that a specific process* is running on a host machine running Windows 7 that is connected to zabbix server?

After reading a bit I understood using the proc_info item is what I need, and I figured testing that the physical memory is more than zero would be correct and so I tried the following trigger:

{HOST_NAME:proc_info[TestProcess.exe,wkset,sum].last(0,0)}<1

But this gives an error:

Evaluation failed for function {HOST_NAME:proc_info[TestProcess.exe,wkset,sum].last(0,0)}<1

What is the problem with my trigger? Or maybe there's a better item I can define?

*(the prcess is supposed to run all the time, mostly idle)

Best Answer

I managed to correct this by fixing the trigger function to last(#1) because last() takes 2 arguments with the second being time_shift and optional. Here, I don't need a time shift but the latest possible value, so I removed it.

The first argument here is the selection of which last value, so here I need the last one, with the number sign to indicate the last value that was taken and not the last value from some seconds ago.

The full trigger is:

{HOST_NAME:proc_info[TestProcess.exe,wkset,min].last(#1)}<1

The comparison here is in KBytes and I changed the type in the proc_info to min just to robust the condition in case I have multiple processes with the same name. When this is true the trigger is executed and I'll know there's a problem with the process.