背景
在Linux系统环境下,服务器宕机发生的频率比较小,但是不少工程师或多或少都会遇到这种情况,有时候会手足无措,不知从何入手。笔者将借助一次案例分析,展示下Linux宕机故障事件的处理方法和思路。
宕机发生的原因不一,或者是硬件原因,或者是性能原因,或者是服务器触发了Linux的bug,导致内核崩溃等等。
案例分析
1、 案情还原;
生产系统服务器dcspodsaa1在4月25日凌晨00:49分发生服务器宕机故障,当时系统管理员对硬件报错进行了截图(保留现场很重要),看字面意思应该是服务器的swap设备发生损坏:
2、 分析方法一:使用sosreport收集系统日志,检查/var/log/messages日志,查找系统重启前是否存在错误日志,图中kernel***/proc/kmsg started代表系统启动的第一条日志,在此之前没有发现异常日志,
3、 分析方法二:检查服务器开启了kdump服务,并在/var/crash目录找到了当天生成的vmcore文件,使用crash工具分析vmcore文件,如下:
服务器发生了严重的系统崩溃panic错误
对kdmp文件的错误日志进行分析,发现了大量的swap 设备读写错误:
4、 根据报错” Kernel panic –not syncing:Attempted to kill init”,查询到红帽官网KB:https://access.redhat.com/solutions/1450043,得到此次宕机事件的原因是系统 swap设备I/O读写失败,触发系统kil