我的 ubuntu 服务器 (12.04) 有时会在未通知的情况下重启。如何检查是什么触发了服务器重启?
答案1
这是一门艺术。
如果可以,请启用串行控制台(您需要 BIOS 支持,可能需要启用 GRUB 支持,并运行 TTY),并确保系统日志和内核写入控制台。屏幕会话将其捕获到另一台服务器上的文件中可能会很有用。
常见的日志嫌疑: /var/log/messages
,,,。请注意,/var/log/syslog
仅在启动后不久捕获内核环形缓冲区,因此可能不会有太多信息。/var/log/kern.log
/var/log/debug
/var/log/dmesg
最有用的操作之一是启用netconsole
内核日志服务。您需要在某处(最好在附近)安装 syslog 服务器来捕获输出。 kdump
如果数据可以安全地记录到磁盘,那么它也很有用。
如果您仍然感到困惑,请开始查看硬件组件(内存、CPU 和主板组件是主要嫌疑人),换出/禁用其中的部分或全部等。内核驱动程序可能会导致故障,因此加载/卸载模块可能会揭示一些问题。
BIOS 配置可能会产生问题。例如:几年前戴尔曾遇到过“CSTATE”设置问题,英特尔很久以前遇到过 northgate/southgate 配置问题。请咨询您的 BIOS/系统供应商以获取任何建议的设置或固件更新。
多年来,我遇到过由于电容器损坏、RAM 损坏、BIOS、Samba 驱动程序、硬件加密加速器、电源/配电元件、主板接线、主电源中断以及各种形式的操作员错误/干预而导致的随机死机/崩溃。通常,从简单/可记录的内容开始,然后开始从可能的候选者中排除组件(硬件或软件)。
答案2
这通常非常困难。
一些值得关注的地方:
- 命令的输出
dmesg
(可能包含有关硬件故障的信息) - 内容
/var/log/syslog
(查找表示 syslog 正在启动的行,然后查看其前面的内容) - 内容
/var/log/messages
(与 syslog 相同) - 内容
/var/log/auth.log
(寻找任何有意重启的迹象) - 可能还有其他
/var/log/