19.3. 配置 kdump 目标
崩溃转储通常作为本地文件系统中的文件存储,直接写入设备。另外,您还可以为崩溃转储设置,以便使用 NFS
或 SSH
协议通过网络发送。一次只能设置这些选项之一来保留崩溃转储文件。默认行为是将其保存在本地文件系统的 /var/crash/
目录中。
先决条件
-
根
权限。 -
满足
kdump
配置和目标的要求。详情请查看支持的 kdump 配置和目标。
流程
要在本地文件系统的
/var/crash/
目录中存储崩溃转储文件,请编辑/etc/kdump.conf
文件并指定路径:path /var/crash
选项
路径 /var/crash
代表到kdump
保存崩溃转储文件的文件系统的路径。当您在/etc/kdump.conf
文件中指定转储目标时,路径
相对于指定的转储目标。如果您没有在
/etc/kdump.conf
文件中指定转储目标,则该路径
代表根目录的绝对路径。根据当前系统中挂载的内容,会自动执行转储目标和调整的转储路径。
kdump
将崩溃转储文件保存在 /var/crash/var/crash
目录中,当转储目标挂载到 /var/crash
时,选项 路径
也设置为 /etc/kdump.conf
文件中的 /var/crash
。例如,在以下实例中,ext4
文件系统已挂载到 /var/crash
,其 path
被设置为 /var/crash
:
grep -v ^# etc/kdump.conf | grep -v ^$ ext4 /dev/mapper/vg00-varcrashvol path /var/crash core_collector makedumpfile -c --message-level 1 -d 31
这会导致 /var/crash/var/crash
路径。要解决这个问题,请使用选项 path /
而不是 path /var/crash
要改变保存崩溃转储的本地目录,以
root
用户身份编辑/etc/kdump.conf
配置文件,如下所述。-
从
#path /var/crash
行的开头删除 hash 符号("#")。 使用预期的目录路径替换该值。例如:
path /usr/local/cores
重要在 RHEL 8 中,当
kdump
systemd 服务启动 - 否则服务失败,使用path
指令定义的目录必须存在。这个行为与早期版本的 RHEL 不同,如果启动该服务时不存在该目录,则会自动创建该目录。
-
从
要将文件写入不同的分区,以
root
用户身份编辑/etc/kdump.conf
配置文件,如下所述。根据您的选择,从
#ext4
行的开头删除 hash 符号("#")。-
设备名称(
#ext4 /dev/vg/lv_kdump
行) -
文件系统标签(
#ext4 LABEL=/boot
行) -
UUID(
#ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937
行)
-
设备名称(
将文件系统类型以及设备名称、标签或者 UUID 更改为所需值。例如:
ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937
重要建议您使用
LABEL=
或UUID=
指定存储设备。无法保证/dev/sda3
等磁盘设备名称在重启后保持一致。
要将崩溃转储直接写入设备,请编辑
/etc/kdump.conf
配置文件:-
删除
#raw /dev/vg/lv_kdump
行开头的哈希符号 ("#")。 使用预期的设备名称替换该值。例如:
raw /dev/sdb1
-
删除
要使用
NFS
协议将崩溃转储保存到远程机器中,请编辑/etc/kdump.conf
配置文件:-
删除
#nfs my.server.com:/export/tmp
行开头的哈希符号 ("#")。 使用有效的主机名和目录路径替换该值。例如:
nfs penguin.example.com:/export/cores
-
删除
要使用
SSH
协议将崩溃转储保存到远程机器中,请编辑/etc/kdump.conf
配置文件:-
从
#ssh user@my.server.com
行的开头删除 hash 符号("#")。 - 使用有效的用户名和密码替换该值。
在配置中包含
SSH
密钥。-
从
#sshkey /root/.ssh/kdump_id_rsa
行的开头删除哈希符号。 将该值改为您要转储的服务器中有效密钥的位置。例如:
ssh john@penguin.example.com sshkey /root/.ssh/mykey
-
从
-
从