Uploaded image for project: 'ZABBIX BUGS AND ISSUES'
  1. ZABBIX BUGS AND ISSUES
  2. ZBX-18800

Zabbix agent WMI returns incorrect values

XMLWordPrintable

    • Icon: Incident report Incident report
    • Resolution: Unresolved
    • Icon: Minor Minor
    • None
    • 5.0.7, 5.2.2
    • None
    • Windows Server 2016
      Windows Server 2019

      Steps to reproduce:

      1. No special configuration required
      2. Query zabbix agent with a WMI value likeĀ 
      wmi.get[root\cimv2,select AvgDisksecPerRead from Win32_PerfRawData_PerfDisk_Logicaldisk WHERE Name='_Total']

      Result:

      Values are unreliable:

      2020-12-22 01:09:00 15584045
      2020-12-22 01:08:00 14744837
      2020-12-22 01:07:00 13824107
      2020-12-22 01:06:00 12601199
      2020-12-22 01:05:00 18446744073694678941
      2020-12-22 01:04:00 18446744073693237047
      2020-12-22 01:03:00 18446744073671703488
      2020-12-22 01:02:10 18446744073671267304
      2020-12-22 01:01:00 18446744073667840523
      2020-12-22 01:00:00 18446744073648979239

      ...

      2020-12-21 18:14:00 18446744071565508350
      2020-12-21 18:13:00 18446744071563709666
      2020-12-21 18:12:00 18446744071563225384
      2020-12-21 18:11:00 2147280336
      2020-12-21 18:10:00 2147275532
      2020-12-21 18:09:00 2146821900
      2020-12-21 18:08:00 2146369424
      2020-12-21 18:07:00 2145678572

      Error state can be reproduced on a system:

      .\zabbix_agentd.exe -t "wmi.get[root\cimv2,select AvgDisksecPerRead from Win32_PerfRawData_PerfDisk_Logicaldisk WHERE Name LIKE '%VD%']"
      wmi.get[root\cimv2,select AvgDisksecPerRead from Win32_PerfRawData_PerfDisk_Logicaldisk WHERE Name='C:\\mount\\Tank-VD-0'] [u|18446744073578909317]

      Running wmi query directly (shortly after):

      gwmi -Query "select AvgDisksecPerRead from Win32_PerfRawData_PerfDisk_Logicaldisk WHERE Name LIKE '%VD%'"
      AvgDisksecPerRead : 4001443676

      Same system - 30min later:

      .\zabbix_agentd.exe -t "wmi.get[root\cimv2,select AvgDisksecPerRead from Win32_PerfRawData_PerfDisk_Logicaldisk WHERE Name LIKE '%VD%']"
      wmi.get[root\cimv2,select AvgDisksecPerRead from Win32_PerfRawData_PerfDisk_Logicaldisk WHERE Name='C:\\mount\\Tank-VD-0'] [u|82629443]
      Running wmi query directly (shortly after):
      gwmi -Query "select AvgDisksecPerRead from Win32_PerfRawData_PerfDisk_Logicaldisk WHERE Name LIKE '%VD%'"
      AvgDisksecPerRead : 82668265

      There's no real starting point here - it just occurs "sometimes".
      The only thing i've noticed so far is that only values reaching the limit of (signed) int32 range (2147483647) seem to disappear (values are increasing due the nature of the measured value) and then the error occurs. There's just no explanation why the value sometimes decreases again.

      Expectation would be that the values are returned correctly (as the native WMI query does).

            zabbix.dev Zabbix Development Team
            dn@nuvotex.de Daniel
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: