技术解析

请教如何分析 Linux 系统意外重启
0
2021-06-19 01:06:39
idczone
单位很偶尔会有服务器无故重启,操作系统为 RHEL6,自己总结了一些经验,想请大家补充和分享更好的思路,谢谢。

1.输入 last reboot 看重启时间,之后翻查 /var/log/messages,看重启时间之前有什么致命报错;
2.使用 sosreport、xsos 相关工具,查看 CPU、内存等资源是否不足,排查计划任务等。
需要排查下硬件情况,特别是内存 /硬盘是否报错,有条件还是去机房看下具体情况比较好

嗯假设是硬件没有任何告警的情况下,单纯从操作系统上分析。

抓内核日志,看是不是内存页访问报错

我能想到的是不知道你那服务器有没有管理口,进入设置的地方把日志打开,把日志记录打开,等着问题再度复现咯。
还有就是看看 corntab 有没有什么自动重启的设定咯 /有没有人远程操作关机呢?还有能想到的就是电源问题了,双电还是单电?电源是做冗余的吗?有条件的换个电源看看。另外系统有条件用 vcenter 管理,重要的服务器可以在做好服务器群组后做 HA

把 Linux 的 console 改成串口,然后外接一个设备记录串口输出内容?假如是 kernel panic 导致的重启,重启后也许不会留下任何信息。这种情况可能没什么好办法。

配 kdump 服务,抓 vmcore,用 crash 分析。这才是标准操作啊。
搞 linux 的为什么不上 docs.redhat.com 看专业文档,中文版的都有了。

开 crash 看临终遗言和 vmcore,只要能复现的问题分分钟找到原因

1.若是系统原因导致的重启(包括不限于应用、内核模块或驱动等,及内存泄露或溢出)
基本是可以通过系统日志可以看到端倪。系统或内核日志一般都在 /var/log 下
2.对于可能的内核 crash,建议开启 kdump
其实对于这个,中的日志是可以获取到蛛丝马迹的
通过系统的 uptime 可以初步确定系统重启的时间点,然后结合系统日志,可以初步确定是软件原因(上述的)导致的重启
若日志都很正常,那基本是可以确定是硬件的原因,比如电源或别的

kdump+1

除了看日志和 vmcore,还要考虑硬件的问题。
我遇到过两次硬件问题,一次是机柜送风口被遮住了导致温度过高,一次是内存条有问题。
温度监控可以提前添加到 zabbix 之类的监控平台,也可以看 IPMI。
内存检测可以用 memtest 做个可启动优盘。也可以往 /dev/shm 里写数据,同时查看内存错误计数。
查看内存错误计数: grep "[0-9]" /sys/devices/system/edac/mc/mc*/csrow*/ch*ce_count ​

你这,这个要是 kernel panic 才会有 vmcore 啊,并不是标准操作,很多系统 hang 住的情况 kdump 不一定工作.

IPMI 是直接入口,先排除 messages 有无明显的错误,甚至直接到 /var/crash 看有没有日志,第二看一下 IPMI 是否是硬件错误,最后查看一下是不是 watchdog 导致问题重启.

rhel 还折腾啥啊,直接 call 技术支持。

服务器型号? 如果在保,直接找厂家帮忙分析下,排除人为设置,一般 Linux 运行都是非常非常稳定的。

rhel 除非业务非常非常重要,一般很少买技术支持的。

不买技术支持为什么要用 rhel 呢,centos,ubuntu,suse 不香吗

有些只买了一年,后续不买的。 不买的话,但是用 centos 和用 rhel 其实没有区别,一样没有技术支持。只是 rhel 发行版 ,系统相对更成熟的更稳定的。

软件:Kdump+crash
硬件直接看 BMC 咯。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服