Centos7 开启Crash dump
- 1. 安装依赖
- 2. 修改grub
- 3. kdump自动启动
- 4. 手动测试kdump是否产生
- 5. 确认crash报错内容
1. 安装依赖
yum install -y kexec-tools crash
2. 修改grub
在grub中修改GRUB_CMDLINE_LINUX的值,加入crashkernel参数,值为内存/4
即1G内存crashkernel设置为256M
cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=256M rd.lvm.lv=centos/root rd.lvm.lv=centos/swap biosdevname=0 net.ifnames=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
生成新的grub
grub2-mkconfig -o /boot/grub2/grub.cfg
重启生效
reboot
3. kdump自动启动
将kdump设置为自动启动
systemctl enable --now kdump.service
4. 手动测试kdump是否产生
生成环境不要去执行,命令执行后服务器会被重启
echo 1 > /proc/sys/kernel/sysrq ; echo c > /proc/sysrq-trigger
重启后可以看到crash日志被创建
root@centos7:~# ls -l /var/crash/
total 0
drwxr-xr-x 2 root root 44 Oct 14 10:21 127.0.0.1-2024-10-14-10:21:00
root@centos7:~#
5. 确认crash报错内容
crash /usr/lib/debug/usr/lib/modules/3.10.0-1160.el7.x86_64.debug/vmlinux /var/crash/127.0.0.1-2024-10-14-10\:21\:00/vmcore
可以看到这里crash日志中有page excluded,和我们之前的对/proc/sysrq-trigger写入的操作也匹配上了.
至此Centos7 开启Crash dump完成