kdump ist ein fortschrittlicher Absturz-Dump-Mechanismus. Wenn aktiviert, wird das System aus dem Kontext eines anderen Kernels gebootet. Dieser zweite Kernel reserviert eine kleine Menge an Speicher, und sein einziger Zweck besteht darin, das Core-Dump-Image zu erfassen, falls das System abstürzt. Da die Analyse des Core-Dumps wesentlich dazu beiträgt, die genaue Ursache des Systemausfalls zu ermitteln, wird dringend empfohlen, diese Funktion zu aktivieren.
1. Installieren Sie das kexec-tools-Paket, falls es noch nicht installiert ist
Um den kdump-Dienst nutzen zu können, muss das Paket kexec-tools installiert sein. Falls noch nicht geschehen, installieren Sie die kexec-tools .
# yum install kexec-tools
2. Konfigurieren der Speichernutzung in GRUB2
Um die Speichermenge zu konfigurieren, die für den kdump-Kernel reserviert ist, ändern Sie /etc/default/grub und GRUB_CMDLINE_LINUX , setzen Sie den Parameter crashkernel=[size] auf die Liste der Kernel-Optionen.
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=128M vconsole.keymap=us rhgb quiet" GRUB_DISABLE_RECOVERY="true"
Führen Sie den folgenden Befehl aus, um die Grub-Konfiguration neu zu generieren:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Starten Sie das System neu, damit die Kernel-Parameter wirksam werden.
# shutdown -r now
3. Dump-Speicherort konfigurieren
Um kdump zu konfigurieren, müssen wir die Konfigurationsdatei /etc/kdump.conf bearbeiten . Die Standardoption zum Speichern der vmcore-Datei ist /var/crash/ Verzeichnis des lokalen Dateisystems. Ändern Sie das lokale Verzeichnis, in dem der Core-Dump gespeichert werden soll, und ersetzen Sie den Wert durch den gewünschten Verzeichnispfad.
Zum Beispiel:
path /usr/local/cores
Optional können Sie den Core-Dump auch direkt auf einer Raw-Partition speichern.
Zum Beispiel:
raw /dev/sdb4
Um den Dump mithilfe des NFS-Protokolls auf einem Remote-Computer zu speichern, entfernen Sie das Hash-Zeichen („#“) vom Anfang der Zeile #nfs my.server.com:/export/tmp und ersetzen Sie den Wert durch einen gültigen Hostnamen und Verzeichnispfad.
Zum Beispiel:
nfs my.server.com:/export/tmp
4. Core Collector konfigurieren
Um die Größe der vmcore-Dump-Datei zu reduzieren, ermöglicht Ihnen kdump, eine externe Anwendung zum Komprimieren der Daten anzugeben und optional alle irrelevanten Informationen wegzulassen. Derzeit ist makedumpfile der einzige vollständig unterstützte Kernsammler.
Um den Kernsammler zu aktivieren, ändern Sie die Konfigurationsdatei /etc/kdump.conf, entfernen Sie das Hash-Zeichen („#“) am Anfang von #core_collector makedumpfile -c –message-level 1 -d 31 line, und bearbeiten Sie die Befehlszeilenoptionen wie unten beschrieben.
Zum Beispiel:
core_collector makedumpfile -c
5. Ändern der Standardaktion
Wir können auch die Standardaktion angeben, die ausgeführt werden soll, wenn der Core-Dump am gewünschten Ort nicht generiert werden kann. Wenn keine Standardaktion angegeben ist, wird „Neustart“ als Standard angenommen.
Zum Beispiel:
default halt
6. kdump-Daemon starten
Überprüfen und vergewissern Sie sich, dass die Kernel-Befehlszeile die kdump-Konfiguration enthält und Speicher für den Crash-Kernel reserviert wurde:
# 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
Der kdump-Dienst kann beim Neustart des Systems gestartet werden.
# systemctl enable kdump.service
Verwenden Sie den folgenden Befehl, um den Dienst in der aktuellen Sitzung zu starten:
# systemctl start kdump.service
7. Testen von kdump (kdump manuell auslösen)
Um die Konfiguration zu testen, können wir das System mit aktiviertem kdump neu starten und sicherstellen, dass der Dienst läuft.
Zum Beispiel:
# 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.
Geben Sie dann an einem Shell-Prompt die folgenden Befehle ein:
# echo 1 > /proc/sys/kernel/sysrq # echo c > /proc/sysrq-trigger
Dies zwingt den Linux-Kernel zum Absturz, und die Datei address-YYYY-MM-DD-HH:MM:SS/vmcore wird an den Speicherort kopiert, den Sie in der Konfiguration ausgewählt haben (d. h. nach /var/crash/ by Standard)
CentOS / RHEL 6 :So konfigurieren Sie kdumpCentOS / RHEL 5 :So konfigurieren Sie kdump
So konfigurieren Sie Kdump auf SuSE Linux Enterprise System 10 und 11