mcelog 解决什么问题
mcelog 以守护进程方式持续采集机器检查异常,把可纠正与不可纠正错误带时间戳写进日志文件,方便按内存条做统计与告警联动。它解决的正是「内核缓冲区会滚动覆盖」这个问题:不开守护进程,等你想查的时候早期的错误记录已经不在了。配置重点在日志路径、是否同时写系统日志,以及与内核异常子系统的配合方式。
基本信息
| 运行方式 | 以守护进程常驻 |
|---|---|
| 日志路径 | /var/log/mcelog,按配置而定 |
| 触发动作 | 达到阈值时记录或执行自定义脚本,按版本支持情况启用 |
| 数据来源 | 内核机器检查异常子系统 |
| 快速核对 | systemctl status mcelog 与 journalctl -u mcelog -n 50 |
典型使用场景
- 为内存错误建立长期可查的记录
- 按内存条统计错误次数并联动告警
- 复盘宕机或进程崩溃时查找硬件证据
- 与内核日志、带外管理告警交叉验证
- 在交付验收时确认采集链路已经就绪
安装与启动
安装与启动
# Debian/Ubuntu 系(需已配置可用软件源)
apt-get update && apt-get install -y mcelog
systemctl enable --now mcelog
systemctl status mcelog --no-pager
journalctl -u mcelog -n 50 # 查看服务自身日志关键配置项
关键配置项
[global]
daemon = yes
logfile = /var/log/mcelog
syslog = yes
[memory]
# 达到阈值时记录或触发自定义脚本,按版本支持情况启用配置项说明
| 配置项 | 作用 | 注意 |
|---|---|---|
| daemon | 以守护进程方式运行 | 关闭后不会再持续落盘 |
| logfile | 错误记录路径 | 注意日志轮转与分区空间 |
| syslog | 同时写入系统日志 | 便于与统一日志平台对接 |
| memory 段 | 内存错误相关阈值与动作 | 支持情况随版本变化 |
内核与 mcelog 的配合方式存在版本差异:先确认发行版文档与 mcelog 版本,再决定用它还是用 rasdaemon 采集。
较新的发行版更推荐用 rasdaemon 统一采集内存错误数据:选型前先确认本平台默认方案,避免同时维护两套重复的采集链路。
采集到错误后要看趋势而不是单条记录:同一条内存在短时间内反复出现可纠正错误,更换的优先级应高于偶发一次的情况。