[ZBX-19910] IPMI plugin permits "infinity" JSON values for sensors thresholds Created: 2021 Sep 03  Updated: 2024 Apr 10  Resolved: 2022 Apr 21

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S), Templates (T)
Affects Version/s: 5.4.4
Fix Version/s: None

Type: Patch request Priority: Trivial
Reporter: Artem Assignee: Aleksandre Sebiskveradze (Inactive)
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

OS: Debian 10
Docker: 20.10.6
Docker image: zabbix/zabbix-server-mysql:5.4.4-alpine
Hardware: HP ProLiant DL160 G6


Attachments: PNG File discovery_rule_problem.png     Text File json.txt    
Issue Links:
Sub-task
depends on ZBX-20330 Search and exclude in ipmi checks fro... Closed
Team: Team INT
Sprint: Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022)
Story Points: 1

 Description   

Template Chassis by IPMI has a item prototype "Get IPMI" with key ipmi.get. That item used for a dependency items and discovery rules. IPMI plugin returns json with sensors data and permits "inf" as sensor thresholds value, but zabbix json processor does not.

As result, no one discovery rules from template does not work.

Example of problem sensor:

{
  "id": "FAN6_OUTLET",
  "name": "(29.12).FAN6_OUTLET",
  "sensor": {
    "type": 4,
    "text": "fan"
  },
  "reading": {
    "type": 1,
    "text": "threshold"
  },
  "state": {
    "state": 0,
    "text": ""
  },
  "value": 1998.401279,
  "units": "RPM",
  "threshold": {
    "lower": {
      "crit": inf
    },
    "upper": {
      "crit": 999.200639
    }
  }
}

Full result of ipmi.get command attached as json.txtfile

~# ipmitool sensor list | grep FAN
FAN1_OUTLET      | 3377.580   | RPM        | ok    | na        | inf       | na        | na        | 999.201   | na        
FAN1_INLET       | 4134.623   | RPM        | ok    | na        | inf       | na        | na        | 999.201   | na        
FAN2_OUTLET      | 3377.580   | RPM        | ok    | na        | inf       | na        | na        | 999.201   | na        
FAN2_INLET       | 4134.623   | RPM        | ok    | na        | inf       | na        | na        | 999.201   | na        
FAN3_INLET       | 4134.623   | RPM        | ok    | na        | inf       | na        | na        | 999.201   | na        
FAN3_OUTLET      | 3285.043   | RPM        | ok    | na        | inf       | na        | na        | 999.201   | na        
FAN4_INLET       | 4064.545   | RPM        | ok    | na        | inf       | na        | na        | 999.201   | na        
FAN4_OUTLET      | 3285.043   | RPM        | ok    | na        | inf       | na        | na        | 999.201   | na        
FAN5_INLET       | 2422.305   | RPM        | ok    | na        | inf       | na        | na        | 999.201   | na        
FAN5_OUTLET      | 1981.886   | RPM        | ok    | na        | inf       | na        | na        | 999.201   | na        
FAN6_INLET       | 2398.082   | RPM        | ok    | na        | inf       | na        | na        | 999.201   | na        
FAN6_OUTLET      | 1998.401   | RPM        | ok    | na        | inf       | na        | na        | 999.201   | na        

Detail for one of:

~# ipmitool sensor get FAN1_INLET
Locating sensor record...
Sensor ID              : FAN1_INLET (0x16)
 Entity ID             : 29.2
 Sensor Type (Threshold)  : Fan
 Sensor Reading        : 4134.623 (+/- inf) RPM
 Status                : ok
 Lower Non-Recoverable : na
 Lower Critical        : inf
 Lower Non-Critical    : na
 Upper Non-Critical    : na
 Upper Critical        : 999.201
 Upper Non-Recoverable : na
 Positive Hysteresis   : Unspecified
 Negative Hysteresis   : Unspecified
 Assertion Events      : 
 Assertions Enabled    : lcr- ucr+ 
 Deassertions Enabled  : lcr- ucr+ 

I think IPMI plugin must filter out sensors with "inf" thresholds, until zabbix JSON processor supports IEEE754

 

 



 Comments   
Comment by Elina Kuzyutkina (Inactive) [ 2021 Sep 06 ]

Thank you for the reporrting the issue.
For now you can simply add preprocessing step 'Replace' to replace inf with some big value like 999999 to make it working

Regards, Elina

Comment by Maxim Chudinov (Inactive) [ 2021 Nov 28 ]

Hello gknw .

You can use Elina's recommendation as a fast solution. In perspective, we'll make a change in zabbix_server code. 
But also I'd ask you to contact HP support. Cause the "inf" value looks like an error of BMC firmware. A threshold should be numeric or "na",  when it doesn't set. 

https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmi-second-gen-interface-spec-v2-rev1-1.pdf

Comment by Aleksandre Sebiskveradze (Inactive) [ 2022 Mar 31 ]

Fixed in ZBX-20330

Generated at Thu Jul 03 10:49:04 EEST 2025 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.