centos8.5自动重启排查
CentOS 8.5 机器自动重启,核心目标只有一个:
判断这是“主动重启(panic / watchdog / 电源)”还是“被动重启(人为 / 系统更新)”,并尽量拿到重启前最后一刻的内核证据。
在 Linux 世界里,真相通常藏在三层:
- 内核(kernel)
- 系统日志(journald / rsyslog)
- 硬件/固件(IPMI、BMC、ACPI)
下面按从最可靠 → 最容易丢失的顺序来查。
1.明确:这次 reboot 是不是 kernel panic
先看 系统是“crash”还是“reboot”。
1 | last -x | head |
关注几种关键记录:
crash→ 内核 panic 或硬件致命错误reboot→ 正常路径(systemctl reboot / watchdog)shutdown→ 人为或脚本触发
如果你看到类似:
crash system boot 4.18.0-348.el8.x86_64
基本可以断定:内核层出了事。
2. 使用 journalctl 精准定位“上一次启动之前”的日志
systemd 的一个巨大优点:
日志按“启动序列”分桶保存
2.1 查看系统保存了多少次启动记录
1 | journalctl --list-boots |
输出示例:
-2 9c8e... Tue 2026-01-19 02:01:33 JST — Tue 2026-01-19 02:05:10 JST
-1 4b3a... Tue 2026-01-19 02:05:45 JST — Tue 2026-01-19 02:06:02 JST
0 e12f... Tue 2026-01-19 02:06:15 JST — now
重点关注:
-1:发生异常 reboot 的那一轮-2:如果 -1 太短,说明是硬断电或 panic
2.2 查看“重启前”的内核日志
1 | journalctl -b -1 -k |
这是最关键的一条命令,只看内核(-k)。
你要重点搜这些关键词:
1 | journalctl -b -1 -k | egrep -i "panic|oops|bug|watchdog|hung|fatal|nmi" |
常见致命信号包括:
kernel panic - not syncingBUG: soft lockupwatchdog: BUG: soft lockupNMI watchdog: Hard LOCKUPOut of memory: Kill processMachine Check Exception
3.开启持久化 journal(防止断电丢日志)
1 | mkdir -p /var/log/journal |
确认:
1 | journalctl --disk-usage |
4.启用 kdump(捕获 panic 内核)
1 | dnf install -y kexec-tools |
一旦 panic:
👉 /var/crash/ 会留下完整内核转储