In diesem Artikel erfahren Sie, wie Sie Kernel Crash Dump auf Centos 8 installieren und konfigurieren.
Kdump ist ein Dienst, der einen Crash-Dump-Mechanismus bereitstellt. Der Dienst ermöglicht es Ihnen, den Inhalt des Systemspeichers für eine spätere Analyse zu speichern. kdump verwendet den kexec-Systemaufruf, um in den zweiten Kernel zu booten (ein Capture-Kernel ) ohne Neustart; und erfasst dann den Inhalt des Speichers des abgestürzten Kernels (ein Absturzabbild oder ein VMcore ) und speichert es. Der zweite Kernel befindet sich in einem reservierten Teil des Systemspeichers.
Kernel Crash Dump auf Centos 8
Überprüfen Sie zunächst mit dem folgenden Befehl, ob kdump auf Ihrem System installiert ist:
rpm -q kexec-tools
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042816172241.png)
Die obige Ausgabe zeigt, dass kdump bereits installiert ist, aber in den Legacy-Versionen ist kump nicht standardmäßig installiert. Verwenden Sie den folgenden Befehl, um kdump zu installieren:
yum install kexec-tools
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042816172377.png)
In meinem Fall ist kdump standardmäßig in CentOS / RHEL 8 installiert.
Der Speicher für kdump wird während des Systemstarts reserviert und die Speichergröße wird in der Konfigurationsdatei des Grand Unified Bootloader (GRUB) 2 des Systems konfiguriert. Die Speichergröße hängt von dem crashkernel=-Wert ab, der in der Konfigurationsdatei angegeben ist, und der Größe des physischen Speichers des Systems.
Schätzung der kdump-Größe:
Beim Planen und Erstellen Ihrer kdump-Umgebung müssen Sie wissen, wie viel Speicherplatz die Dump-Datei benötigt. Der folgende Befehl schätzt, wie viel Speicherplatz die Dump-Datei benötigt. Es generiert einen Bericht zur Speichernutzung, der Ihnen hilft, die Dump-Ebene zu bestimmen und welche Seiten ausgeschlossen werden können.
makedumpfile --mem-usage /proc/kcore
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042816172366.png)
Kdump-Speichernutzung konfigurieren:
Die Crashkernel-Option wird verwendet, um reservierten Speicher zu definieren. Sie können den Wert angeben oder die automatische Option konfigurieren. Die Boot-Option crashkernel=auto reserviert Speicher automatisch, abhängig von der Gesamtmenge des physischen Speichers des Systems. Wenn es als auto konfiguriert ist, reserviert der Kernel automatisch eine angemessene Menge an erforderlichen. Dies hilft, das Auftreten von Out-of-Memory (OOM)-Fehlern zu verhindern.
Führen Sie den folgenden Befehl aus, um den Crashkernel-Wert zu bearbeiten:
nano /etc/default/grub
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042816172324.png)
Speichern und beenden Sie die Datei.
Verwenden Sie den folgenden Befehl, um die GRUB-Datei zu aktualisieren.
grub2-mkconfig -o /boot/grub2/grub.cfg
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042816172367.png)
Konfigurieren des kdump-Ziels:
Wenn ein Kernel-Absturz erfasst wird, kann der Core-Dump entweder als Datei in einem lokalen Dateisystem gespeichert, direkt auf ein Gerät geschrieben oder mithilfe des NFS- (Network File System) oder SSH-Protokolls (Secure Shell) über ein Netzwerk gesendet werden. Es kann jeweils nur eine dieser Optionen festgelegt werden, und das Standardverhalten besteht darin, die vmcore-Datei im Verzeichnis /var/crash des lokalen Dateisystems zu speichern.
Führen Sie den folgenden Befehl aus, um die vmcore-Datei im Verzeichnis /var/crash des lokalen Dateisystems zu speichern:
nano /etc/kdump.conf
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042816172326.png)
Core Collector konfigurieren:
Um die Größe der vmcore-Dump-Datei zu reduzieren, ermöglicht Ihnen kdump, eine externe Anwendung (einen Core Collector) anzugeben, um die Daten zu komprimieren. Bearbeiten Sie die Datei /etc/kdump.conf und fügen Sie die Eigenschaft „core_collector makedumpfile -l –message-level 1 -d 31“ wie unten gezeigt hinzu:
nano /etc/kdump.conf
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042816172358.png)
Konfigurieren der kdump-Standardfehlerantworten:
Wenn kdump keine vmcore-Datei am konfigurierten Zielspeicherort erstellen kann, wird das System standardmäßig neu gestartet und der Dump geht dabei verloren. Um dieses Verhalten zu ändern, entfernen Sie das Zeichen # vom Anfang der Zeile failure_action und ersetzen Sie es durch „failure_action poweroff ” in der Konfigurationsdatei /etc/kdump.conf.
nano /etc/kdump.conf
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042816172445.png)
Aktivieren und Deaktivieren des kdump-Dienstes:
Jetzt ist kdump installiert und konfiguriert, aktivieren und starten Sie den kdump-Dienst mit dem folgenden Befehl:
systemctl enable kdump.service
systemctl start kdump.service
systemctl status kdump.service
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042816172494.png)
Kdump-Dienst testen:
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob kdump ausgeführt wird:
systemctl is-active kdump
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042816172414.png)
HINWEIS:Die folgenden Schritte dienen nur zu Testzwecken, versuchen Sie es nicht auf Produktions-/Live-Systemen:
Erzwingen Sie nun den Absturz des Linux-Kernels mit den folgenden Befehlen:
echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger
Ihr Kernel wird abgestürzt und Ihr Computer wird mit einem anderen Kernel neu gestartet. Kdump ist jetzt installiert und konfiguriert.