kdump快速起步
Linux内核Kdump 默认在Red Hat Enterprise Linux已经安装和激活,提供内核崩溃转储机制的服务。当Linux内核崩溃时, kdump
使用 kexec 系统调用在不重启情况下引导到第二内核( 捕获内核
即 capture kernel
),然后捕获崩溃内核的内存(奔溃转储 crash dump
或 vmcore
),然后将期保存。注意,所谓 第二内核
位于系统内存保留的一部分。
快速安装和配置
安装
kexec-tools
sudo dnf install kexec-tools
配置
/etc/kdump.conf
path /var/crash core_collector makedumpfile -l --message-level 1 -d 31
激活
kdump
sudo systemctl enable --now kdump
配置
/etc/default/grub
,在GRUB_CMDLINE_LINUX
行添加crashkernel=auto
类似如下:GRUB_CMDLINE_LINUX="crashkernel=auto ..."
生成grub2配置:
grub2-mkconfig -o /boot/grub2/grub.cfg
备注
如果需要排查的服务器极不稳定,需要在系统hung时立即crash掉系统成成kernel core dump,则可以采用NMI watchdog: 在内核参数上再加上 nmi_watchdog=1
手工触发kernel core dump
方法一: SysRq
登陆服务器执行以下命令触发:
echo 1 | sudo tee /proc/sys/kernel/sysrq echo c | sudo tee /proc/sysrq-trigger
方法二: unknown NMI panic
登陆服务器激活
unknown_nmi_panic
echo 1 | sudo tee /proc/sys/kernel/unkown_nmi_panic
远程通过 IPMI 发送
unknown_nmi_panic
信号给服务器触发kernel core dump:ipmitool -I lanplus -U <username> -P <password> -H <oobip> chassis power diag
参考
获取内核core dump 我在很久以前的一些kernel kdump经验