搜索

13.3. 配置 kdump 目标

download PDF

崩溃转储通常以一个文件形式存储在本地文件系统中,直接写入设备。或者,您可以为崩溃转储进行设置,以通过使用 NFSSSH 协议的网络进行发送。一次只能设置其中一个选项来保留崩溃转储文件。默认行为是将其存储在本地文件系统的 /var/crash/ 目录中。

先决条件

流程

  • 要将崩溃转储文件保存在本地文件系统的 /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 的功能,以执行包括调整文件权限等操作。

例 13.1. 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 配置文件:

    1. #path /var/crash 行的开头删除哈希符号(#)。
    2. 使用预期的目录路径替换该值。例如:

      path /usr/local/cores
      重要

      在 Red Hat Enterprise Linux 9 中,当 kdump systemd 服务启动时,使用 path 指令定义为 kdump 目标的目录必须存在,以避免失败。这个行为与 RHEL 之前的版本不同,其中如果服务启动时该目录不存在,则会自动创建它。

  • 要将文件写入不同的分区,请编辑 /etc/kdump.conf 配置文件:

    1. 根据您的选择,从 #ext4 行的开头删除哈希符号(#)。

      • 设备名称( #ext4 /dev/vg/lv_kdump 行)
      • 文件系统标签( #ext4 LABEL=/boot 行)
      • UUID( #ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937 行)
    2. 将文件系统类型和设备名称、标签或 UUID 更改为所需的值。指定 UUID 值的正确语法是 UUID="correct-uuid"UUID=correct-uuid。例如:

      ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937
      重要

      建议您使用 LABEL=UUID= 指定存储设备。无法保证 /dev/sda3 等磁盘设备名称在重启后保持一致。

      当您在 IBM Z 硬件上使用直接访问存储设备(DASD)时,请确保在使用 kdump 前,转储设备在 /etc/dasd.conf 中被正确指定。

  • 要将崩溃转储直接写入设备,请编辑 /etc/kdump.conf 配置文件:

    1. #raw /dev/vg/lv_kdump 行的开头删除哈希符号(#)。
    2. 使用预期的设备名称替换该值。例如:

      raw /dev/sdb1
  • 要使用 NFS 协议将崩溃转储保存到远程机器上:

    1. #nfs my.server.com:/export/tmp 行的开头删除哈希符号(#)。
    2. 使用有效的主机名和目录路径替换该值。例如:

      nfs penguin.example.com:/export/cores
    3. 重启 kdump 服务以使更改生效:

      sudo systemctl restart kdump.service
      注意

      当使用 NFS 指令指定 NFS 目标时,kdump.service 会自动尝试挂载 NFS 目标来检查磁盘空间。不需要事先挂载 NFS 目标。要防止 kdump.service 挂载目标,请在 kdump.conf 中使用 dracut_args --mount 指令,以便 kdump.service 使用指定 NFS 目标的 --mount 参数来调用 dracut 工具。

  • 要使用 SSH 协议将崩溃转储保存到远程机器上:

    1. #ssh user@my.server.com 行的开头删除哈希符号(#)。
    2. 使用有效的用户名和密码替换该值。
    3. 在配置中包含您的 SSH 密钥。

      1. #sshkey /root/.ssh/kdump_id_rsa 行的开头删除哈希符号。
      2. 将该值改为您要转储的服务器中有效密钥的位置。例如:

        ssh john@penguin.example.com
        sshkey /root/.ssh/mykey
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.