event

版本信息

项目内容
组件版本1.80.50
文档作者mkdlf
最后更新2026-04-30

1. 组件概述

1.1 组件简介

event组件主要用于承载BMC的事件管理,通过SEL日志记录事件消息,例如硬件错误、故障、告警等,并维护告警数量等信息以表征当前系统健康状态

1.2 解决什么问题

  • 管理事件对象,新增事件时发信号,便于运维监听、上报
  • 管理部件健康状态
  • 管理系统健康状态

1.3 核心功能

  • 事件与告警

对外呈现事件告警两种不同的日志,但对于Event,两者仅严重等级不同,Normal级别的日志称为事件,告警则是Normal级别以上的日志。

  • 管理事件状态
  1. 所有日志都通过Event对象进行管理,即每一条日志都归属于一个对象
  2. 所有对象都有Assert/Deassert两种状态,所以也包括Normal级别的事件
  • 提供告警机制
  1. 读值监听

  1. 接口添加

1.4 外部交互边界图

2. API 使用说明与示例

2.1 GetAlarmList

功能说明

查询当前告警。

属性内容
接口名bmc.kepler.Systems.Events
首发版本bmcsdk 25.03
废弃状态正常可用

参数说明

参数名方向类型描述取值范围
StartId输入U16事件索引,(正序)从第几个开始查询U16
Count输入U16要查询的事件条数U16
QueryParameters输入Array查询条件列表,当前仅支持语言(en/zh)、严重等级(Normal/Minor/Major/Critical),其中Normal级别会过滤重启事件数组元素为键值对,其中Key、Value均为字符串类型
Total输出U16事件总条数U16
EventList输出Array事件详细信息列表数组元素仍为数组(记为a1),a1的元素为键值对,其中Key、Value均为字符串类型

返回值与异常

返回值含义触发条件处理建议
Total不为0成功环境上产生了告警
Total为0环境上没有产生告警时为成功,如果环境实际产生了告警,则意味着查询失败查询当前告警如果环境实际产生了告警,则要检查入参是否正确
抛错InternalError失败代码内部错误检查CSR配置或代码实现

应用场景

查询当前告警。

调试示例

命令行调试
  • 不带条件查询10条索引从0开始的事件
text
busctl --user call bmc.kepler.event /bmc/kepler/Systems/1/Events bmc.kepler.Systems.Events GetAlarmList 'a{ss}qqa(ss)' 3 Interface cli UserName Administrator ClientAddr <ip> 0 10 0

响应:qa(a(ss)) 1 30 1 "Cause" "1. The power cable is not securely connected or is faulty.@#AB;2. The PSU is faulty." 1 "Description" "The AC/DC input of PSU 2 is lost or out-of-range (SN:xxx, BN:xxx)." 1 "SN" "xxx" 1 "Influence" "The system is powered off unexpectedly." 1 "Suggestion" "1. Check whether the power cables are disconnected or loose.@#AB;2. Replace the power cables.@#AB;3. Replace the PSU." 1 "Timestamp" "1776481334" 1 "TriggerMode" "1" 1 "EventCode" "0x0300000D" 1 "ActionId" "0" 1 "RecordId" "110" 1 "PN" "xxx" 1 "ChassisId" "" 1 "ManagerId" "1" 1 "SystemId" "1" 1 "Severity" "Critical" 1 "MessageArgs" "[\"2\"]" 1 "LedFaultCode" "P02" 1 "ReportChannel" "65535" 1 "SubjectType" "3" 1 "OldEventCode" "0x0803FFFF" 1 "EventName" "PSUInputLost" 1 "AdditionalInfo" "--2" 1 "State" "Asserted" 1 "SensorType" "0x08" 1 "ComponentInstance" "2" 1 "ComponentLocation" "chassis" 1 "ComponentName" "PS--2" 1 "EventReadingType" "0x6f" 1 "EventSequenceNumber" "0x0000000000000027" 1 "NodeId" ""
  • 查询10条索引从0开始,并且语言为英文、严重等级为紧急的事件
text
busctl --user call bmc.kepler.event /bmc/kepler/Systems/1/Events bmc.kepler.Systems.Events GetAlarmList 'a{ss}qqa(ss)' 3 Interface cli UserName Administrator
 ClientAddr <ip> 0 10 2 'Lang' 'en' 'Severity' 'Critical'

响应:qa(a(ss)) 1 30 1 "Cause" "1. The power cable is not securely connected or is faulty.@#AB;2. The PSU is faulty." 1 "Description" "The AC/DC input of PSU 2 is lost or out-of-range (SN:xxx, BN:xxx)." 1 "SN" "xxx" 1 "Influence" "The system is powered off unexpectedly." 1 "Suggestion" "1. Check whether the power cables are disconnected or loose.@#AB;2. Replace the power cables.@#AB;3. Replace the PSU." 1 "Timestamp" "1776481334" 1 "TriggerMode" "1" 1 "EventCode" "0x0300000D" 1 "ActionId" "0" 1 "RecordId" "110" 1 "PN" "xxx" 1 "ChassisId" "" 1 "ManagerId" "1" 1 "SystemId" "1" 1 "Severity" "Critical" 1 "MessageArgs" "[\"2\"]" 1 "LedFaultCode" "P02" 1 "ReportChannel" "65535" 1 "SubjectType" "3" 1 "OldEventCode" "0x0803FFFF" 1 "EventName" "PSUInputLost" 1 "AdditionalInfo" "--2" 1 "State" "Asserted" 1 "SensorType" "0x08" 1 "ComponentInstance" "2" 1 "ComponentLocation" "chassis" 1 "ComponentName" "PS--2" 1 "EventReadingType" "0x6f" 1 "EventSequenceNumber" "0x0000000000000027" 1 "NodeId" ""

2.2 GetEventList

功能说明

查询历史事件。

属性内容
接口名bmc.kepler.Systems.Events
首发版本bmcsdk 25.03
废弃状态正常可用

参数说明

参数名方向类型描述取值范围
StartId输入U16事件索引,(正序)从第几个开始查询U16
Count输入U16要查询的事件条数U16
QueryParameters输入(可选参数)Array条件筛选,详见下表
Total输出U16事件总条数U16
EventList输出Array事件详细信息列表数组元素仍为数组(记为a1),a1的元素为键值对,其中Key、Value均为字符串类型

可选参数

参数名称描述
Lang查询事件的语言(en:英文,zh:中文),非必选参数,默认英文
SelLevel日志级别,查询符合日志级别条件的SEL日志,非必选参数 支持的日志级别:Normal/Minor/Major/Critical,查询Normal级别时会过滤重启类事件
SelObjectType主体类型,查询符合主体类型条件的SEL日志,非必选参数 可通过查询redfish/v1/Systems/system_id/LogServices/LogServices_id资源获得主体类型列表
SelBeginTime起始时间,查询在起始时间到结束时间范围内产生的SEL日志,非必选参数 支持的日期格式:yyyy-MM-dd HH:mm:ss
SelEndTime结束时间,查询在起始时间到结束时间范围内产生的SEL日志,非必选参数 支持的日期格式:yyyy-MM-dd HH:mm:ss
SelSearchString用于模糊匹配事件描述、事件码,ASCII范围(0x20~0x7E),长度0~20字符

返回值与异常

返回值含义触发条件处理建议
Total不为0成功环境上产生了事件
Total为0环境上没有产生事件时为成功,如果环境实际产生了事件,则意味着查询失败查询当前告警如果环境实际产生了事件,则要检查入参是否正确
抛错InternalError失败代码内部错误检查CSR配置或代码实现
抛错PropertyValueError失败入参不合法检查入参

应用场景

查询历史事件。

限制条件

调试示例

命令行调试
  • 查询历史事件(不加筛选条件)
text
busctl --user call bmc.kepler.event /bmc/kepler/Systems/1/Events bmc.kepler.Systems.Events GetEventList 'a{ss}qqa(ss)' 3 Interface cli UserName <user_name> ClientAddr <ip> 0 10 0

响应:qa(a(ss)) 1 30 1 "Cause" "" 1 "Description" "BMC event records are cleared." 1 "SN" "" 1 "Influence" "" 1 "Suggestion" "" 1 "Timestamp" "947583908" 1 "TriggerMode" "1" 1 "EventCode" "0x1A00000F" 1 "ActionId" "0" 1 "ReportChannel" "65535" 1 "EventReadingType" "0x6f" 1 "OldEventCode" "0x1002FFFF" 1 "ChassisId" "" 1 "ManagerId" "1" 1 "SystemId" "0" 1 "Severity" "Normal" 1 "MessageArgs" "[]" 1 "SubjectType" "26" 1 "RecordId" "1" 1 "PN" "" 1 "SensorType" "0x10" 1 "AdditionalInfo" "" 1 "State" "Asserted" 1 "EventName" "BMCEventCleared" 1 "ComponentInstance" "1" 1 "ComponentLocation" "" 1 "ComponentName" "BMC" 1 "LedFaultCode" "" 1 "EventSequenceNumber" "0x0000000000000050" 1 "NodeId" "00"
  • 查询历史事件(加筛选条件,未查到满足筛选条件的事件)
text
busctl --user call bmc.kepler.event /bmc/kepler/Systems/1/Events bmc.kepler.Systems.Events GetEventList 'a{ss}qqa(ss)' 3 Interface cli UserName Administrator ClientAddr 127.0.0.1 0 10 5 'SelBeginTime' '1970-01-01 00:01:54' 'SelEndTime' '1970-01-02 00:01:11' 'SelSearchString' 'Disk' 'SelObjectType' '2' 'Lang' 'zh'

响应:qa(a(ss)) 0 0

2.3 ClearEventList

功能说明

清除所有事件。

属性内容
接口名bmc.kepler.Systems.Events
首发版本bmcsdk 25.03
废弃状态正常可用

参数说明

应用场景

清除所有事件。

调试示例

命令行调试
text
busctl --user call bmc.kepler.event /bmc/kepler/Systems/1/Events bmc.kepler.Systems.Events ClearEventList a{ss} 3 Interface cli UserName Administrator ClientAddr <ip>

2.4 MockEvent

功能说明

事件模拟接口。

属性内容
接口名bmc.kepler.Systems.Events
首发版本bmcsdk 25.03
废弃状态正常可用

参数说明

参数名方向类型描述取值范围
EventCode输入String事件码String
Enabled输入U8模拟状态标识0:关闭模拟,1:启模拟
ObjectIndex输入U16事件下标U16
MockState输入U8事件状态1:生成告警,0:恢复告警

应用场景

模拟告警事件。

调试示例

命令行调试
text
busctl --user call bmc.kepler.event /bmc/kepler/Systems/1/Events bmc.kepler.Systems.Events MockEvent a{ss}syqy 3 Interface cli UserName Administrator ClientAddr <ip> 0x0200000B 1 1 1

2.5 MaskEvent

功能说明

屏蔽事件接口。

属性内容
接口名bmc.kepler.Systems.Events
首发版本bmcsdk 25.03
废弃状态正常可用

参数说明

参数名方向类型描述取值范围
EventCode输入String事件码String
MaskState输入U8屏蔽状态0:开启屏蔽,1:关闭屏蔽
Mode输入U8屏蔽模式1:NONE,不保存屏蔽状态,重启失效
2:RESET,重启后保持屏蔽
3:AC后保持屏蔽

应用场景

屏蔽事件接口。

调试示例

命令行调试
text
busctl --user call bmc.kepler.event /bmc/kepler/Systems/1/Events bmc.kepler.Systems.Events MaskEvent a{ss}syy 3 Interface cli UserName Administrator ClientAddr <ip> '0x0200000B' 0 1

2.6 GetEventInfo

功能说明

查询系统信息。

属性内容
接口名bmc.kepler.Systems.Events
首发版本bmcsdk 25.03
废弃状态正常可用

参数说明

参数名方向类型描述取值范围
Version输出String事件配置版本String
CurEventCount输出U16当前事件数量U16
MaxEventCount输出U16最大事件数量U16

返回值与异常

返回值含义触发条件处理建议
Version、CurEventCount、MaxEventCount均为0没有获取到系统事件没有产生系统事件或事件未添加成功根据是否实际产生系统事件定位

应用场景

查询系统信息。

调试示例

命令行调试
text
busctl --user call bmc.kepler.event /bmc/kepler/Systems/1/Events bmc.kepler.Systems.Events GetEventInfo a{ss} 3 Interface cli UserName Administrator ClientAddr <ip>

响应:sqq "1.0.0" 2 10000

2.7 GetMaskedEventList

功能说明

查询屏蔽事件列表。

属性内容
接口名bmc.kepler.Systems.Events
首发版本bmcsdk 25.03
废弃状态正常可用

参数说明

参数名方向类型描述取值范围
MaskedEventList输出Array屏蔽事件列表信息,包括EventCode:被屏蔽事件的事件码、EventName: 被屏蔽事件的事件标识

应用场景

查询屏蔽事件列表。

调试示例

命令行调试
text
busctl --user call bmc.kepler.event /bmc/kepler/Systems/1/Events bmc.kepler.Systems.Events GetMaskedEventList a{ss} 3 Interface cli UserName Administrator ClientAddr <ip>

响应:a(ss) 2 "0x1A000053" "BMCAccessI2CDeviceFailure" "0x2C000073" "SystemPowerHigh"

2.8 AddEvent

功能说明

添加软件告警。

属性内容
接口名bmc.kepler.Systems.Events
首发版本bmcsdk 25.03
废弃状态正常可用

参数说明

参数名方向类型描述取值范围
EventInfo输入Array事件信息集合必选参数:(ComponentName:事件主体名称 State:事件状态 EventKeyId:事件标识 EventName:事件名称 MessageArgs:动态参数列表 SystemId:事件归属的SystemId ManagerId:事件归属的ManagerId ChassisId:事件归属的ChassisId NodeId:事件对应的对象) 可选参数:(SubjectType:事件主体类型)

参数含义

参数名称描述
ComponentName事件主体名称(必选)
State事件状态(必选, “true”/“false”)
EventKeyId事件标识(必选,唯一)
SuggestionArgs事件建议参数(可选)
SubjectType事件主体类型(可选)(默认静态配置)
MessageArgs事件描述动态参数(必选)
SystemId事件归属的SystemId(必选)
ManagerId事件归属的ManagerId(必选)
ChassisId事件归属的ChassisId(必选)
NodeId事件对应的对象(必选)
LedFaultCodeled显示故障码(可选)
AdditionalInfo事件关联部件的补充信息(可选)

注释

  1. MessageArgsSuggestionArgs需要cjson.encode表为字符串
  2. ComponentName需要有效,与实际的Component匹配
  3. 无法重复生成,产生后需要有对应的恢复操作

应用场景

添加软件告警。

调试示例

命令行调试
text
busctl --user call bmc.kepler.event /bmc/kepler/Systems/1/Events bmc.kepler.Systems.Events AddEvent 'a{ss}a(ss)' 3 Interface cli UserName Administrator ClientAddr <ip> 9 ComponentName 'BMC' State 'true' EventKeyId 'BMC.InsecureCryptographicAlgorithm' 'MessageArgs' '["SSHKexs","diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1"]' 'SystemId' '1' 'ManagerId' '1' 'ChassisId' '1' 'NodeId' '1' 'SubjectType' '41'

3. 组件扩展案例

3.1 扩展能力概述

不适用

4. 日志说明

4.1 一键日志收集

文件路径内容说明
AppDump/event/current_event.txt记录当前告警
AppDump/event/sel.txt
AppDump/event/eo_sel.csv
记录历史事件
AppDump/event/mask_event.txt记录屏蔽的事件
AppDump/event/event.db
AppDump/event/event_reset.db
持久化数据库
LogDump/event/alarm.log事件硬件对象注册信息以及最近三次的读值

4.2 关键日志信息

日志片段日志级别含义解读建议处理动作
xxx has no component elements and cannot be registeredERROR告警没有关联Component或者解析异常先查看告警是否关联了Component,再进一步定位
[register] [Event_xxx] [error_msg: no definition]不涉及,日志路径为LogDump/event/alarm.log告警没有找到静态配置,Event拒绝注册检查静态配置

5. 问题定界指南

5.1 典型问题定界

现象描述是否为本组件问题判断依据关键证据收集方法
告警描述不符合预期Event组件仅提供告警描述的公共机制,传入的参数及格式由开发者自行实现查看告警描述涉及参数的数据源
告警关联的数据源读数达到了告警门限,但是没有产生告警已满足告警条件但是未产生告警

5.3 调试方法

开启调试日志

busctl资源协作接口方法调试见文档第二章节。

复现问题方法

  1. CSR不配置要验证的事件,或CSR配置了事件但是未关联对应的Component对象,查看事件的注册情况,预期注册失败

6. 常见问题解答

常见问题解答请查阅《Event常见问题指南》

附录

附录A 参考资料

附录B 修订记录

版本日期修订人修订内容
v1.02026-04-30mkdlf初始版本创建