14.3. 配置 kdump 目标
崩溃转储通常以一个文件形式存储在本地文件系统中,直接写入设备。另外,您可以使用 NFS
或 SSH
协议通过网络发送崩溃转储。一次只能设置其中一个选项来保留崩溃转储文件。默认行为是将其存储在本地文件系统的 /var/crash/
目录中。
先决条件
- 您在系统上具有 root 权限。
-
满足
kdump
配置和目标的要求。详情请查看支持的 kdump 配置和目标。
流程
要将崩溃转储文件保存在本地文件系统的
/var/crash/
目录中,请编辑/etc/kdump.conf
文件并指定路径:path /var/crash
选项
path /var/crash
代表kdump
在其中保存崩溃转储文件的文件系统的路径。注意-
当您在
/etc/kdump.conf
文件中指定转储目标时,路径是 相对 于指定的转储目标。 -
当您没有在
/etc/kdump.conf
文件中指定转储目标时,该路径表示根目录的 绝对 路径。
根据当前系统中挂载的文件系统,会自动配置转储目标和调整的转储路径。
-
当您在
要保护
kdump
生成的崩溃转储文件以及附带文件,您应该为目标目的地目录设置正确的属性,如用户权限和 SELinux 上下文。另外,您可以定义一个脚本,如kdump.conf
文件中的kdump_post.sh
,如下所示:kdump_post <path_to_kdump_post.sh>
kdump_post
指令指定 shell 脚本或在kdump
完成捕获并将崩溃转储保存到指定的目的地 后 执行的命令。您可以使用此机制扩展kdump
的功能,以执行包括文件权限中的调整的操作。-
kdump
目标配置
# *grep -v ^# /etc/kdump.conf | grep -v ^$* ext4 /dev/mapper/vg00-varcrashvol path /var/crash core_collector makedumpfile -c --message-level 1 -d 31
指定转储目标(ext4 /dev/mapper/vg00-varcrashvol
),因此它被挂载到 /var/crash
。path
选项也设置为 /var/crash
。因此,kdump
将 vmcore
文件保存在 /var/crash/var/crash
目录中。
要更改保存崩溃转储的本地目录,以
root
用户身份编辑/etc/kdump.conf
配置文件:-
从
#path /var/crash
行的开头删除哈希符号(#
)。 使用预期的目录路径替换该值。例如:
path /usr/local/cores
重要在 Red Hat Enterprise Linux 9 中,当
kdump
systemd
服务启动时,使用path
指令定义为kdump
目标的目录必须存在,以避免失败。与早期版本的 RHEL 不同,如果服务启动时不存在目录,则该目录将不再自动创建。
-
从
要将文件写入不同的分区,请编辑
/etc/kdump.conf
配置文件:根据您的选择,从
#ext4
行的开头删除哈希符号(#
)。-
设备名称(
#ext4 /dev/vg/lv_kdump
行) -
文件系统标签(
#ext4 LABEL=/boot
行) -
UUID(
#ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937
行)
-
设备名称(
将文件系统类型和设备名称、标签或 UUID 更改为所需的值。指定 UUID 值的正确语法是
UUID="correct-uuid"
和UUID=correct-uuid
。例如:ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937
重要建议您使用
LABEL=
或UUID=
指定存储设备。无法保证/dev/sda3
等磁盘设备名称在重启后保持一致。当您在 IBM Z 硬件中使用 Direct Access Storage Device (DASD)时,请确保在
/etc/dasd.conf
中正确指定转储设备,然后再使用kdump
。
要将崩溃转储直接写入设备,请编辑
/etc/kdump.conf
配置文件:-
从
#raw /dev/vg/lv_kdump
行的开头删除哈希符号(#
)。 使用预期的设备名称替换该值。例如:
raw /dev/sdb1
-
从
使用
NFS
协议将崩溃转储保存到远程机器中:-
从
#nfs my.server.com:/export/tmp
行的开头删除哈希符号(#
)。 使用有效的主机名和目录路径替换该值。例如:
nfs penguin.example.com:/export/cores
重启
kdump
服务以使更改生效:sudo systemctl restart kdump.service
注意当使用 NFS 指令指定 NFS 目标时,
kdump.service
会自动尝试挂载 NFS 目标来检查磁盘空间。不需要提前挂载 NFS 目标。要防止kdump.service
挂载目标,请在kdump.conf
中使用dracut_args --mount
指令。这将启用kdump.service
使用-mount
参数调用dracut
工具来指定 NFS 目标。
-
从
使用 SSH 协议将崩溃转储保存到远程机器中:
-
从
#ssh user@my.server.com
行的开头删除哈希符号(#
)。 - 使用有效的用户名和密码替换该值。
在配置中包含您的 SSH 密钥。
-
从
#sshkey /root/.ssh/kdump_id_rsa
行的开头删除哈希符号。 将该值改为您要转储的服务器中有效密钥的位置。例如:
ssh john@penguin.example.com sshkey /root/.ssh/mykey
-
从
-
从
其他资源
系统崩溃后 kdump 生成的文件。