GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So konfigurieren Sie kdump in Oracle Enterprise Linux (OEL 5,6)

Wenn der kdump-Crash-Dump-Mechanismus aktiviert ist, wird das System aus dem Kontext eines anderen Kernels gebootet. Dieser zweite Kernel reserviert eine kleine Menge an Speicher und sein einziger Zweck ist es, das Core-Dump-Image zu erfassen, falls das System abstürzt.

Die Möglichkeit, den Core-Dump zu analysieren, hilft erheblich dabei, die genaue Ursache des Systemausfalls zu ermitteln, und es wird daher dringend empfohlen, diese Funktion zu aktivieren. Dieses Kapitel erklärt, wie Sie den kdump-Dienst in Red Hat Enterprise Linux konfigurieren, testen und verwenden, und gibt einen kurzen Überblick darüber, wie Sie den resultierenden Core-Dump mit dem Crash-Debugging-Dienstprogramm analysieren.

Installieren des kdump-Dienstes

Um den kdump-Dienst auf Ihrem System zu nutzen, stellen Sie sicher, dass Sie die kexec-tools haben Paket installiert. Geben Sie dazu an einem Shell-Prompt als root Folgendes ein:

# yum install kexec-tools

Konfigurieren des kdump-Dienstes

Konfigurieren der Speichernutzung

Bearbeiten Sie die Datei /boot/grub/grub.conf, um die Speichermenge zu konfigurieren, die für den kdump-Kernel reserviert werden soll Datei und fügen Sie crashkernel=[size]M hinzu oder crashkernel=auto . Beachten Sie, dass die Option crashkernel=auto nur Speicher reserviert, wenn der physische Speicher des Systems gleich oder größer ist als:

  • 2 GB auf 32-Bit- und 64-Bit-x86-Architekturen

Eine Beispieldatei /boot/grub/grub.conf

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.32-220.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/sda3 crashkernel=128M
        initrd /initramfs-2.6.32-220.el6.x86_64.img

Konfigurieren des Zieltyps

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. Im Moment kann nur eine dieser Optionen festgelegt werden, und die Standardoption besteht darin, die vmcore-Datei im Verzeichnis /var/crash/ zu speichern Verzeichnis des lokalen Dateisystems. Um dies zu ändern, öffnen Sie als Root die Konfigurationsdatei /etc/kdump.conf in einem Texteditor und bearbeiten Sie die Optionen wie unten beschrieben.

Um das lokale Verzeichnis zu ändern, in dem der Core-Dump gespeichert werden soll, entfernen Sie das Rautenzeichen („#“) am Anfang der Zeile #path /var/crash und ersetzen den Wert durch den gewünschten Verzeichnispfad. Wenn Sie die Datei optional auf eine andere Partition schreiben möchten, befolgen Sie dasselbe Verfahren auch mit der Zeile #ext4 /dev/sda3 und ändern Sie sowohl den Dateisystemtyp als auch das Gerät (einen Gerätenamen, eine Dateisystembezeichnung, und UUID werden alle unterstützt) entsprechend. Zum Beispiel:

ext3 /dev/sda4
path /usr/local/cores

Um den Dump direkt auf ein Gerät zu schreiben, entfernen Sie das Hash-Zeichen („#“) am Anfang der Zeile #raw /dev/sda5 und ersetzen Sie den Wert durch einen gewünschten Gerätenamen. Zum Beispiel:

raw /dev/sdb1

Um den Speicherauszug mithilfe des NFS-Protokolls auf einem Remote-Computer zu speichern, entfernen Sie das Hash-Zeichen („#“) am Anfang der Zeile #net my.server.com:/export/tmp und ersetzen Sie den Wert durch einen gültigen Hostnamen und Verzeichnispfad. Zum Beispiel:

net penguin.example.com:/export/cores

Um den Dump mithilfe des SSH-Protokolls auf einem Remote-Computer zu speichern, entfernen Sie das Hash-Zeichen („#“) am Anfang der Zeile #net [email protected] und ersetzen Sie den Wert durch einen gültigen Benutzernamen und Hostnamen . Zum Beispiel:

net [email protected]

Beim Übertragen einer Core-Datei an ein Remote-Ziel über SSH muss die Core-Datei für die Übertragung serialisiert werden. Dadurch wird eine vmcore.flat-Datei im Verzeichnis /var/crash/ auf dem Zielsystem erstellt, die vom Crash-Dienstprogramm nicht gelesen werden kann. Um vmcore.flat in eine absturzlesbare Speicherauszugsdatei zu konvertieren, führen Sie den folgenden Befehl als Root auf dem Zielsystem aus:

# /usr/sbin/makedumpfile -R */tmp/vmcore-rearranged* < *vmcore.flat*

Core Collector konfigurieren

Um die Größe der vmcore-Dump-Datei zu reduzieren, können Sie mit kdump eine externe Anwendung (d. h. einen Core Collector) angeben, um die Daten zu komprimieren und optional alle irrelevanten Informationen wegzulassen. Derzeit ist makedumpfile der einzige vollständig unterstützte Kernsammler.

Um den Core Collector zu aktivieren, öffnen Sie als Root die Konfigurationsdatei /etc/kdump.conf in einem Texteditor, entfernen Sie das Hash-Zeichen („#“) am Anfang von #core_collector makedumpfile -c --message-level 1 - d 31-Zeile und bearbeiten Sie die Befehlszeilenoptionen wie unten beschrieben.

Um die Komprimierung der Speicherauszugsdatei zu aktivieren, fügen Sie den Parameter -c hinzu. Zum Beispiel:

core_collector makedumpfile -c

Verwenden Sie Folgendes, um sowohl null als auch freie Seiten zu entfernen:

core_collector makedumpfile -d 17 -c

Eine vollständige Liste der verfügbaren Optionen finden Sie auf der Manpage für makedumpfile.

Ändern der Standardaktion

Wenn kdump keinen Core-Dump erstellen kann, wird standardmäßig das Root-Dateisystem gemountet und /sbin/init ausgeführt. Um dieses Verhalten zu ändern, öffnen Sie als Root die Konfigurationsdatei /etc/kdump.conf in einem Texteditor, entfernen Sie das Hash-Zeichen („#“) am Anfang der Shell-Zeile #default und ersetzen Sie den Wert durch die gewünschte Aktion wie unten beschrieben:

Unterstützte Aktionen

Option Beschreibung
Neustart Starten Sie das System neu und verlieren Sie dabei den Kern.
halt Halten Sie das System an.
ausschalten Schalten Sie das System aus.
Schale Führen Sie die MSH-Sitzung innerhalb von initramfs aus, sodass ein Benutzer den Kern manuell aufzeichnen kann.

Zum Beispiel:

default halt

Aktivieren des Dienstes

Um den kdump-Daemon beim Booten zu starten, geben Sie als root am Shell-Prompt Folgendes ein:

# chkconfig kdump on

Dadurch wird der Dienst für die Runlevel 2, 3, 4 und 5 aktiviert. Ebenso wird die Eingabe von „chkconfig kdump off“ ihn für alle Runlevel deaktivieren. Um den Dienst in der aktuellen Sitzung zu starten, verwenden Sie als Root den folgenden Befehl:

# service kdump start

Testen der Konfiguration

Die folgenden Befehle führen zum Absturz des Kernels. Seien Sie vorsichtig, wenn Sie diesen Schritten folgen, und verwenden Sie sie auf keinen Fall auf einem Produktionscomputer. Um die Konfiguration zu testen, starten Sie das System mit aktiviertem kdump neu und vergewissern Sie sich, dass der Dienst ausgeführt wird:

# service kdump status
Kdump is operational

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).


Linux
  1. So konfigurieren Sie die Virtualisierung unter Redhat Linux

  2. So erhöhen Sie die Inode-Nummer der Festplatte in Linux

  3. So konfigurieren Sie die MySQL Multi-Master-Replikation unter Oracle Linux

  4. So ändern Sie die Maschinen-ID eines Systems in Oracle Enterprise Linux 7

  5. So konfigurieren Sie Kdump auf SuSE Linux Enterprise System 10 und 11

So installieren und konfigurieren Sie Redis auf einem Linux-System

So installieren und konfigurieren Sie AnyDesk auf einem Linux-System

So installieren und konfigurieren Sie Django auf einem Linux-System

So installieren und konfigurieren Sie PrestaShop auf einem Linux-System

So konfigurieren Sie eine statische IP-Adresse auf einem Linux-System

So installieren und konfigurieren Sie Elasticsearch auf einem Linux-System