Aus Linux-Magazin 06/2007

LPIC-1-Vorbereitung - Teil 11: Logfiles, Systemzeit und

Logdateien geben Einblick in alle Ereignisse auf einem Linux-PC. Welche Rolle dabei der Syslog-Daemon spielt und wie seine Konfiguration erfolgt, ist ein wichtiges LPI-Thema. Auch zur Systemzeit und zu Backup-Strategien halten die Prüfungen Fragen bereit.

Administratoren behalten ihre Linux-Systeme im Blick und analysieren die Fehler. Dabei helfen meist die Logfiles: Das Kommando »tail -f Datei« ist besonders nützlich, gibt es doch die gewünschte Datei nicht einmalig aus, sondern zeigt fortlaufend neu hinzukommende Einträge an. So geht keine Information verloren.

Doch beobachten können Sie nur, was Sie auch haben. Meist laufen alle relevanten Logfiles in »/var/log« über den Syslog-Daemon [1], die zentrale Nachrichtenschaltstelle des Systems. Syntax und Inhalt seiner Konfigurationsdatei »/etc/syslog.conf« sollte jeder LPI-Prüfling beherrschen.

Altbewährt: Syslog

Doch Vorsicht: Neuere Distributionen wie die aktuellen Suse-Varianten setzen auf den Nachfolger Syslog-NG ([2], [3]), dessen Konfigurationsdateien einen ganz anderen Aufbau haben und sich darum nicht zur LPI-Vorbereitung eignen. Syslog-NG hat in die Prüfungsinhalte noch nicht Einzug gehalten. Hier hilft wahlweise der Griff zu älteren Versionen der Distributionen oder eine schnelle Suche im Netz nach »syslog.conf«.

Das LPI erwartet von den Prüfungsteilnehmern, dass sie in der Lage sind, anhand einiger Zeilen aus einer »syslog.conf«-Datei (Abbildung 1) zu bestimmen, welche Informationen der Daemon in welche Logfiles schreibt. Das setzt auch Verständnis der verschiedenen Facilities (Logkanäle) und Prioritäten der Logmeldungen voraus. Syslog kennt dabei nicht beliebig viele Facilities, diese sind vielmehr fest vorgegeben (Tabelle 1).

Abbildung 1: Dieser Auszug der Datei »/etc/syslog.conf« zeigt, wie Sie über Facilities und Prioritäten festlegen, welche Logmeldungen der Daemon in welche Datei schreibt. Etwa alle Mail-relevanten Daten nach »/var/log/mail«.

Abbildung 1: Dieser Auszug der Datei »/etc/syslog.conf« zeigt, wie Sie über Facilities und Prioritäten festlegen, welche Logmeldungen der Daemon in welche Datei schreibt. Etwa alle Mail-relevanten Daten nach »/var/log/mail«.

Tabelle 1:
Syslog-Facilities

 

Priorität

Bedeutung

debug

Debug-Meldungen

info

Reinen Information

notice

Kenntnisnahme

warning (früher: warn)

Warnungen, eventuell unwichtig

err (früher: error)

Ernsthafter Fehler, wichtig

crit

Kritischer Fehler, erfordert Abhilfe

alert

Alarm, erfordert sofortiges Handeln

emerg (früher: panic)

Notfall, System ist oder wird instabil

none

Keine Meldung protokollieren

Kommen in einer Frage Facilities vor, die es gar nicht gibt, müssen Kandidaten sie als falsch erkennen, denn eigene Facilities sind nicht ergänzbar – für besondere Zwecke gibt es nur die freien Facilities »local0« bis »local7«. Die Priorities sind ebenfalls für die Prüfungsvorbereitung wichtig: Tabelle 2 zeigt sie aufsteigend nach Wichtigkeit sortiert an. Ein Eintrag der Form

kern.warn      /var/log/kernel

führt dazu, dass alle Meldungen der Priorität »warn« in die genannte Logdatei wandern. Zugleich aber auch Meldungen der höheren Prioritätsstufen »alert« und »emerg«, denn diese sind in niedrigeren Stufen mit enthalten: Ein Alert ist immer auch eine Warnung. Um lediglich Logmeldungen einer Stufe zu erfassen (und höhere Stufen explizit auszuschließen), kommt vor den Prioritätsnamen ein Gleichheitszeichen:

kern.=crit      /var/log/crit

Unwichtige Logmeldungen schreibt Syslog auf Wunsch gepuffert, um die Zahl der Schreibvorgänge zu minimieren und die Festplatte zu entlasten. Ein Minuszeichen vor dem Pfad zur Logdatei aktiviert diese Option:

mail.*       -/var/log/mail

Ein wichtiges Syslog-Feature ist auch die Weiterleitung an einen anderen Rechner, auf dem der Syslog-Dienst Logeinträge aus dem Netzwerk akzeptiert und protokolliert. Diese Weiterleitung konfiguriert der Administrator über einen Eintrag der Form »kern.crit @Logserver«, in dem »Logserver« durch den Namen des Rechners zu ersetzen ist.

Tabelle 2:
Syslog-Prioritäten

 

Facility-Name

Verwendungszweck

auth

Veraltet – heute verwendet man
»authpriv«

authpriv

Sicherheit und Authentifizierung

cron

Cron und At

daemon

Alle nicht zugeordneten Dienste

ftp

FTP-Server

kern

Kernelmeldungen

lpr

Cups, lpr & Co.

mail

Mailserver, Spamfilter

mark

Regelmäßige Timestamps durch Syslog

news

NNTP-Newsserver

syslog

Syslog selbst

user

Allgemeine Meldungen der Nutzer

uucp

UUCP-System

local0 bis local7

Frei verwendbar

LPI-Aufgabengruppen

Das Linux Professional Institute gliedert die Prüfungsfragen in Aufgabengruppen. Dieser Artikel erklärt die Abschnitte:

  • 1.111.3: Konfigurieren und Nutzen der Logdateien im Rahmen der
    administrativen Sicherheitsanforderungen
  • 1.111.5: Planen einer effektiven Datensicherungsstrategie
  • 1.111.6: Verwalten der Systemzeit

Logs aufräumen mit Logrotate

Wenn es um Logfiles geht, ist »logrotate« nicht weit. Dieses Programm ist für die geisterhaft aufgeräumten, Gzip-gepackten Logdateien in »/var/log« zuständig. Über eine kleine Konfigurationsdatei gesteuert, packt es Logfiles nach einer vorgegebenen Anzahl von Tagen oder beim Erreichen einer Maximalgröße zusammen und archiviert sie, beim Überschreiten der maximalen Haltezeit löscht es sie auf Wunsch automatisch. Die Konfigurationsparameter in der Datei »/etc/logrotate.conf« sind für die LPI-Prüfung nicht relevant.

Datensicherung

Auch Backups gehören zur Systemadministration. Doch vollständige Backup-Szenarien, die das Neuaufsetzen eines kompletten Servers nach einem Plattenschaden erlauben, sprengen den Rahmen der Level-1-Prüfung. Das LPI beschränkt sich in diesem Themengebiet auf das grundlegende Verständnis verschiedener Backup-Strategien sowie Kenntnisse über die wichtigsten klassischen Unix-Tools – konkrete Aufrufparameter einzelner Tools sind für das Examen weniger wichtig. Die zentrale Lernaufgabe ist es, die Unterschiede zwischen den drei Varianten Vollbackup, differenzielles Backup und inkrementelles Backup zu kennen.

Inkrementelle Backups sparen Platz

Ein Vollbackup sichert den kompletten Datenbestand, für die Rücksicherung reicht später auch eine einzige Aktion aus. Das differenzielle Backup speichert nur alle seit dem letzten Vollbackup geänderten Daten, ein Zurückspielen in diesem Backup-Szenario erfordert also Zugriff auf zwei Archive (das Voll- und das differenzielle Backup) und ist deshalb auch noch einfach und schnell.

Allerdings sichern Sie hier mehr Daten als beim inkrementellen Backup: Diese dritte Variante archiviert lediglich Daten, die sich seit dem letzten (inkrementellen) Backup geändert haben. Diese Vorgehensweise spart Zeit und Speichervolumen, erfordert jedoch das korrekte Zurückspielen des Vollbackups und aller inkrementellen Backups in der richtigen Reihenfolge (Abbildung 2). Je nach Backuptyp bauen Sicherungen aufeinander auf. Das spart Platz, macht das Zurückspielen aber umständlicher.

Abbildung 2: Drei Backuptypen im Mischbetrieb: Eine gute Kombination minimiert Backup- und Restore-Zeiten. Das differenzielle Donnerstagsbackup garantiert, dass für jedes Restore-Szenario der Zugriff auf vier Bänder reicht – diese Extremfälle treten bei den Mittwochs- und Samstagsdaten auf.

Abbildung 2: Drei Backuptypen im Mischbetrieb: Eine gute Kombination minimiert Backup- und Restore-Zeiten. Das differenzielle Donnerstagsbackup garantiert, dass für jedes Restore-Szenario der Zugriff auf vier Bänder reicht – diese Extremfälle treten bei den Mittwochs- und Samstagsdaten auf.

Der Klassiker »dump« sichert Ext-2- und Ext-3-Dateisysteme in hoher Geschwindigkeit, »restore« spielt sie wieder zurück. Das Sicherungstool wertet die fünfte Spalte der Datei »/etc/fstab« aus: Enthält diese für eine Partition den Eintrag »0«, ignoriert »dump« diesen Datenträger, während eine »1« dafür sorgt, dass »dump« die Partition sichert.

Geht es um Dateiarchive, ist »tar« das Maß der Dinge, seine wichtigsten Optionen gehören zum Basiswissen:

  • »tar -cf archiv.tar /home« sichert alle
    Homeverzeichnisse nach »archiv.tar« (»-c«:
    create, erzeugen).
  • »tar -xf archiv.tar« schreibt die Dateien aus dem
    Archiv wieder (in das aktuelle Verzeichnis, nicht an den
    ursprünglichen Ort) zurück (»-x«: extract,
    auspacken).

Die Zusatzoption »-v« (verbose, wortreich) macht »tar« deutlich gesprächiger und sorgt dafür, dass dieses Tool eine Liste der gerade bearbeiteten Dateien ausgibt. Wichtig: Während bei den meisten Parametern die Reihenfolge keine Rolle spielt, muss »-f« (file) stets am Ende der Aufrufoptionen stehen, wenn die Optionen mit einem Bindestrich (»-cvzf«) beginnen. Es bildet dann mit dem Archivnamen als »-f /tmp/archiv.tar« eine Option mit Argument.

Das etwas weniger bekannte Tool »cpio« kann ebenfalls Dateien in Archive kopieren, für die Level-1-Prüfung reicht es, seinen Namen zu kennen.

Archiv und Komprimierung

Das Archivprogramm »tar« komprimiert Archive nicht, anders als die aus der Windows-Welt bekannten Zip-Programme. Nur wenn sich auch die Option »-z« (ruft »gzip« auf) oder »-j« (»bzip2«) hinzugesellt, packt »tar« das Archiv. Aufrufe der Form »tar -cvzf«, »tar -cvjf«, »tar -xvzf« und »tar -xvjf« sind darum die gebräuchlichen Klassiker.

Alternativ formen »tar« und »gzip«/»bzip2« eine klassische Pipeline: Viele Unix-Tools akzeptieren statt eines Dateinamens ein Minuszeichen (»-«), das sie als Standardausgabe (»stdout«) oder Standardeingabe (»stdin«) interpretieren; das gilt auch für »tar«. Die Option »-f -« fordert »tar« dazu auf, das Archiv nicht in eine Datei zu schreiben, sondern die Daten an die Standardausgabe weiterzuleiten, die dann über die Pipe-Verbindung zur Standardeingabe für »gzip« wird:

tar -cf - /home | gzip > /tmp/archiv.tgz

Hier wird auch der Unterschied zwischen »gzip« und »zip« (Winzip, Pkzip und andere) deutlich: »gzip« komprimiert lediglich einen Datenstrom, erstellt dabei jedoch kein Archiv mit Dateinamen, Zugriffsrechten und Verzeichnisstrukturen. Diese Aufgabe übernimmt »tar«. Darum sind die beiden Zip-Varianten nicht miteinander kompatibel, auch wenn sie auf gleichen Kompressionsalgorithmen basieren. Die Dateiendung ».gz« von »gzip« ist daher nicht mit ».zip« zu verwechseln, auch wenn beispielsweise Winzip den Umgang mit ».gz«-Dateien und »tar.gz«-Archiven beherrscht.

Wissen, was die Stunde geschlagen hat

Die exakte Uhrzeit zu kennen ist gerade für Server sehr wichtig, um Fehlerursachen aus verschiedenen Logfiles zusammenzutragen und sich gegen bestimmte Angriffsszenarien zu wappnen. Über das Network Time Protocol (NTP, [4]) fragen PCs Zeitserver im Internet ab, die sich wiederum meist nach der deutschen Atomuhr in Braunschweig richten – exakter kann eine Uhr nicht gehen. Ärger mit der Umstellung zwischen Sommer- und Winterzeit ist damit ebenfalls passé.

Für die einfache Abfrage der aktuellen Uhrzeit bietet sich der Aufruf »ntpdate Hostname« an. Das Tool akzeptiert auch mehrere Hostnamen, der gleichzeitige Zugriff auf verschiedene Zeitserver macht den Zeitabgleich exakter. Hinter dem Namen »de.pool.ntp.org« verbergen sich mehrere NTP-Server im Round-Robin-Verfahren: Das garantiert eine gute Verfügbarkeit. Der Befehl

ntpdate de.pool.ntp.org de.pool.ntp.org de.pool.ntp.org

fragt zeitgleich drei verschiedene Server ab. So ein Aufruf passt für regelmäßige Korrekturen auch gut in die Crontab.

Jedoch setzt »ntpdate« lediglich die Uhrzeit des Systems, nicht aber die der Hardware-Uhr auf dem Motherboard, sodass der Rechner nach einem Neustart wieder potenziell mit der falschen Uhrzeit arbeitet. Das Programm »hwclock« stellt die Verbindung zur Hardware-Uhr her und ermöglicht wahlweise das Stellen der System- nach der Hardware-Uhr (»hwclock –hctosys«) oder umgekehrt das Stellen der Hardware-Uhr nach der Systemzeit (»hwclock –systohc«). Letzteres ist sinnvoll, um die mit »ntpdate« präzise gestellte Systemzeit für den nächsten Reboot zu behalten.

Wenn’s nicht exakt ist: Drift

Hardware-Uhren laufen über längere Zeiträume nicht exakt, sondern haben eine meist gleich bleibende Gangabweichung, sind also zu schnell oder zu langsam. Linux kann diese Drift genannte Abweichung überwachen, regelmäßig berechnen und beim Auslesen der Hardware-Uhr den Korrekturwert beachten. Eine detaillierte Diskussion darüber findet sich in der (auch sonst lesenswerten) Manpage zu »hwclock«.

Die Drift-Korrektur findet übrigens nur nach explizitem Aktivieren dieser Funktion statt. Solche Details sind zwar für die LPI-Prüfung nicht relevant, aber die Konfigurationsdatei »/etc/ntp.drift«, die Informationen zur Gangabweichung aufnimmt, sollte (dem Namen nach) bekannt sein. Suse Linux speichert diese Daten unter »/var/lib/ntp/drift«, Debian unter »/var/lib/ntp/ntp.drift«, doch geht das LPI von »/etc/ntp.drift« aus.

Zeitzone

Noch eine weitere Konfigurationsdatei gehört zum LPI-Repertoire: Für die korrekte Berechnung der Ortszeit stellt der Administrator über »/etc/localtime« die Zeitzone ein, in der sich der Rechner befindet. Diese Datei enthält Informationen über die aktuelle Zone, verwendet dafür aber ein Binärformat, das sich einer Betrachtung mit »less« & Co. entzieht. In ihr steckt auch die Information, dass die deutsche Ortszeit eine oder zwei Stunden von der Weltzeit UTC abweicht. Zieht der Rechner um, folgt eine Anpassung der Datei »/etc/localtime« an die neuen Begebenheiten: Unter »/usr/share/zoneinfos« liegen verschiedene Zonendateien, von denen eine passende zur neuen »/etc/localtime« wird.

Geht es um die Uhrzeit des Rechners, darf zuletzt auch das Tool »date« nicht fehlen. Anders als »hwclock« liest es die Systemzeit aus, kann aber noch wesentlich mehr. Über zahlreiche Format-Optionen ist es in Umfang und Darstellung der Zeitausgabe flexibel. Gewöhnungsbedürftig sind die Aufrufparameter von »date«: Ein Pluszeichen kennzeichnet den Anfang des Formatstrings, der Platzhalter für die verschiedenen Angaben enthält. Einige Beispiele machen das System deutlich:

  • »date +”%H:%M”« gibt die Uhrzeit im Format
    »21:52« aus.
  • Mit »date +”%d.%m.%y”« erhalten Sie das Datum in
    der Notation »05.03.06«.

Wer »date« in Shellskripten benutzen will, baut mit einem geeigneten Formatstring gleich einen vollständigen Aussagesatz zusammen:

date +"Heute ist der %j. Tag des Jahres %Y"

führt zu der Ausgabe »Heute ist der 064. Tag des Jahres 2007«. Tabelle 3 gibt eine Übersicht der wichtigsten Platzhalter, die »date« kennt. (hge)

Tabelle 3:
Platzhalter des »date«-Kommandos

 

Kürzel

Bedeutung

%a

Wochentagkürzel (Mo, Di, Mi, …)

%A

Wochentag (Montag, Dienstag, …)

%b

Monatskürzel (Jan, Feb, …)

%B

Monat (Januar, Februar, …)

%c

Datum und Uhrzeit im Format: Do 12 Apr 2007 15:16:57 CEST

%d

Tag (01, 02, … 31)

%D

Datum im Format 28/02/99

%e

Tag des Monats, mit Leerzeichen aufgefüllt ( 1..31)

%H

Stunde zwischen 00 und 23

%I

Stunde im amerikanischen Format (1 bis 12)

%j

Tag des Jahres (001 bis 366)

%k, %l

Stunde (0 bis 23 oder 1 bis 12)

%m

Monat (01 bis 12)

%M, %S

Minute (00 bis 59), Sekunde (00 bis 60)

%n, %t

Zeilenumbruch (newline), Tabulator

%p

Vormittag/Nachmittag nach US-Konvention: am oder pm

%r

Zeit im US-Format: 10:34:01 PM

%s

Sekunden seit 0 Uhr am 1.1.1970 UTC

%T

Zeit im 24-Stunden-Format: 22:34:01

%V, %W

Kalenderwoche (01 bis 53 oder 00 bis 53)

%w

Tag der Woche (0 bis 6) – wie bei Cron steht 0 für
Sonntag

%x

Landestypisches Datum, etwa 12.04.2007 oder 04/12/07

%X

Landestypische Zeit, etwa 16:01:45

%y, %Y

Jahr, zwei- oder vierstellig

%z, %Z

Numerisch oder CET, CEST etc.

%%

Das Zeichen %

Infos

[1] Syslog: [http://www.infodrom.org/projects/sysklogd/]

[2] Syslog-NG: [http://www.balabit.com/products/syslog-ng/]

[3] Christian Schmitz, “Computer-Tagebuch”:Linux-Magazin 11/03, S. 61

[4] NTP: [http://www.ntp.org]

[5] LPI-Seite mit den Prüfungsinhalten: [http://www1.lpi.org/de/obj_102.html]

Der Autor

Peer Heinlein ist seit über sechs Jahren LPI-Trainer und hat neben dem LPIC-1-Buch bei Open Source Press noch zwei weitere Bücher über Postfix und Snort veröffentlicht.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben