SEL 中的内存事件
BMC 的系统事件日志(SEL)会记录内存可纠正错误与不可纠正错误,很多机型还带上 DIMM 位置信息,这是向厂商申请更换、与业务方解释故障时最直接的证据。用 IPMI 命令可以筛选、导出这些条目。使用前要确认两件事:SEL 是环形缓冲,写满后会覆盖最早记录;BMC 时间可能与业务系统存在偏差,不校准时间线容易把事件对应到错误的业务时段。
基本信息
| 适用平台 | 支持 IPMI 的服务器 BMC(带内或带外访问) |
|---|---|
| 筛选命令 | ipmitool sel elist 配合关键字过滤 |
| 常见条目 | 可纠正内存错误、不可纠正内存错误、DIMM 位置 |
| 时间基准 | sel time get 与本地时间核对后再做时间线分析 |
| 归档要求 | 导出全文随工单保存,避免清理后无法追溯 |
| 交叉验证 | 与内核侧 EDAC、mcelog 记录相互印证 |
典型使用场景
- 申请更换硬件:用带 DIMM 位置的记录作为工单依据
- 故障复盘:还原内存错误与业务异常的时间对应关系
- 批量巡检:统计各机器内存类事件数量,找出高风险个体
- 换条后验证:确认事件不再新增
- 与内核记录交叉核对,区分内存侧与 CPU 侧问题
导出与筛选
导出与筛选
# 筛选内存相关事件,只看最近若干条
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass sel elist | grep -iE 'memory|dimm|ecc' | tail -30
# 查看完整事件列表尾部,确认有无遗漏类型
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass sel list | tail -20
# 核对 BMC 时间基准,避免时间线错位
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass sel time get
date
# 全文导出留档(去掉路径即为标准输出)
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass sel elist > sel_memory_$(date +%F).txt读法与注意事项
| 项 | 含义 | 使用要点 |
|---|---|---|
| 事件类型 | 可纠正或不可纠正内存错误 | 可纠正看趋势,不可纠正须尽快处置 |
| DIMM 位置 | 出错内存条所在槽位 | 换件与定位的直接依据 |
| 时间戳 | 事件发生时刻(BMC 时钟) | 先校准时间再与业务日志对齐 |
| 记录编号 | SEL 条目序号 | 溯源与引用时提供唯一标识 |
| 日志容量 | 环形缓冲,旧条目会被覆盖 | 重要事件及时导出归档 |
内存事件在 SEL 与内核日志中往往成对出现:BMC 侧记硬件事件,操作系统侧记可纠正错误计数,两边时间不一致时以硬件侧为准更适合定位部件。
长期统计比单条记录更有价值:同一位置反复出现可纠正错误,才说明该条内存需要更换。