Führen Sie mich durch die Linux-Protokolldateien (bitte)

11

Ich habe gerade versucht, eine 2-MB-Datei in gedit zu laden, und sie ist lautlos auf mir gestorben. Ich habe mich gefragt, ob in einer Protokolldatei möglicherweise etwas syslogangezeigt wird , das mir bei der Diagnose helfen könnte: Ich habe überprüft , ob es fehlerhaft ist. Dabei wurde mir klar, dass ich nicht wirklich weiß, wie die Protokollierung auf * nix-Computern organisiert ist.

Alles was ich am Mo weiß ist

  1. Protokolle werden normalerweise in /var/log/... gespeichert. Gibt es irgendwo anders, über das ich Bescheid wissen sollte?

  2. Ich bin mit anwendungsspezifischen Protokollen wie Apaches vertraut.

  3. Ich verstehe, dass dies dmesgdas Startprotokoll ist und syslogein allgemeines Systemprotokoll ... ist das richtig? Bearbeiten: Bobby sagt, dmesgist auch allgemeiner Zweck ... was ist der Unterschied zwischen den beiden?

Würde es jemandem etwas ausmachen, mich durch die nützlichsten Protokolle zu führen? Sind die beiden Protokolle, die ich im letzten Punkt erwähne, die einzigen allgemeinen Protokolle? Und was sind die funky Zahlen am Anfang der Zeilen in dmesg? Sekunden seit dem Start?

Bitte nehmen Sie alles in Ihre Antworten auf, von dem Sie glauben, dass es mein Verständnis hier verbessern und mir helfen würde, Anomalien aufzuspüren!

TIA

Andy

Andy
quelle
dmesgoder /var/log/messagesist ein allgemeines Nachrichtenprotokoll, nicht nur für den Start. Das Starten einer Anwendung vom Terminal aus kann auch beim Debuggen eines Problems helfen.
Bobby
Ja, ich habe bemerkt, dass wenn ich Dinge über die Kommandozeile starte, ich oft Anwendungs-Erbrochenes bekomme, das zurückkommt. Wenn ich dasselbe Programm über einen grafischen Starter starte, geht dieser Text verloren? Wird es als bewährte Methode für eine grafische App angesehen, Nachrichten an auszugeben stdout?
Andy
Wenn Sie ein Programm grafisch starten, werden stdout und stderr mit nirgendwo verbunden (oder / dev / null), was bedeutet, dass alle Nachrichten verloren gehen. Wenn Sie es benötigen, starten Sie entweder über die Befehlszeile oder leiten Sie die Ausgabe in eine Datei um, indem Sie den Befehl in der .desktop-Datei wie folgt festlegen: "some_command &> some_logfile".
Petersohn
Die eigentliche Frage ist, ob ich es brauche oder nicht! Lassen die meisten Programme nützlichere Ausgaben in den Protokollen? Verwenden fortgeschrittene Linux-Leute normalerweise das stdout, um Probleme mit Software zu diagnostizieren (nicht mit ihrer eigenen)? (Grundsätzlich bin ich mit dem Greifen vertraut stdout, aber nicht damit, wie nützlich die Ausgabe tatsächlich sein kann ...)
Andy
Ich starte Anwendungen nur vom Terminal aus, wenn ich Probleme damit habe (Abrufen einiger Debug-Informationen und Fehlermeldungen, die möglicherweise von der GUI verschluckt wurden). Und ja, es ist eine gute Praxis und das Standardverhalten aller Anwendungen unter Linux.
Bobby

Antworten:

12

Vielen Dank an Pulse für die Empfehlung von https://help.ubuntu.com/community/LinuxLogFiles . Ich habe einige Teile herausgeschnitten und die Verwendung syslogdund andere wichtige Befehle weggelassen, um diese kleine Anleitung für zukünftige Referenzzwecke zu hinterlassen. Dies ist von einer Ubuntu-Site und ich weiß nicht, wie viel für andere Distributionen gilt.

Systemprotokolle

Systemprotokolle befassen sich hauptsächlich mit der Funktionsweise des Ubuntu-Systems, nicht unbedingt mit zusätzlichen Anwendungen, die von Benutzern hinzugefügt wurden. Beispiele hierfür sind Autorisierungsmechanismen, Systemdämonen, Systemnachrichten und das umfassende Systemprotokoll selbst, syslog.

Autorisierungsprotokoll: /var/log/auth.log

Das Autorisierungsprotokoll verfolgt die Verwendung von Autorisierungssystemen, die Mechanismen zum Autorisieren von Benutzern, die zur Eingabe von Benutzerkennwörtern auffordern, z. B. das PAM-System (Pluggable Authentication Module), den sudoBefehl, Remote-Anmeldungen sshdusw.

Daemon Log: /var/log/daemon.log

Das Dämonprotokoll enthält Informationen zum Ausführen von System- und Anwendungsdämonen wie dem Gnome Display Manager-Dämon gdm, dem Bluetooth HCI-Dämon hcidoder dem MySQL-Datenbankdämon mysqld.

Austestungsprotokoll: /var/log/debug

Das Debug-Protokoll enthält detaillierte Debug-Meldungen vom Ubuntu-System und von Anwendungen, die sich auf syslogdDEBUG-Ebene anmelden .

Kernel-Protokoll: /var/log/kern.log

Das Kernel-Protokoll enthält ein detailliertes Protokoll der Nachrichten des Ubuntu Linux-Kernels. Diese Meldungen können sich beispielsweise zur Fehlerbehebung bei einem neuen oder benutzerdefinierten Kernel als nützlich erweisen.

Kernel Ring Buffer: dmesg

Der Kernel-Ringpuffer ist eigentlich keine Protokolldatei an sich, sondern ein Bereich im laufenden Kernel, den Sie über das dmesgDienstprogramm nach Kernel-Boot-Meldungen abfragen können . Verwenden Sie Folgendes, um die Nachrichten anzuzeigen:

dmesg | less

Standardmäßig /etc/init.d/bootmisc.shsendet das Systeminitialisierungsskript auch alle Startnachrichten an die Datei /var/log/dmesg.

Nachrichtenprotokoll: /var/log/messages

Das Nachrichtenprotokoll enthält Informationsnachrichten von Anwendungen und Systemeinrichtungen. Dieses Protokoll ist nützlich, um die Nachrichtenausgabe von Anwendungen und Systemeinrichtungen zu untersuchen, die auf INFO-Ebene beim syslog/ sysklogdaemon protokollieren .

Systemprotokoll: /var/log/syslog

Das Systemprotokoll enthält normalerweise standardmäßig die meisten Informationen zu Ihrem Ubuntu-System. Es kann Informationen enthalten, die andere Protokolle nicht enthalten. Konsultieren Sie das Systemprotokoll, wenn Sie die gewünschten Protokollinformationen nicht in einem anderen Protokoll finden können.

Anwendungsprotokolle

Viele Anwendungen erstellen auch Anmeldungen /var/log. Wenn Sie den Inhalt Ihres /var/logUnterverzeichnisses auflisten, werden bekannte Namen angezeigt, z. B. /var/log/apache2die Protokolle für den Apache 2-Webserver oder /var/log/sambadie Protokolle für den Samba-Server.

Apache HTTP Server-Protokolle: /var/log/apache2

Die Standardinstallation für Apache2 unter Ubuntu erstellt ein Protokollunterverzeichnis. In diesem Unterverzeichnis befinden sich zwei Protokolldateien mit zwei unterschiedlichen Zwecken:

  • /var/log/apache2/access.log - Aufzeichnungen jeder bereitgestellten Seite und jeder vom Webserver geladenen Datei.
  • /var/log/apache2/error.log - Aufzeichnungen aller vom HTTP-Server gemeldeten Fehlerzustände

CUPS-Drucksystemprotokolle: /var/log/cups/error_log

Das Common Unix Printing System (CUPS) verwendet die Standardprotokolldatei /var/log/cups/error_logzum Speichern von Informations- und Fehlermeldungen.

Rootkit Hunter Log: /var/log/rkhunter.log

Das Rootkit Hunter-Dienstprogramm ( rkhunter) überprüft Ihr Ubuntu-System auf Hintertüren, Sniffer und Rootkits, die alle Anzeichen für einen Kompromiss Ihres Systems sind.

Samba SMB Server-Protokolle: /var/log/samba

Samba, der SMB-Server (Server Message Block Protocol), wird häufig zum Freigeben von Dateien zwischen Ihrem Ubuntu-Computer und anderen Computern verwendet, die das SMB-Protokoll unterstützen. Samba speichert drei verschiedene Arten von Protokollen im Unterverzeichnis:

  • log.nmbd - Nachrichten im Zusammenhang mit Sambas NETBIOS over IP-Funktionalität (das Netzwerkmaterial)
  • log.smbd - Nachrichten im Zusammenhang mit der SMB / CIFS-Funktionalität von Samba (Datei- und Druckfreigabematerial)
  • log.[IP_ADDRESS] - Nachrichten zu Serviceanfragen von der im Namen der Protokolldatei enthaltenen IP-Adresse.

X11-Serverprotokoll: /var/log/Xorg.0.log

Der mit Ubuntu verwendete Standard-X11-Fensterserver ist der Xorg X11-Server. Dieses Protokoll ist hilfreich für die Diagnose von Problemen mit Ihrer X11-Umgebung.

Nicht für Menschen lesbare Protokolle

Einige Protokolldateien im /var/logUnterverzeichnis sind für Anwendungen lesbar, nicht unbedingt für Menschen. Es folgen einige Beispiele.

Anmeldefehler Protokoll: faillog

Das Protokoll für Anmeldefehler unter /var/log/faillogist so konzipiert, dass es vom faillogBefehl analysiert und angezeigt wird .

Letzte Anmeldungen Protokoll: lastlog

Die letzten Anmeldungen bei /var/log/lastlogsollten normalerweise nicht von Menschen analysiert und untersucht werden, sondern sollten in Verbindung mit dem lastlogBefehl verwendet werden.

Login Records Log: who

Die Datei /var/log/wtmpenthält Anmeldedatensätze, wird jedoch im Gegensatz zu /var/log/lastlogoben /var/log/wtmpnicht zum Anzeigen einer Liste der letzten Anmeldungen verwendet, sondern von anderen Dienstprogrammen wie dem whoBefehl zum Anzeigen einer Liste der aktuell angemeldeten Benutzer.

Andy
quelle
1

syslog (oder besser gesagt syslog.d) ist ein Protokollierungssystem, das für das Schreiben der meisten Anmeldungen verantwortlich ist /var/log. Es gibt andere ähnliche Projekte wie syslog-ng

system.log ist nur eine speziell benannte Datei, in die Syslog gerade schreibt

dbr
quelle
Vielen Dank für die Antwort: Ich war mehr an einem Gesamtbild der Linux-Protokollierung interessiert. Mein Beispiel mit Syslog war nur eine Präambel, um zu erklären, wie ich zu dieser allgemeinen Frage gekommen bin.
Andy
0

Sie sagen nicht, wo Sie sich befinden, aber Linux Format hatte in Ausgabe 132 einen Artikel über Protokolldateien. Sie müssen entweder jemanden mit einer Kopie finden oder eine frühere Ausgabe kaufen, um sie zu erhalten.

Amos
quelle
Ich bin in Großbritannien ansässig, würde aber trotzdem hoffen, dass ich die Informationen erhalten kann, ohne Geld auszugeben (:
Andy
2
Ich lerne immer noch Linux und fand, dass dies eine nützliche Seite mit Informationen ist. Help.ubuntu.com/community/LinuxLogFiles
Pulse
Das ist genau das, wonach ich gesucht habe!
Andy