Dans cet article, nous allons apprendre à installer et configurer Kernel Crash Dump sur Centos 8.
Kdump est un service fournissant un mécanisme de vidage sur incident. Le service vous permet de sauvegarder le contenu de la mémoire du système pour une analyse ultérieure. kdump utilise l'appel système kexec pour démarrer dans le deuxième noyau (un noyau de capture ) sans redémarrer ; puis capture le contenu de la mémoire du noyau en panne (un vidage sur incident ou un vmcore ) et l'enregistre. Le deuxième noyau réside dans une partie réservée de la mémoire système.
Crash dump du noyau sur Centos 8
Tout d'abord, vérifiez si kdump est installé sur votre système à l'aide de la commande suivante :
rpm -q kexec-tools
La sortie ci-dessus montre que kdump est déjà installé mais que dans les anciennes versions, kump n'est pas installé par défaut. Utilisez la commande suivante pour installer kdump :
yum install kexec-tools
Dans mon cas, kdump est installé par défaut dans CentOS / RHEL 8.
La mémoire pour kdump est réservée lors du démarrage du système et la taille de la mémoire est configurée dans le fichier de configuration Grand Unified Bootloader (GRUB) 2 du système. La taille de la mémoire dépend de la valeur crashkernel=spécifiée dans le fichier de configuration et de la taille de la mémoire physique du système.
Estimation de la taille de kdump :
Lors de la planification et de la construction de votre environnement kdump, vous devez connaître l'espace requis par le fichier de vidage. La commande suivante estime l'espace requis par le fichier de vidage. Il génère un rapport d'utilisation de la mémoire, qui vous aide à déterminer le niveau de vidage et les pages pouvant être exclues.
makedumpfile --mem-usage /proc/kcore
Configuration de l'utilisation de la mémoire kdump :
L'option crashkernel est utilisée pour définir la mémoire réservée. Vous pouvez spécifier la valeur ou configurer l'option auto. L'option crashkernel=auto boot réserve la mémoire automatiquement, en fonction de la quantité totale de mémoire physique du système. Lorsqu'il est configuré en tant qu'auto, le noyau réservera automatiquement une quantité appropriée de requis. Cela permet d'éviter les occurrences d'erreur de mémoire insuffisante (OOM).
Exécutez la commande suivante pour modifier la valeur du crashkernel :
nano /etc/default/grub
Enregistrez et quittez le fichier.
Utilisez la commande suivante pour mettre à jour le fichier GRUB.
grub2-mkconfig -o /boot/grub2/grub.cfg
Configuration de la cible kdump :
Lorsqu'un plantage du noyau est capturé, le vidage de mémoire peut être stocké sous forme de fichier dans un système de fichiers local, écrit directement sur un périphérique ou envoyé sur un réseau à l'aide du protocole NFS (Network File System) ou SSH (Secure Shell). Une seule de ces options peut être définie à la fois, et le comportement par défaut consiste à stocker le fichier vmcore dans le répertoire /var/crash du système de fichiers local.
Pour stocker le fichier vmcore dans le répertoire /var/crash du système de fichiers local, exécutez la commande suivante :
nano /etc/kdump.conf
Configuration du collecteur principal :
Pour réduire la taille du fichier de vidage vmcore, kdump vous permet de spécifier une application externe (un collecteur de base) pour compresser les données. Modifiez le fichier /etc/kdump.conf et ajoutez la propriété "core_collector makedumpfile -l –message-level 1 -d 31" comme indiqué ci-dessous :
nano /etc/kdump.conf
Configuration des réponses d'échec par défaut de kdump :
Par défaut, lorsque kdump ne parvient pas à créer un fichier vmcore à l'emplacement cible configuré, le système redémarre et le vidage est perdu au cours du processus. Pour modifier ce comportement, supprimez le signe # au début de la ligne failure_action et remplacez-le par "failure_action poweroff ” dans le fichier de configuration /etc/kdump.conf.
nano /etc/kdump.conf
Activation et désactivation du service kdump :
Maintenant que kdump est installé et configuré, activez et démarrez le service kdump à l'aide de la commande suivante :
systemctl enable kdump.service
systemctl start kdump.service
systemctl status kdump.service
Test du service kdump :
Exécutez la commande suivante pour vérifier si kdump est en cours d'exécution :
systemctl is-active kdump
REMARQUE :Les étapes suivantes sont uniquement à des fins de test, ne l'essayez pas sur les systèmes de production/live :
Maintenant, forcez le noyau Linux à planter en utilisant les commandes suivantes :
echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger
Votre noyau sera planté et votre machine sera redémarrée avec un autre noyau. Kdump est maintenant installé et configuré.