CentOS / RHEL 7: Как настроить kdump

by itisgood

kdump – это продвинутый механизм сброса аварий.

Когда включен, система загружается из контекста другого ядра.

Это второе ядро резервирует небольшой объем памяти, и его единственной целью является захват изображения дампа ядра в случае сбоя системы.

Поскольку возможность анализа дампа ядра помогает значительно определить точную причину сбоя системы, настоятельно рекомендуется включить эту функцию.

1. Установите пакет kexec-tools, если он еще не установлен.

Чтобы использовать службу kdump, вы должны установить пакет kexec-tools. Если он еще не установлен, установите инструменты kexec.

# yum install kexec-tools

2. Настройка использования памяти в GRUB2

Чтобы настроить объем памяти, зарезервированный для ядра kdump, отредактируйте /etc/default/grub и измените GRUB_CMDLINE_LINUX, установите параметр crashkernel = [размер] в список параметров ядра.

Выполните команду ниже, чтобы восстановить конфигурацию grub:

# grub2-mkconfig -o /boot/grub2/grub.cfg

Перезагрузите систему, чтобы вступили в силу параметры ядра.

# shutdown -r now

3. Конфигурирование местоположения дампа

Чтобы настроить kdump, нам нужно отредактировать файл конфигурации /etc/kdump.conf.

Опцией по умолчанию является сохранение файла vmcore в каталоге / var / crash / локальной файловой системы.

Чтобы изменить локальный каталог, в котором необходимо сохранить дамп ядра, и замените значение на нужный путь к каталогу.
Например:

path /usr/local/cores

При желании вы также можете сохранить дамп ядра непосредственно в необработанном разделе.
Например:

raw /dev/sdb4

Чтобы сохранить дамп на удаленном компьютере с использованием протокола NFS, удалите хэш-знак («#») с начала строки #nfs my.server.com:/export/tmp и замените значение допустимым именем хоста и путь к каталогу.
Например:

nfs my.server.com:/export/tmp

4. Настройка Core Collector

Чтобы уменьшить размер файла дампа vmcore, kdump позволяет вам указать внешнее приложение для сжатия данных и, при необходимости, оставить всю несущественную информацию.

В настоящее время единственным полностью поддерживаемым сборщиком ядра является makedumpfile.

Чтобы включить основной сборщик, измените конфигурационный файл /etc/kdump.conf, удалите хеш-знак («#») с начала файла makedumpfile #core_collector -c -message-level 1 -d 31 и отредактируйте командную строку как описано ниже.

Например:

core_collector makedumpfile -c

5. Изменение действия по умолчанию

Мы также можем указать действие по умолчанию для выполнения, когда дамп ядра не может сгенерироваться в нужном месте. Если не указано действие по умолчанию, «перезагрузка» считается по умолчанию.

Например:

default halt

6. Запустите демон kdump

Проверьте и убедитесь, что в командной строке ядра включена конфигурация kdump и память зарезервирована для сбоя ядра:

# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.8.13-98.2.1.el7uek.x86_64 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/root crashkernel=128M rd.lvm.lv=rhel/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=us rhgb quiet nomodeset

Установите,чтобы служба kdump могла быть запущена при перезагрузке системы.

# systemctl enable kdump.service

Чтобы запустить службу в текущем сеансе, используйте следующую команду:

# systemctl start kdump.service

7. Тестирование kdump (ручной запуск kdump)

Чтобы проверить конфигурацию, мы можем перезагрузить систему с включенным kdump и убедиться, что служба запущена.

Например:

# systemctl is-active kdump
active
# service kdump status
Redirecting to /bin/systemctl status  kdump.service
kdump.service - Crash recovery kernel arming
Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled)
Active: active (exited) since 一 2015-08-31 05:12:57 GMT; 1min 6s ago
Process: 19104 ExecStop=/usr/bin/kdumpctl stop (code=exited, status=0/SUCCESS)
Process: 19116 ExecStart=/usr/bin/kdumpctl start (code=exited, status=0/SUCCESS)
Main PID: 19116 (code=exited, status=0/SUCCESS)
Aug 31 05:12:57 ol7 kdumpctl[19116]: kexec: loaded kdump kernel
Aug 31 05:12:57 ol7 kdumpctl[19116]: Starting kdump: [OK]
Aug 31 05:12:57 ol7 systemd[1]: Started Crash recovery kernel arming.

Затем введите в командной строке следующие команды:

# echo 1 > /proc/sys/kernel/sysrq
# echo c > /proc/sysrq-trigger

Для записи при сбое ядра в выбранное местоположение то есть в / var / crash /

You may also like

Leave a Comment