We have the same problem in our environment with checkmk 2.1 and different older Agent versions (1.2/1.4/1.6).
The error stops when the agents are updated to 2.1, the problems started right after the 2.1 upgrade.
Could I get an output from your agent?
Is it possible to obtain Windows agent output?
Hey Sergej,
in fact, it’s a bug in the Agent, just CMK handles it different in 2.1 it seems.
Always when it’s happens, the Section is missing all the Information, when you check then again, the information is back.
This is how the Section looks, when the failure appears:
<<<wmi_cpuload:sep(44)>>>
[system_perf]
WMItimeout
[computer_system]
WMItimeout
So, there are Timeouts…
Today i had some systems with this problem and only the section [system_perf] was empty. Computer system was working as expected.
In search for a solution i also had a look at the check - wmi_cpuload.py and found some strang things.
Why is there no real error handling inside the parsing function? It returns empty output but the section is not empty.
For all who want a small workaround.
It only give the error if the computer_system table is empty.
Original
try:
load = wmi_tables["system_perf"].get(0, "ProcessorQueueLength")
timestamp = get_wmi_time(wmi_tables["system_perf"], 0)
computer_system = wmi_tables["computer_system"]
except (KeyError, WMIQueryTimeoutError):
return None
assert load
changed version
try:
load = wmi_tables["system_perf"].get(0, "ProcessorQueueLength")
except (KeyError, WMIQueryTimeoutError):
load = 0.0
try:
timestamp = get_wmi_time(wmi_tables["system_perf"], 0)
except (KeyError, WMIQueryTimeoutError):
timestamp = 0.0
try:
computer_system = wmi_tables["computer_system"]
except (KeyError, WMIQueryTimeoutError):
return None
Hi
I still have the same issues.
Is a official fix planned or is updating the agent the only way to fix this? @SergejKipnis
Thanks in advance!
Norm
Hi
Latest versions of Windows Agent use Perf API instead of WMI to get cpu_perf data as more stable.
WMI is not stable enough when we are trying to use to monitor CPU(system_perf)
Above-mentioned workaround is good and applicable too.
Sergey Kipnis
To validate that you are using stable perf API
run
"C:\Program Files (x86)\checkmk\service\check_mk_agent.exe" section wmi_cpuload
You should get relatively short and clean output:
<<<wmi_cpuload:sep(124)>>>
[system_perf]
Name|ProcessorQueueLength|Timestamp_PerfTime|Frequency_PerfTime|WMIStatus
|0|961086594870|10000000|OK
[computer_system]
Name|NumberOfLogicalProcessors|NumberOfProcessors|WMIStatus
MY_PC_NAME|12|1|OK
In this case, you should not have problems with CPU-load monitoring. Still do not hesitate to infrom checkmk if problem persists.
Sincerely
SK
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed. Contact an admin if you think this should be re-opened.