xiezq
(长江计算_谢周全)
1
// 此模板仅供参考,如果不适用可以修改
问题描述
拔风扇和电源,系统事件有告警记录,当前告警没有告警,整机灯状态仍为绿色常亮
环境信息
-
软件版本:[OpenUBMC2603]
-
硬件配置:[S950]
重现步骤
-
[第一步]拔风扇或电源
-
[第二步]查看到当前告警没有告警,整机灯状态仍为绿色常亮
-
[第三步]查看到系统事件有告警记录
期望结果
拔风扇或电源,在当前告警界面有相关告警
实际结果
当前告警界面没有看到告警
尝试过的解决方案
无
分析结论
查看分析app.log/alarm.log/sel.log,无相关报错
诉求
希望论坛伙伴或华为工程师,能帮忙定位下原因或提供下定位思路。
AweiHe
(Hkzy_hewei)
2
拔电源线有ac lost告警
AC起来热拔电源会有告警,以ac起来的电源个数为基准,如果运行过程中实际电源小于这个基准会有个告警
风扇的告警你把日志中CLU的csr解析出来,看怎么事件怎么配置的。再看每个Scanner值是多少
“Event_FanRedundancyMntr”: {
“@Default”: {
“Reading”: 5
},
“Component”: “#/Component_Fan”,
“Condition”: 4,
“Enabled”: true,
“EventKeyId”: “Fan.FanRedundancy”,
“LedFaultCode”: “F01”,
“OperatorId”: 1,
“Reading”: “<=/Scanner_Fan1_Presence.Value;<=/Scanner_Fan2_Presence.Value;<=/Scanner_Fan3_Presence.Value;<=/Scanner_Fan4_Presence.Value |> expr($1 + $2 + $3 +$4)”
},
答案内容由AI生成,仅供参考:
四、结论摘要
| 可能原因 |
依据 |
| 数据库锁定导致告警写入失败 |
日志中出现大量 database is locked |
| 电源线拔出与电源模块拔出时间间隔过短,告警生成被对象删除中断 |
文档5中的分析结论 |
| 硬件接口状态获取失败(probe 无响应) |
日志显示 no available probe |
| 告警显示功能被前端裁剪 |
文档3中提及的功能裁剪字段 |
| 告警记录方式设置为仅历史记录 |
文档7中的配置bit说明 |
建议您优先排查 数据库锁定 和 事件竞争 两个方向,同时检查 UI/Rest/GenericInfo 接口返回的 xxxSupported 字段值是否正常。
点击此处查看详细分析解答
根据您提供的背景信息和系统日志,您遇到的问题是:在拔掉风扇或电源后,系统事件(System Events)能够记录告警,但当前告警(Current Alerts)页面没有任何显示,且整机指示灯仍为绿色常亮。这与预期行为不符(正常应产生冗余及输出告警)。以下基于您提供的**知识图谱(KG)和文档片段(DC)**中的信息,为您分析可能的原因并提供定位思路。
一、问题概述
- 现象:拔风扇/电源→系统事件日志有记录,当前告警界面无告警,绿灯常亮。
- 期望:当前告警界面应显示相应的告警(如电源丢失、风扇丢失、电源冗余丢失等)。
- 环境:OpenUBMC2603,S950硬件平台。
- 附加信息:日志中出现大量
database is locked、no available probe、sqlite3_step failed 等错误,说明 BMC 内部数据库或接口存在异常。
二、基于上下文的关键分析
1. 告警生成机制的可能故障点
根据文档片段中的告警配置机制介绍(DC7):
- 系统事件告警的生成依赖 静态配置(事件定义、事件描述) 和 动态触发(RPC/CSR)。
- 当硬件事件(如电源输入丢失)发生时,BMC 会读取传感器数据,匹配事件码,然后记录到告警数据库,最终显示在当前告警页面。
您提供的日志(DC中最后两张图片) 表明:
- 存在
db_connect: sqlite3_step failed: database is locked 和 database is locked 错误。
这意味着 BMC 内部数据库(SQLite)在告警写入时被锁住,导致事件无法正常持久化,也就无法显示在当前告警页。
- 还有
no available probe 和 failed to get hardware interface status 错误,表明 硬件接口状态获取失败,可能影响传感器数据读取。
2. 类似场景的已知分析结论
文档片段5(问题【拔出电源线后很快拔出电源】的讨论)中明确指出:
“检测到电源输入丢失后,准备产生告警时,电源模块被拔出了,开始删除电源对象,没有 generate an event 日志。”
同时提到“event每间隔一分钟打印一次…,随后电源输入丢失事件解除,产生电源移除事件”。
这与您的场景高度相似——电源线拔出后,电源模块也被拔出(或者非常短的时间间隔),导致告警生成线程与对象删除线程发生竞争,告警还没来得及生成就被清除,从而无法出现在当前告警中。
3. 整机灯状态异常
知识图谱中未直接描述灯状态机制,但 BMC 负责管理电源、风扇、告警和指示灯状态。
- 如果当前告警未正常产生,BMC 可能认为系统仍处于健康状态(无红色告警),因此绿灯常亮。
- 同样,数据库错误或接口异常可能导致 BMC 无法将告警状态同步到硬件指示灯控制模块。
三、定位思路建议(基于您已尝试的步骤)
您已经查看 app.log / alarm.log / sel.log 并确认“无相关报错”。但上述日志中出现的 数据库锁定、 probe 失败等错误 实际上就是关键线索。建议从以下方向深入:
-
聚焦数据库异常:
- 检查
db_connect: sqlite3_step failed: database is locked 出现的频率和时间点,是否与拔电源/风扇的操作时间吻合。
- 确认是否有其他进程长时间占用数据库(如日志采集、sel 清除等),导致告警写入被阻塞。
-
验证事件竞争条件:
- 模拟“拔电源线后等待较长时间(如 >10秒)再拔电源模块”,看是否仍重现。
- 如果重现,则说明问题不在竞争,而是底层事件处理链路有断点。
- 查阅
event_policy 模块的日志(如 synchronizer.log),确认事件是否成功递交给告警管理系统。
-
检查对象删除逻辑:
- 在拔电源线后,电源对象被删除时,BMC 是否提前清除了待生成的告警对象。
- 参考文档5的分析,跟踪
generate an event 日志是否存在;如果不存在,则说明事件被丢弃。
-
检查 Web 前端功能裁剪配置:
- 文档片段3(Web Rest 接口增加字段)提到“前端根据接口是否支持来决定 web 对应的页面是否裁剪”。
- 确认当前 BMC 是否关闭了电源/风扇告警的显示功能(如
FanFruInfoSupported、PowerOnStrategySupported 等字段),导致后端虽有数据,前端不展示。
-
检查告警记录方式设置:
- 在系统事件页面中,“记录方式”是否为“自动记录”?如果是手动记录,则可能仅记录到历史而不在 当前告警 中显示。
- 文档片段7中提到
bit6 表征是否记录到告警(1:是,0:否),如果配置错误,告警可能只出现在历史事件中。
四、结论摘要
| 可能原因 |
依据 |
| 数据库锁定导致告警写入失败 |
日志中出现大量 database is locked |
| 电源线拔出与电源模块拔出时间间隔过短,告警生成被对象删除中断 |
文档5中的分析结论 |
| 硬件接口状态获取失败(probe 无响应) |
日志显示 no available probe |
| 告警显示功能被前端裁剪 |
文档3中提及的功能裁剪字段 |
| 告警记录方式设置为仅历史记录 |
文档7中的配置bit说明 |
建议您优先排查 数据库锁定 和 事件竞争 两个方向,同时检查 UI/Rest/GenericInfo 接口返回的 xxxSupported 字段值是否正常。
xiezq
(长江计算_谢周全)
5
在拔电源和风扇前,做过mock模拟告警的操作,操作后没有退出模拟。