Une image de la mémoire système capturée après un plantage ou un blocage du noyau est appelée un vidage sur incident. L'analyse d'un vidage sur incident peut donner des indices précieux pour les analyses post-mortem des problèmes du noyau. Cependant, l'obtention d'un vidage après un crash du noyau n'est pas fiable par nature car le pilote de stockage responsable de la journalisation des données sur le périphérique de vidage peut être dans un état indéfini.
Les paramètres de configuration de kdump sont enregistrés dans le fichier de configuration /etc/kdump.conf. Vous trouverez ci-dessous un exemple de fichier /etc/kdump.conf d'une machine CentOS/RHEL 8.
# cat /etc/kdump.conf# Ce fichier contient une série de commandes à exécuter (dans l'ordre) dans le noyau kdump
# après qu'un crash du noyau dans le noyau du crash (1er noyau) s'est produit.
#
# Les directives de ce fichier ne s'appliquent qu'à l'initramfs kdump et n'ont
# aucun effet une fois que le système de fichiers racine est monté et que les scripts d'initialisation normaux sont
# traités.
#
# Actuellement, une seule cible de vidage et un seul chemin peuvent être spécifiés. Si le vidage vers
# la cible configurée échoue, l'action d'échec qui peut être configurée via
# la directive "failure_action" sera effectuée.
#
# Options prises en charge :
#
# raw
# – Dj /proc/vmcore dans
# Utilisez des noms de périphériques persistants pour les périphériques de partition,
# tels que /dev/vg/
#
# nfs
# – Montera nfs sur
#
#
# ssh
# – Enregistrera /proc/vmcore sur
# prend en charge DNS.
# REMARQUE :assurez-vous que l'utilisateur dispose des autorisations d'écriture sur le serveur.
#
# sshkey
# – Utilisera la clé ssh pour effectuer un vidage ssh.
# Spécifiez le chemin de la clé ssh à utiliser lors du vidage
# via ssh. La valeur par défaut est /root/.ssh/kdump_id_rsa.
#
#
# – Montera -t
# /proc/vmcore vers
# REMARQUE :
# C'est recommandé d'utiliser des noms de périphériques persistants
# tels que /dev/vg/
# Sinon, il est suggéré d'utiliser label ou uuid.
#
# path
# – « chemin » représente le chemin du système de fichiers dans lequel vmcore
# sera enregistré. Si une cible de vidage est spécifiée dans
# kdump.conf, alors "path" est relatif à la
# cible de vidage spécifiée.
#
# L'interprétation de "path" change un bit si l'utilisateur n'a
# spécifié aucune cible de vidage explicitement dans kdump.conf. Dans ce cas
#, "chemin" représente le chemin absolu à partir de la racine. La cible de vidage
# et le chemin ajusté sont obtenus automatiquement
# en fonction de ce qui est monté dans le système actuel.
#
# Ignoré pour les vidages de périphérique bruts. S'il n'est pas défini, utilisera la valeur par défaut
# "/var/crash".
#
# core_collector
# – Cela vous permet de spécifier la commande à copier
# le vmcore. La valeur par défaut est makedumpfile, qui sur
# certaines architectures peuvent réduire considérablement la taille de vmcore.
# Voir /sbin/makedumpfile –help pour une liste d'options.
# Notez que les -i et - g ne sont pas nécessaires ici,
# car l'initrd sera automatiquement rempli avec un
# fichier de configuration approprié pour le noyau en cours d'exécution.
# Le core_collector par défaut pour le vidage raw/ssh est :
# "makedumpfile -F -l –message-level 7 -d 31".
# Le core_collector par défaut pour les autres cibles est :
# "makedumpfile -l –message-level 7 -d 31 ”.
#
# "makedumpfile -F" créera un vmcore aplati.
# Vous devez utiliser "makedumpfile -R" pour réorganiser les données de vidage en
# un fichier normal fichier de vidage lisible avec des outils d'analyse. Par exemple :
# "makedumpfile -R vmcore
# Pour plus de détails sur le format core_collector, vous pouvez vous référer à
# kexec-kdump-howto.txt ou page de manuel kdump.conf.
#
# kdump_post
# – Cette directive vous permet d'exécuter un binaire exécutable
# ou un script après la fin du processus de vidage vmcore.
# L'état de sortie du processus de vidage actuel est fourni à
# le binaire exécutable ou le script comme premier argument.
# Tous les fichiers sous /etc/kdump/post.d sont triés collectivement
# et exécutés dans l'ordre lexical, avant le binaire ou le script
# le paramètre kdump_post spécifié est exécuté.
#
# kdump_pre
# – Fonctionne comme la directive "kdump_post", mais au lieu de s'exécuter
# après le processus de vidage, s'exécute immédiatement avant.
# L'état de sortie de ce binaire est interprété comme suit :
# 0 - continuez le processus de vidage comme d'habitude
# non 0 - exécutez l'action finale (reboot/poweroff/halt)
# Tous les fichiers sous /etc/kdump/pre.d sont collectivement trié et
# exécuté dans l'ordre lexical, après le binaire ou le script spécifié
# le paramètre kdump_pre est exécuté.
# Même si le binaire ou le script dans le répertoire /etc/kdump/pre.d
/># renvoie un état de sortie non 0, le traitement se poursuit.
#
# extra_bins
# – Cette directive vous permet de spécifier des binaires supplémentaires ou
# des scripts shell à inclure dans l'initrd kdump.
# Généralement, ils sont utiles en conjonction avec un kdump_post
# ou kdump_pre binaire ou script qui dépend de ces extra_bins.
#
# extra_modules
# – Cette directive vous permet de spécifier des modules de noyau supplémentaires
# que vous souhaitez charger dans l'initrd kdump.
# Plusieurs modules peuvent être listés, séparés par des espaces, et tous
# les modules dépendants seront automatiquement inclus.
#
# action_échec
# – Action à effectuer en cas d'échec du vidage.
# reboot :redémarre le système.
# halt :arrête le système.
# poweroff :éteint le système.
# shell :passez à un shell bash.
# Quitter le shell redémarre le système par défaut,
# ou effectuez une "action_finale".
# dump_to_rootfs :videz vmcore vers rootfs à partir de contexte initramfs et
# redémarrez par défaut ou exécutez "final_action".
# Utile lorsque la cible de vidage non root est spécifiée.
# L'option par défaut est "reboot".
#
# par défaut
# – Identique à la directive "failure_action" ci-dessus, mais cette directive
# est obsolète et sera supprimée à l'avenir.
#
# final_action
# – Action à effectuer en cas de réussite du vidage. Également effectué
# lorsque l'action d'échec « shell » ou « dump_to_rootfs » se termine.
# Chaque action est identique à la directive « failure_action » ci-dessus.
# La valeur par défaut est « reboot ».
# force_rebuild <0 | 1>
# – Par défaut, kdump initrd ne sera reconstruit que si nécessaire.
# Spécifiez 1 pour forcer la reconstruction de kdump initrd à chaque démarrage de kdump
# service.
#
# force_no_rebuild <0 | 1>
# – Par défaut, kdump initrd sera reconstruit si nécessaire.
# Spécifiez 1 pour ignorer la reconstruction de kdump initrd.
#
# Les options force_no_rebuild et force_rebuild sont mutuellement
# exclusif et ils ne doivent pas être mis à 1 simultanément.
#
# override_resettable <0 | 1>
# : généralement, un périphérique de bloc non réinitialisable ne peut pas être une cible de vidage.
# Spécifier 1 lorsque vous souhaitez effectuer un vidage même si le bloc
# cible est non réinitialisable
# Par défaut, c'est 0, ce qui n'essaiera pas de vidage voué à l'échec.
#
# dracut_args
# – Passe des options dracut supplémentaires lors de la reconstruction de kdump initrd.
/>#
# fence_kdump_args
# – Arguments de ligne de commande pour fence_kdump_send (il peut contenir
# tous les arguments valides sauf les hôtes auxquels envoyer la notification).
#
# fence_kdump_nodes
# – Liste des nœuds de cluster sauf localhost, séparés par des espaces,
# auxquels envoyer les notifications fence_kdump.
# ( cette option est obligatoire pour activer fence_kdump).
#
#raw /dev/vg/lv_kdump
#ext4 /dev/vg/lv_kdump
#ext4 LABEL=/boot
#ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937
#nfs my.server.com:/export/tmp
#nfs [2001:db8::1:2:3:4]:/export/tmp
#ssh [email protected]. com
#ssh user@2001:db8::1:2:3:4
#sshkey /root/.ssh/kdump_id_rsa
path /var/crash
core_collector makedumpfile - l –message-level 7 -d 31
#core_collector scp
#kdump_post /var/crash/scripts/kdump-post.sh
#kdump_pre /var/crash/scripts/kdump-pre .sh
#extra_bins /usr/bin/lftp
#extra_modules gfs2
#failure_action shell
#force_rebuild 1
#force_no_rebuild 1
#dracut_args –omit -drivers "cfg80211 snd" –add-drivers "ext2 ext3"
#fence_kdump_args -p 7410 -f auto -c 0 -i 10
#fence_kdump_nodes node1 node2