OpenBMC:journalctl 查看服务日志
1. journalctl 的用途
OpenBMC 中,systemd 管理的服务通常将标准输出、标准错误或结构化日志写入 journal。
journalctl适合查看服务启动失败、配置解析错误、D-Bus 调用失败和设备访问异常。它与 IPMI SEL、Redfish Event Log 的用途和存储方式不同。
查看本次启动日志:
journalctl -b --no-pager查看最近 100 行:
journalctl -n 100 --no-pager持续查看新增日志:
journalctl -f2. 按服务和时间过滤
查看指定服务:
journalctl -u <service> -b --no-pager跟踪指定服务:
journalctl -u <service> -f按时间范围查询:
journalctl -u <service> \ --since "2026-09-18 09:00:00" \ --until "2026-09-18 09:10:00"查询最近十分钟:
journalctl --since "10 minutes ago"如果 BMC 时间不准确,按绝对时间过滤可能遗漏日志。分析同一次启动内的先后顺序时,可以使用:
journalctl -b -o short-monotonic该格式显示相对启动时间,便于观察服务启动和硬件事件之间的关系。
3. 查看错误和内核日志
查看错误及更高严重级别的日志:
journalctl -b -p err查看内核日志:
journalctl -k -b查看服务原始消息:
journalctl -u <service> -o cat查看完整字段:
journalctl -u <service> -n 1 -o verbose需要注意,程序输出包含“error”一词,不代表 journal 的优先级一定被设置为错误。因此,排查时不能只依赖-p err。
4. 启动历史与存储限制
列出保留的启动记录:
journalctl --list-boots查看上一次启动:
journalctl -b -1查看日志占用:
journalctl --disk-usage如果日志只保存在内存中,BMC 重启后旧记录可能消失。能否查看上一次启动,取决于 journal 的持久化配置和保留策略。
分析问题时,应先记录异常发生时间,再结合服务日志与内核日志检查同一时间窗口。