kdump内核转储



CentOS 7.5 配置Kdump


安装Kdump

~]# yum install kexec-tools


安装Kdump图形化

~]# yum install system-config-kdump


配置保留内存

~]# vim /etc/default/grub   # 修改crashkernel=auto
GRUB_CMDLINE_LINUX="crashkernel=128M rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
~]# grub2-mkconfig -o /boot/grub2/grub.cfg
~]# reboot


  • auto - 根据系统中的总内存量自动配置保留内存(配置之后未知错误,暂不配!!!)
  • 128M - 保留128 MB内存
  • 512M-2G:64M,2G-:128M - 如果系统内存总量为512MB或者更高且低于2GB,则保留64MB内存,如果内存总量超过2GB,则保留128MB
  • 128M@16M - 保留从16MB(物理内存0x01000000)开始的128MB内存。如果offset参数设置为0或完全省略,则会自动偏移保留的内存,如上所述,当设置可变存储器保留时,也可以使用该语法,在这种情况下,始终指定偏移量(例如512M-2G:64M,2G-:128M@16M


配置kdump类型

修改配置文件/etc/kdump.conf


核心转储到本地

path /usr/local/cores


核心转储到设备

raw /dev/sdb1


使用NFS指定核心转储

nfs pengunin.example.com:/export/cores


使用SSH指定核心转储

ssh user@address
sshkey /root/.ssh/id_rsa



配置核心收集器

core_collector makedumpfile -l --message-level 1 -d 31


配置默认操作

default reboot


启动服务

systemctl enable kdump.service
systemctl start kdump.service


测试Kdump配置

~]# systemctl is-active kdump   # 确认服务正在运行
active
~]# echo > /proc/sys/kernel/sysrq;echo c > /proc/sysrq-trigger



分析核心转储


安装崩溃分析工具

yum install crash


安装内核相应包

  1. 首先使用命令uname -r得到自己的内核版本

  2. 然后访问网站下载两个包http://debuginfo.centos.org/7/x86_64/

    • 例如,内核版本3.10.0-862.14.4.el7.x86_64就下载如下两个包
    • kernel-debuginfo-3.10.0-862.14.4.el7.x86_64.rpm
    • kernel-debuginfo-common-x86_64-3.10.0-862.14.4.el7.x86_64.rpm
  3. 注意,如果你的内核没有更新,和镜像的版本一致,直接使用光盘镜像的包即可

  4. 开始安装

    yum localinstall kernel-debuginfo-*


运行崩溃实用程序

crash /usr/lib/debug/lib/modules/3.10.0-862.14.4.el7.x86_64/vmlinux /var/crash/127.0.0.1-2018-11-15-23\:46\:16/vmcore


查看信息


显示消息缓冲区

crash> log
# help log 有更多的信息


显示内核堆栈跟踪

crash> bt
# help bt 有更多的信息


显示进程状态

crash> ps
# help ps 有更多的信息


显示虚拟内存

crash> vm
# help crash 有更多的信息


显示打开的文件

crash> files
# help files 有更多的信息


退出实用程序

quit

猜你喜欢

转载自www.cnblogs.com/liuhedong/p/10777676.html