Wie kann ich Protokolle auf einem Server sehen, nachdem eine Kernel-Panik hängen geblieben ist?

10

Ich verwende einen Gentoo-Linux-Produktionscomputer, und kürzlich gab es eine Situation, in der der Server in meinen am selben Standort befindlichen Räumlichkeiten hing, und als ich dort ankam, bemerkte ich, dass der Server an einem scheinbaren Kernel-Panik-Hang hing. Ich habe den Computer mit einem harten Neustart neu gestartet und war enttäuscht, als ich herausfand, dass ich nirgendwo Beweise dafür finden konnte, warum der Computer hängen blieb.

Stimmt es, dass bei einem harten Neustart die Nachrichten selbst verloren gehen oder gibt es eine Einstellung, die ich irgendwo in syslog-ng oder vielleicht in sysctl vornehmen kann, um zumindest das Fehlerprotokoll beizubehalten, damit ich solche Pannen verhindern kann in der Zukunft ? Ich verwende übrigens einen 2.6.x-Kernel.

Danke im Voraus.

Low Kian Seong
quelle

Antworten:

5

Um eine Kernel-Panik zu protokollieren, ist die Verwendung von netconsole viel einfacher als die Verwendung einer seriellen Verbindung;)

Es gibt einen nützlichen Eintrag darüber im Ubuntu-Wiki , der für andere Linux-Varianten verwendet werden kann ... Hat mir zum Beispiel bei Archlinux geholfen.

Beachten Sie, dass netconsole auch beim Booten eingerichtet werden kann.

Vincent
quelle
4

Im Allgemeinen habe ich in diesen Situationen eine serielle Remote-Konsole eingerichtet und dann sichergestellt, dass alles protokolliert wird, was auf der Konsole angezeigt wird. Sie können dies tun, indem Sie die serielle Schnittstelle des Geräts über ein RS-232-Kabel mit einem anderen Gerät verbinden. Dies könnte heutzutage ein wenig kniffliger werden, da die seriellen Schnittstellen allmählich verschwinden, aber ich denke, die meisten Server haben sie immer noch.

Führen Sie dann auf diesem anderen Computer conserver aus und konfigurieren Sie die Konsolenprotokollierung. Dies bietet eine gute Möglichkeit, sowohl alles auf der Konsole zu protokollieren als auch einen alternativen Anmeldepfad zum System bereitzustellen.

Wenn Sie keine andere Linux-Box einrichten und verwalten möchten, können Sie alternativ einen seriellen Konsolenserver installieren. Verschiedene Unternehmen wie Avocent, Cyclades und Raritan stellen diese Boxen her, die eine Netzwerkschnittstelle zu 2-48 seriellen Ports bieten. Allerdings wird so etwas natürlich teurer sein, als nur eine andere Linux-Box einzurichten.

Phil Hollenback
quelle
4
Beachten Sie zusätzlich zu Phils Antwort, dass viele (die meisten?) * NIX-Systeme im Falle einer Panik den Kernel / RAM auf der Swap-Partition sichern und den Speicherauszug auf /var/crashoder /var/adm/crashbeim Neustart kopieren , damit Sie ihn mit einem Debugger angreifen können und sehen, wo die Panik stattfand. Die serielle Konsole ist jedoch immer noch eine großartige Option, da Sie sehen können, was der Server zuletzt getan hat panic().
voretaq7
0

Sie können versuchen, Syslog-Nachrichten auf einen anderen Computer zu replizieren. Vielleicht nicht alle, sondern nur Warnungen und kritisches und deaktiviertes Caching für sie.

dtoubelis
quelle