如何调查 Linux 服务器意外关闭?

如何调查 Linux 服务器意外关闭?

在一台新的 Xeon 55XX 服务器上,使用 4xSSD 和 Debian 6 进行 raid 10,在服务器建成后的两周内,我经历了 2 次随机关机。查看关机前的带宽日志没有发现任何异常。服务器负载通常很低(大约 1),并且并置在很远的地方。服务器停机时似乎没有断电。

我知道我会查看 /var/log,但不确定应该调查哪些日志以及应该查找什么。所以非常感谢您的提示。

答案1

首先,我必须问:“关机”?你的意思是机器重新启动还是真的停止了?如果停止了,要么是配置错误(可能是在 BIOS 中),要么是某些程序正在主动关闭机器(即 init 0)。

如果不是,您的主要候选文件将是 /var/log/syslog 和 /var/log/kern.log,因为您的问题听起来像是内核崩溃或软件触发的硬件故障。当然,如果服务器运行某些服务(例如 apache),也可能会给您提供线索。

通常,在这种情况下,会生成日志条目,但由于机器遇到困难,无法将条目写入磁盘。如果该盒子是共置的,则很有可能它由共置合作伙伴连接到串行控制台。如果我在上述日志中没有发现任何可疑之处,我就会在那里查看。

如果机器未连接到串行控制台,并且日志中没有任何内容,您可能需要考虑通过网络将系统日志发送到不同的机器。也许网络接口可以存活更长时间,并且可以在系统日志服务器上读取日志消息。看看 rsyslog 或 syslog-ng。

更新:

我同意下面@Johann 的观点。最有可能的停机原因是处理器温度看门狗。尝试通过 lmsensors 或 smartctl 检查/绘制盒子中的温度(通常最容易)。我发现 collectd 在跟踪大量变量方面无与伦比。它可以同时执行 IPMI 和 lm-sensors 以及 hddtemp。此外,一些 BIOS:es 会记录温度停机事件。

答案2

首先,你要检查/var/log/syslog。如果你不确定要查找什么,你可以先查找单词errorpanicwarning

grep -i error /var/log/syslog

如果您有可用的系统图表(例如 Munin)。检查它们并查找异常模式。如果您没有安装 munin,最好安装它(apt-get install munin munin-node

您还应该检查根邮件中是否存在与系统崩溃有关的有趣消息。

您应该检查的其他日志文件是应用程序错误日志。例如/var/log/apache2/error.log或类似文件。它们可能包含导致您发现问题的信息。

答案3

根据我的经验,“意外停机”几乎总是由过热引起的。通过 lm_sensors 检查温度和风扇速度,确保它们正常。

最近,我们遇到了同样的情况:在支持人员手动启动服务器大约一小时后,服务器停止运行。几个小时后,CPU 温度达到 BIOS 中配置的阈值(如果我没记错的话是 60 或 70°C),系统停止运行。所有这些问题都是由 CPU 风扇损坏引起的。更换风扇后,一切恢复正常。

答案4

你可以通过下面的命令来判断系统是否知道它正在关闭

sudo last -1x reboot
sudo last -1x shutdown

如果没有信息 => 那么可能是电源断电或其他外部因素

如果你有信息 => 在重启/关机时间附近的日志中搜索

相关内容