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
安装内核相应包
-
首先使用命令
uname -r
得到自己的内核版本 -
然后访问网站下载两个包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
- 例如,内核版本
-
注意,如果你的内核没有更新,和镜像的版本一致,直接使用光盘镜像的包即可
-
开始安装
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