event
版本信息
| 项目 | 内容 |
|---|---|
| 组件版本 | 1.80.50 |
| 文档作者 | mkdlf |
| 最后更新 | 2026-04-30 |
1. 组件概述
1.1 组件简介
event组件主要用于承载BMC的事件管理,通过SEL日志记录事件消息,例如硬件错误、故障、告警等,并维护告警数量等信息以表征当前系统健康状态。
1.2 解决什么问题
- 管理事件对象,新增事件时发信号,便于运维监听、上报
- 管理部件健康状态
- 管理系统健康状态
1.3 核心功能
- 事件与告警
对外呈现事件与告警两种不同的日志,但对于Event,两者仅严重等级不同,Normal级别的日志称为事件,告警则是Normal级别以上的日志。
- 管理事件状态
- 所有日志都通过Event对象进行管理,即每一条日志都归属于一个对象
- 所有对象都有Assert/Deassert两种状态,所以也包括Normal级别的事件
- 提供告警机制
- 读值监听
- 接口添加
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 02.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 12.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 12.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 100002.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 | 事件对应的对象(必选) |
| LedFaultCode | led显示故障码(可选) |
| AdditionalInfo | 事件关联部件的补充信息(可选) |
注释
- MessageArgs、SuggestionArgs需要cjson.encode表为字符串
- ComponentName需要有效,与实际的Component匹配
- 无法重复生成,产生后需要有对应的恢复操作
应用场景
添加软件告警。
调试示例
命令行调试
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 registered | ERROR | 告警没有关联Component或者解析异常 | 先查看告警是否关联了Component,再进一步定位 |
| [register] [Event_xxx] [error_msg: no definition] | 不涉及,日志路径为LogDump/event/alarm.log | 告警没有找到静态配置,Event拒绝注册 | 检查静态配置 |
5. 问题定界指南
5.1 典型问题定界
| 现象描述 | 是否为本组件问题 | 判断依据 | 关键证据收集方法 |
|---|---|---|---|
| 告警描述不符合预期 | 否 | Event组件仅提供告警描述的公共机制,传入的参数及格式由开发者自行实现 | 查看告警描述涉及参数的数据源 |
| 告警关联的数据源读数达到了告警门限,但是没有产生告警 | 是 | 已满足告警条件但是未产生告警 |
5.3 调试方法
开启调试日志
busctl资源协作接口方法调试见文档第二章节。
复现问题方法
- CSR不配置要验证的事件,或CSR配置了事件但是未关联对应的Component对象,查看事件的注册情况,预期注册失败
6. 常见问题解答
常见问题解答请查阅《Event常见问题指南》。
附录
附录A 参考资料
附录B 修订记录
| 版本 | 日期 | 修订人 | 修订内容 |
|---|---|---|---|
| v1.0 | 2026-04-30 | mkdlf | 初始版本创建 |