claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 06/2006

Log-Dateien auswerten mit Ksystemlog

Such und find

Thomas Leichtenstern


Speziell im Fehlerfall sind Log-Dateien unentbehrliche Hilfsmittel -- für diejenigen, die wissen, wo und wie sie suchen müssen. KSystemLog sorgt für eine strukturierte und übersichtliche Ausgabe aller Protokolle.

Für den erfahrenen Anwender ein unentbehrliches Hilfsmittel, um Fehler im System aufzuspüren und Ereignisse auf der Maschine nachzuvollziehen, überfordern die Vielzahl verschiedener Log-Dateien sowie deren unübersichtliche Einträge den Einsteiger jedoch meist. Der geübte Umgang mit der Konsole ist Voraussetzung, um aus den Protokollen des Systems die gewünschten Einträge anzuzeigen. Diese Aufgabe übernimmt meisterlich das grafische Programm KSystemLog, das der Artikel im Folgenden vorstellt. Vorab vermittelt er jedoch das nötige Basiswissen über das Systemprotokoll generell.

Auf die Finger geschaut

Zuständig für das Protokollieren auf Linux-Maschinen sind zwei Programme: klogd und syslog(-ng). klogd verarbeit sämtliche Kernelmeldungen und startet als erstes Programm beim Booten des Systems. Er ist auch für die Ausgabe der Boot-Meldungen zuständig, die er anschliessend in die Datei /var/log/boot.msg schreibt. Im laufenden Betrieb leitet der Daemon die System- und Kernel-Meldungen an den syslogd weiter. Dieser ist der Protokollführer der Maschine und für die Log-Ausgaben aller Programme verantwortlich.

Linux verwendet -- unabhängig von der verwendeten Distribution -- das Verzeichnis /var/log/ als Speicherort aller Log-Dateien. In diesem Verzeichnis befinden sich alle systemnahen Protokolle wie zum Beispiel messages. Viele Programme wie Cups und Samba erstellen darin Unterverzeichnisse mit dem eigenen Namen, in denen deren Logs zu finden sind.

Da Linux es mit dem Loggen sehr genau nimmt, fallen im Protokoll viel benutzter Rechnern in kurzer Zeit sehr große Datenmengen an. Um die Größe der Log-Dateien nicht ins Unermessliche wachsen zu lassen, räumt das Programm logrotate diese zyklisch auf: Je nach Einstellung geschieht dies in definierten Zeiträumen oder beim Erreichen einer bestimmten Größe der Protokolldateien. Das Programm archiviert diese dann und versieht sie mit der Endung *.gz. Beim Erreichen eingestellter Vorhaltezeiten löscht logrotate die jeweils ältesten der archivierten Systemprotokolle.

Da Log-Dateien unter Umständen sensible Informationen wie Passwörter enthalten können, haben die meisten eine Zugriffsbeschränkung auf den User root.

Log-Dateien

Welche Dateien sich im Log-Verzeichnis des Systems befinden, hängt im Wesentlichen davon ab, welche Programme auf dem Rechner installiert sind. Linux selbst begnügt sich mit einer Hand voll Protokolldateien, die von Distribution zu Distribution variieren. Einige sind jedoch bei allen gleich -- allen voran /var/log/messages, zentrale Log-Datei des Systems. Ebenso ist die Datei /var/log/boot.msg auf allen Distributionen zu finden.

Der Aufbau der Log-Einträge ist meist gleich: An erster Stelle steht das Datum des Eintrags, an zweiter der Rechner, von dem die Meldung kommt, an dritter der Prozess, der sie erzeugt hat, und am Schluss die eigentliche Meldung. Ein typischer Log-Eintrag lautet:

Apr 19 12:22:16 kork kernel: cdrom: open failed.

Dieser Eintrag wurde am 19. April vom Kernel des Rechners kork generiert und besagt, dass sich das CD-ROM-Laufwerk nicht öffnen lässt. Der Rechnername ist deswegen mit aufgeführt, da es syslog bei entsprechender Konfiguration auch anderen Rechnern im Netzwerk erlaubt, in die eigenen Log-Dateien zu schreiben (Remote-Log).

Generell unterscheiden sich Log-Einträge durch verschiedene Kategorien, welche die Dringlichkeit der Meldungen repräsentieren. Die Tabelle Log Levels gibt Auskunft darüber, welche es gibt und was sie bedeuten.

Log Levels
Log Level:Bedeutung:
debugDient der Fehlersuche in Programmen. Wird wegen des extrem hohen Datenaufkommens nur selten verwendet.
infoGenerelle Statusinformationen.
noticeUnkritische Auffälligkeiten im Normalbetrieb.
warn oder warningWarnhinweise, zum Beispiel fehlende Dateien oder Verzeichnisse.
err oder errorFehlermeldungen, beispielsweise das fehlerhafte Laden von Kernel-Modulen.
critKritische Fehler.
alertAlarm: Dringendes Eingreifen erforderlich.
emerg oder panicWarnt vor einem unmittelbar bevorstehenden Systemabsturz.

Die Einstufung der Meldungen bestimmt das Programm, das die Meldungen generiert; der Syslog-Daemon entscheidet dann abhängig von der Konfiguration (/etc/syslog.conf oder /etc/syslog-ng/syslog-ng.conf), in welche Log-Datei diese zu schreiben sind. Viele Programme ermöglichen darüber hinaus das Einstellen des Log Levels: Je höher dieser ist, desto gesprächiger wird das Programm.

Helfer in der Not

Die informativste Log-Datei bringt nichts, wenn der Anwender nicht in der Lage ist, die für ihn relevanten Daten darin zu finden. Hier hilft das Tool KSystemLog [1], das die Protokolldateien übersichtlich angeordnet anzeigt (Abbildung 1). Unter Kubuntu gehört das Programm zum Standardumfang der Distribution, Suse- und Mandriva-Linux-Anwender installieren es von der Heft-CD nach. Da die meisten Log-Dateien zum Öffnen Root-Privilegien erfordern, starten Sie das Programm über das Schnellstartfenster ([Alt-F2]) mit dem Kommando kdesu ksystemlog.

Abb. 1: KSystemLog stellt mehrere Log-Dateien übersichtlich geordnet dar. Das Detailfenster zeigt alle Informationen des gewählten Eintrags.

Zur einfacheren Bedienung fasst das Programm mehrere Log-Dateien, die thematisch verwandt sind, in Gruppen zusammen. Diese erreichen Sie entweder über die Icons in der Menüleiste oder den Menüpunkt Logs. Im Gegensatz zu Mandriva-Linux- und Kubuntu-Usern müssen Anwender von Suse-Linux 9.3 und 10.0 diese Zurodnungen jedoch zuerst konfigurieren, da die Voreinstellung von KSystemLog die meisten Log-Dateien von Suse-Linux (siehe Kasten syslog-ng) nicht erfasst.

Über den Menüeintrag Settings / Configure KSystemlog... erreichen Sie das Setup. Unterhalb des Eintrags General finden Sie die Systemgruppen, welche Log-Dateien zu logischen Einheiten zusammenfassen. Die verwendeten Symbole sind identisch mit den Icons in der Menleiste des Hauptfensters. Jeder Gruppe lassen sich beliebig viele Log-Dateien hinzufügen, die dann im gleichen Fenster erscheinen. Suse-Anwender fügen der Gruppe System Log mit einem Klick auf den Button Add File... die Dateien localmessages und warn aus dem Verzeichnis /var/log/ hinzu (Abbildung 2).

Abb. 2: Das Konfigurationsfenster von KSystemLog erlaubt das Zusammenfassen mehrerer Log-Dateien in vordefinierten Gruppen.

Um später die Einträge der Log-Datei warn eindeutig identifizieren zu können, ändern Sie bei aktiviertem Eintrag mit dem Button Change Status.. das Symbol auf warning. Das so zugewiesene Symbol erscheinen dann im Hauptfenster links neben den Einträgen.


syslog-ng: Das Programm arbeitet mit dem gleichen Protokoll wie syslog, bietet aber einen deutlich größeren Funktionsumfang. Weiterhin strukturiert es Log-Dateien anders als sein Vorgänger.Auf Suse Linux Betriebssystemen ab Version 9.3 ist syslog-ng der Standard-Log-Daemon.

Anzeige

Die Ausgabe im Hauptfenster des Programms lässt sich auf vielfältige Weise den eigenen Ansprüchen anpassen: Ein Klick auf die Spaltenüberschriften sortiert die Einträge beispielsweise auf- oder absteigend. Ein Rechtsklick in das Fenster öffnet das Kontextmenü. Dessen vorletzter Eintrag Group by erlaubt das Zusammenfassen der Einträge nach Log-Level, Tag, Stunde und Prozess (Abbildung 3).

Abb. 3: Die Ausgabe der Log-Einträge lässt sich mit wenigen Mausklicks filtern und thematisch zusammenfassen.

Das richtige Instrument, um nur bestimmte Log-Einträge anzuzeigen, bringt KSystemLog mit dem Filter über dem Anzeigefenster mit. Geben Sie im Textfenster den gewünschten Begriff ein, um den Filter zu aktivieren. Dies geschieht interaktiv. Das heist, noch während der Eingabe greift der Filter. Möchten Sie diesen auf bestimmte Bereiche reduzieren, wählen Sie aus dem Pull-down-Menü Column: am rechten Rand des Textfelds die Spalte, auf die der Filter anzuwenden ist.

Ein mächtiges Werkzeug für die Suche nach bestimmten Einträgen erreichen Sie über Edit / Find... beziehungsweise [Strg-F]. Das Suchfenster (Abbildung 4) erlaubt nicht nur das individuelle Festlegen bestimmter Suchmuster wie Groß/Kleinschreibung beachten, nur komplette Wörter und ab Cursor-Position suchen, sondern auch das einfache Verwenden regulärer Ausdrücke über ein Pull-down-Menü.

Abb. 4: Das einfache Verwenden von regulären Ausdrücken gibt auch dem unerfahrenen Benutzer ein mächtiges Werkzeug an die Hand.

Mit den Play- und Stop-Buttons in der Menüleiste des Programms starten und stoppen Sie die kontinuierliche Anzeige neuer Ereignisse. Log-Dateien, die nicht in Gruppen enthalten sind, anzuzeigen, öffnen Sie über den Menüpunkt File / Open.... Im Datei-Browser wechseln Sie nun in das Verzeichnis /var/log/ und wählen die gewünschte Log-Datei. Um über alle Abläufe des Systems auf dem Laufenden zu bleiben, ist es durchaus sinnvoll, mehrere Log-Dateien oder Gruppen gleichzeitig anzuzeigen. Zu diesem Zweck stellt KSystemLog in Form von Tabs das passende Werkzeug bereit. Sie öffnen einen neuen Tab entweder über einen Klick auf den Menüeintrag Window / New Tab oder [Strg-T]. Jede nun aktivierte Logdatei oder Gruppe lädt das Programm dann in diesem Tab.

Neben der Listenansicht bietet das Programm ein Detailfenster, das sich mit einem Doppelklick auf den gewünschten Eintrag oder einem Klick auf die Lupe in der Symbolleiste öffnet. Ein Klick auf die Buttons previous und next schaltet zum vorherigen bzw. nächsten Eintrag der Liste.

Fazit

Der richtige Umgang mit Log-Dateien hilft in vielen Fällen beim Erkennen und Beheben von Problemen. KSystemLog ist das ideale Werkzeug, um diese Protokolldateien strukturiert anzuzeigen und den Inhalt nach der gewünschten Information zu filtern. Das Sortieren der Ausgabe nach verschiedenen Kriterien wie Datum oder Log Levels erleichtert die Suche nach Informationen zusätzlich. Die Stabilität des Programms ist jedoch durchaus verbesserungswürdig: Zu oft stürzte es speziell unter Suse Linux unvermittelt ab. (tle)

Infos
[1] KSystemLog: http://annivernet.free.fr/ksystemlog/

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2014 COMPUTEC MEDIA GmbH | Last modified: 2008-11-05 16:56

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]