IPMI:如何使用IPMI监控传感器查找阈值。c

IPMI:如何使用IPMI监控传感器查找阈值。c,c,ipmi,C,Ipmi,我正在编写一个API来报告套接字守护程序查询的IPMI硬件信息,套接字守护程序托管在客户机上,远程服务器将发送命令来查询主机硬件状态 我已经成功地编写了一个API,该API使用FreeIPMI库来获取CPU和M/B的温度。在潜入ipmi传感器源代码后,我发现很难跳过输出到标准输出。要获取标准输出,我使用dup(标准输出文件号)重定向到管道,刷新管道,解析字符串内容,提取所需信息 现在一切正常,但我面临另一个问题,我需要将FreeIPMI编译为静态库 我找到了一个链接,FreeIPMI的维护者说

我正在编写一个API来报告套接字守护程序查询的IPMI硬件信息,套接字守护程序托管在客户机上,远程服务器将发送命令来查询主机硬件状态

我已经成功地编写了一个API,该API使用FreeIPMI库来获取CPU和M/B的温度。在潜入ipmi传感器源代码后,我发现很难跳过输出到标准输出。要获取标准输出,我使用dup(标准输出文件号)重定向到管道,刷新管道,解析字符串内容,提取所需信息

现在一切正常,但我面临另一个问题,我需要将FreeIPMI编译为静态库

我找到了一个链接,FreeIPMI的维护者说

./configure CFLAGS="-static"
成功构建静态库,但未能构建ipmi传感器,存在许多编译器错误。太沮丧了

之后,我在FreeIPMI项目文件夹中找到另一个文件,compilewithcommand

gcc -o ipmimonitoring-sensors ipmimonitoring-sensors.c -lipmimonitoring
是的,它起作用了

sudo ./ipmimonitoring-sensors 
Record ID, Sensor Name, Sensor Number, Sensor Type, Sensor State, Sensor Reading, Sensor Units, Sensor Event/Reading Type Code, Sensor Event Bitmask, Sensor Event String
3, CPU0_TEMP, 33, Temperature, Nominal, 46.00, C, 1h, C0h, 'OK'
12, DIMM_P0_B0, 4, Temperature, Nominal, 39.00, C, 1h, C0h, 'OK'
13, DIMM_P0_B1, 5, Temperature, Nominal, 40.00, C, 1h, C0h, 'OK'
59, P12V, 64, Voltage, Nominal, 12.06, V, 1h, C0h, 'OK'
60, P5V, 65, Voltage, Nominal, 4.99, V, 1h, C0h, 'OK'
61, P3V3, 66, Voltage, Nominal, 3.27, V, 1h, C0h, 'OK'
62, P5V_STBY, 67, Voltage, Nominal, 4.99, V, 1h, C0h, 'OK'
64, P_VBAT, 69, Voltage, Nominal, 3.22, V, 1h, C0h, 'OK'
65, P_VCCIN_P0, 70, Voltage, Nominal, 1.80, V, 1h, C0h, 'OK'
67, P_1V2_BXD, 72, Voltage, Nominal, 1.23, V, 1h, C0h, 'OK'
71, P_1V05_BXD, 76, Voltage, Nominal, 1.06, V, 1h, C0h, 'OK'
72, P_1V5_BXD, 77, Voltage, Nominal, 1.53, V, 1h, C0h, 'OK'
73, P_VCCSCFUSESUS, 78, Voltage, Nominal, 1.72, V, 1h, C0h, 'OK'
74, P_VCCKRHV_BXD, 79, Voltage, Nominal, 1.32, V, 1h, C0h, 'OK'
136, CPU0_FAN, 96, Fan, Nominal, 2700.00, RPM, 1h, C0h, 'OK'
185, CPU0, 156, Processor, Nominal, N/A, N/A, 6Fh, 80h, 'Processor Presence detected'
202, MB_TEMP1, 51, Temperature, Nominal, 50.00, C, 1h, C0h, 'OK'
205, SEL, 152, Event Logging Disabled, Nominal, N/A, N/A, 6Fh, 0h, 'OK'
但是,如何获得阈值作为
ipmi传感器-v
,我知道它将报告
标称
警告
严重
。但我想报告
Low
High
,而不仅仅是
OK
事件

Entity Instance Type: Physical Entity
Event/Reading Type Code: 1h
Lower Critical Threshold: 0.000000 C
Upper Critical Threshold: 60.000000 C
Lower Non-Critical Threshold: 5.000000 C
Upper Non-Critical Threshold: 55.000000 C
Lower Non-Recoverable Threshold: N/A
Upper Non-Recoverable Threshold: N/A
Sensor Min. Reading: -128.000000 C
Sensor Max. Reading: 127.000000 C
Normal Min.: 0.000000 C
Normal Max.: 54.000000 C
Nominal Reading: 35.000000 C
Sensor Reading: 50.000000 C
Sensor Event: 'OK'

提前感谢。

这里是FreeIPMI维护者。恐怕ipmimonitoring库中没有阈值信息。图书馆的主要目的是从用户那里提取信息

可以通过从SDR获取信息来检索每个传感器的阈值信息,您可以使用libfreeipmi SDR库进行检索。Ipmi监控会为您提供与每个传感器读取相关的SDR记录ID,以便您可以将传感器映射到正确的SDR记录ID