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 /