En este artículo, aprenderemos cómo instalar y configurar Kernel Crash Dump en Centos 8.
Kdump es un servicio que proporciona un mecanismo de volcado por caída. El servicio le permite guardar el contenido de la memoria del sistema para su posterior análisis. kdump utiliza la llamada al sistema kexec para arrancar en el segundo kernel (un capture kernel ) sin reiniciar; y luego captura el contenido de la memoria del kernel bloqueado (un volcado de bloqueo o un vmcore ) y lo guarda. El segundo núcleo reside en una parte reservada de la memoria del sistema.
Volcado por caída del kernel en Centos 8
Primero, verifique si kdump está instalado en su sistema usando el siguiente comando:
rpm -q kexec-tools
El resultado anterior muestra que kump ya está instalado, pero en las versiones heredadas kump no está instalado de forma predeterminada. Use el siguiente comando para instalar kdump:
yum install kexec-tools
En mi caso kdump viene instalado por defecto en CentOS/RHEL 8.
La memoria para kdump se reserva durante el arranque del sistema y el tamaño de la memoria se configura en el archivo de configuración Grand Unified Bootloader (GRUB) 2 del sistema. El tamaño de la memoria depende del crashkernel=valor especificado en el archivo de configuración y del tamaño de la memoria física del sistema.
Estimación del tamaño de kdump:
Al planificar y crear su entorno kdump, debe saber cuánto espacio requiere el archivo de volcado. El siguiente comando estima cuánto espacio requiere el archivo de volcado. Genera un informe de uso de memoria, que lo ayuda a determinar el nivel de volcado y qué páginas se pueden excluir.
makedumpfile --mem-usage /proc/kcore
Configuración del uso de memoria de kdump:
La opción crashkernel se utiliza para definir la memoria reservada. Puede especificar el valor o configurar la opción automática. La opción de arranque crashkernel=auto, reserva memoria automáticamente, dependiendo de la cantidad total de memoria física del sistema. Cuando se configura como automático, el kernel reservará automáticamente una cantidad adecuada de requerido. Esto ayuda a evitar que se produzcan errores de falta de memoria (OOM).
Ejecute el siguiente comando para editar el valor de crashkernel:
nano /etc/default/grub
Guarde y salga del archivo.
Use el siguiente comando para actualizar el archivo GRUB.
grub2-mkconfig -o /boot/grub2/grub.cfg
Configuración del objetivo de kdump:
Cuando se captura un bloqueo del kernel, el volcado del núcleo puede almacenarse como un archivo en un sistema de archivos local, escribirse directamente en un dispositivo o enviarse a través de una red utilizando el protocolo NFS (Network File System) o SSH (Secure Shell). Solo se puede configurar una de estas opciones a la vez y el comportamiento predeterminado es almacenar el archivo vmcore en el directorio /var/crash del sistema de archivos local.
Para almacenar el archivo vmcore en el directorio /var/crash del sistema de archivos local, ejecute el siguiente comando:
nano /etc/kdump.conf
Configuración del colector central:
Para reducir el tamaño del archivo de volcado de vmcore, kdump le permite especificar una aplicación externa (un recopilador central) para comprimir los datos. Edite el archivo /etc/kdump.conf y agregue la propiedad “core_collector makedumpfile -l –message-level 1 -d 31” como se muestra a continuación:
nano /etc/kdump.conf
Configurar las respuestas de error predeterminadas de kdump:
De manera predeterminada, cuando kdump no puede crear un archivo vmcore en la ubicación de destino configurada, el sistema se reinicia y el volcado se pierde en el proceso. Para cambiar este comportamiento, elimine el signo # del principio de la línea fail_action y reemplácelo con “failure_action poweroff ” en el archivo de configuración /etc/kdump.conf.
nano /etc/kdump.conf
Habilitar y deshabilitar el servicio kdump:
Ahora kdump está instalado y configurado, habilite e inicie el servicio kdump usando el siguiente comando:
systemctl enable kdump.service
systemctl start kdump.service
systemctl status kdump.service
Probando el servicio kdump:
Ejecute el siguiente comando para comprobar si se está ejecutando kdump:
systemctl is-active kdump
NOTA:Los siguientes pasos son solo para fines de prueba, no lo intente en producción/Sistemas en vivo:
Ahora fuerce el kernel de Linux para que se cuelgue usando los siguientes comandos:
echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger
Su kernel se bloqueará y su máquina se reiniciará con otro kernel. Kdump ya está instalado y configurado.