linux主机宕机排查思路

  1. linux主机宕机排查思路
  2. 原因分析

    服务器分类,web服务器,数据库服务器,文件服务器,中间件,其它服务器。

    web服务器分析:常见的web应用apache,nginx,IIS等。

    宕机原因很多,cpu,内存,IO磁盘,应用BUG,内核BUG,硬件等

     

    系统和内核版本

    流程

    1.查看宕机的时间记录和历史登陆还有重启时间

    last reboot

    last -F |grep crash

    查看历史登陆有没有异常的用户

    last

    2.首先查看系统日志。如linux下的/var/log/下的log日志,包括message,内核报错日志demsg等等,sa记录,是记录cpu,内存等运行的性能文件,记录着运行时的cpu的运行状态如图所示。

    利用sa文件查看宕机时CPU情况

    利用sa文件查看宕机时内存情况

    日志量往往很大

    还可以进行模糊查询,如

    查看报错

    tail -200 /var/log/messages |grep "Error"

    cat /var/log/dmesg |grep "Error"

    查看内核崩溃日志

    tail -200 /car/log/messages |grep "crash"

    查看是否出现OOM,一般会出现kill杀死进程的情况

    cat /var/log/messages |grep -i "kill"

    还可以查看宕机时间段的日志,查看12月11日15点的日志

    cat /vat/log/messages |grep "Feb 11 15*"

     

    3.查看内存使用

    free -m,查看swap的使用和内存剩余情况和缓存。如果swap用了,且available也不够了,具体还要查看参数cat /proc/sys/vm/swappiness,如果设置为0,说明内存不够了。

    4.查看io和文件系统使用

    观察idle和iowait。磁盘读写时会用到缓存,一般为系统内存的40%,但是中间有一个缓冲时间120秒,将要用完这个缓存时,且会等待120秒,才会写入磁盘,在读写频繁的时候容易造成hang住的情况。

    查看IO的读写速度,如果很慢说明磁盘性能出现瓶颈。

    文件系统使用

     

    5.查看安全日志

    安全日志为/var/log/secure,查看history记录,查看是否有人登陆主机并做了恶意动作,例如关机。

     

    6.利用kdump和crash工具分析内核

    检查服务器开启了kdump服务,并在/var/crash目录找到了当天生成的vmcore文件,使用crash工具分析vmcore文件。

     

     

    Kdump 用于对内存镜像的转储,它不但可以转储内存镜像到本地硬盘,还可以将内存镜像通过NFS,SSH 等协议转储到不同机器的设备上。

    Kdump 分为两个组件:Kexec 和Kdump。

    Kexec 是一种内核的快速启动工具,可以使新的内核在正在运行的内核(生产内核)的上下文中启动,而不需要通过耗时的BIOS 检测,方便内核开发人员对内核进行调试。

    Kdump 是一种有效的内存转储工具,启用 Kdump 后,生产内核将会保留一部分内存空间,用于在内核崩溃时通过 Kexec 快速启动到新的内核,这个过程不需要重启系统,因此可以转储崩溃的生产内核的内存镜像。

     

    7.查看服务日志和监控软件

    如果在能找到宕机时进程的占用情况,可以根据占用异常的服务查看其日志。

    服务日志一般有数据库和web服务,中间件,框架等。

     

    还可以查看监控软件的历史记录图像,找到峰值点和宕机时间点的图像分析如下图。

     

    8.总结

    系统宕机的原因很多,需要我们细心的按照流程分析,

posted @ 2022-03-21 10:45  头发重要  阅读(10129)  评论(0编辑  收藏  举报