![]() |
|
||||||||||||||||||
|
|||||||||||||||||||
|
|||||||||||||||||||
|
||
|
TFT Monitor bei
Mercateo kaufen.
Neues Netbook? Ein Preisvergleich lohnt sich. Bei uns finden sie Notebooks, PDAs und Drucker mit Testberichten und Tipps. Diamant Buchhaltungssoftware – transparent und detailliert auch für die Konzernbuchhaltung. Günstige Shareware Programme als direkte Downloads im Software Portal. Bis zu 70% sparen durch Preisvergleich. |
||
|
Das Verzeichnis /var/log ist die Sammelstelle der Protokoll- und Log-Dateien, die den Administrator über jeden Schritt der Benutzer unterrichten.
So verrät die Datei /var/log/messages auf die Sekunde genau, welcher User sich mit dem Befehl su einen Zugang als root erschleichen, oder mit dem Programm sudo eine Anwendung starten wollte, zu der er nicht berechtigt war:
root:~ # less /var/log/messages Aug 15 20:25:05 comone su: FAILED SU (to root) tux on /dev/pts/1 Aug 15 20:26:11 comone sudo: tux : 3 incorrect password attempts ; TTY=pts/1 ; PWD=/home/tux ; USER=root ; COMMAND=/usr/sbin/fetchnews -vvv
Freilich entdecken Sie in diesem Verzeichnis noch weitere Einträge. In der Datei /var/log/mail finden Sie die Meldungen Ihres Mail-Systems, und die Datei warn zeigt Ihnen, bei einigen Distributionen, die Lock-Files und fehlerhaften Prozesse. Hier treffen Sie auch unseren User tux wieder, beim vergeblichen Versuch, sudo zu starten.
Aber woher kommen diese Log-Dateien und wer schreibt Sie? Das Log-Buch erstellt der Daemon syslogd für Sie. Er lauscht im Hintergrund auf die Meldungen der verschiedenen Prozesse, die in Ihrem System arbeiten, und schreibt sie in Logfiles oder auf den Bildschirm einiger ausgewählter Benutzer.
Statten wir dem Daemon syslogd einen kurzen Besuch ab und schauen, wie er konfiguriert wird.
Der Ort, an dem Sie syslogd konfigurieren, ist die Datei /etc/syslogd.conf. Eine Zeile in der Konfigurationsdatei setzt sich aus verschiedenen Parametern zusammen, die in den Manual-Seiten von syslogd facility, priority und action genannt werden. Jede dieser Zeilen folgt dem Muster:
facility.priority action
Durch diese Einstellungen liest syslogd, aus welcher Ecke Ihres Rechner eine Meldung kommt (facility), wie die Dringlichkeit dieser Nachricht zu bewerten ist (priority) und wohin die Ausgabe notiert wird (action). Damit wir an dieser Stelle nicht im Abstrakten verharren, sehen wir uns eine Zeile aus der Datei /etc/syslogd.conf an:
kern.warning;*.err;authpriv.none /dev/tty10
Alle Nachrichten, mit dem Kernel als Absender und einer Dringlichkeit von warning oder höher, schreibt syslogd nun in die Gerätedatei /dev/tty10, die Sie auf der Textkonsole mit [Alt]+[F10] einsehen können. Dort landen auch alle Meldungen der Dringlichkeit err (für error) oder höher, außer den Sicherheits- und Autorisations-Meldungen (authpriv.none).
Verschiedene facility.priority-Kombinationen dürfen durchaus in einer Zeile stehen, wenn Sie sie, wie in unserem Beispiel, durch das Semikolon vorneinander trennen. Auch dem Einsatz des Asterisk * als Joker steht nichts im Wege, gleichgültig in welchem Parameter Sie das Freizeichen einsetzen:
*.* -/var/log/allmsg
Diese Zeile veranlasst syslogd, alle Meldungen mit jeder Dringlichkeit in die Datei /var/log/allmsg zu schreiben. Das Minuszeichen vor dem Pfad des Logfiles schaltet die Synchronisation des Dateisystems ab, die nach jedem Eintrag des syslogd startet. Die Synchronisation ist ein wichtiger Teil des Sicherheitskonzeptes, damit selbst nach einem Systemabsturz die Log-Dateien auf dem Stand vor der Katastrophe sind. Sie sollten die Option mit Bedacht und nur bei Dateien mit geringer Priorität anwenden.
Damit syslogd den Benutzern am Rechner sofort alle systembedrohlichen Nachrichten auf die Bildschirme wirft, setzen Sie das Jokerzeichen * ebenfalls für den Parameter action ein:
*.=alert *
In unserem neuen Eintrag ist das Gleichheitszeichen = als weitere Möglichkeit aufgetaucht. Mit dieser Option leitet syslogd ausschließlich Meldungen der Dringlichkeitsstufe alert weiter. Ohne den Einsatz des Gleichheitszeichens würde die Regel für Meldungen der Ebene alert und darüber gelten. Natürlich richtet syslogd auch an bestimmte Benutzer eine Nachricht aus:
mail.* root,mailmaster
Alle Meldungen, die von Mail-System herrühren, leitet syslogd an den Administrator root und den User mailmaster weiter. Die Meldungen müssen jedoch nicht innerhalb eines Rechners bleiben. In einem Netzwerk senden die syslogd-Daemonen der einzelnen Plätze ihre Nachrichten auch an den syslogd eines anderen Rechners, wenn Sie den Rechnernamen definieren:
*.=warning;*.=err @numberone
Mit dieser Konfiguration schickt der syslogd des lokalen Rechners alle Nachrichten der genannten Dringlichkeitsstufen an den syslogd des Rechners numberone.
Wie staffeln sich die Prioritäten der Meldungen, und wie sehen die Stichworte der facility-Parameter aus, an denen syslogd die Herkunft der Nachrichten ausmacht? Die Tabelle 1 liefert Ihnen eine Übersicht der Dringlichkeitsstufen in fallender Wichtigkeit, und Tabelle 2 listet die Schlüsselwörter der Herkunft auf.
Weitere Beispiele zur Konfiguration gelangen durch den Befehl man syslog.conf zur Ausgabe im xterm oder der Textkonsole und können dort von Ihnen eingesehen werden.
| Tabelle 1: Dringlichkeit der Meldungen | |
| emerg | Die letzte Meldung, denn Ihr System ist hinüber |
| alert | Ihr Eingreifen ist dringend erforderlich |
| crit | Eine kritische Nachricht |
| err | Fehlermeldungen aus dem Systembetrieb |
| warning | Warnungungen aus dem Systembetrieb |
| notice | Bedeutsamere Meldungen aus dem normalen Systembetrieb |
| info | Protokolle des normalen Systembetriebs |
| debug | Debuginformationen bei einer Fehlersuche |
| none | Schließt den vorangehenden facility-Parameter von der Regel aus |
| Tabelle 2: Herkunft der Meldungen | |
| auth | Nachrichten der Sicherheit und Autorisation |
| authpriv | Vertrauliche Sicherheitsmeldungen |
| cron | Meldungen der Daemonen cron und at |
| daemon | Nachrichten anderer System-Daemonen |
| kern | Systemnachrichten vom Kernel |
| local0-local7 | reserviert zur lokalen Verwendung |
| lpr | Nachrichten vom Drucker-System |
| Meldungen vom Mail-System | |
| news | Mitteilungen vom News-System |
| syslog | Interne, von syslogd erzeugte Nachrichten |
| user | Meldungen der Anwenderprogramme |
| uucp | Nachrichten vom UUCP-System |
Der syslogd schreibt und schreibt, und er ist dabei nicht das einzige Tool, das seine Logfiles im Verzeichnis /var/log/ anlegt. Selbst unscheinbare Programme wie der SMS-Pager yaps hinterlassen dort ihre Spuren. Um den Ballast riesiger Log-Dateien nicht händisch zu entsorgen, brauchen Sie die Unterstützung eines Tools, das diese Systemnachrichten automatisch archiviert oder löscht.
Die Nürnberger Distribution SuSE 7.2 löst dieses Problem mit dem cron-Daemon, der Systemkonfiguration /etc/rc.config und der Datei /etc/logfiles. Andere Distributionen wie Red Hat oder Mandrake bevorzugen das Programm logrotate für diesen Zweck. Mit beiden Varianten beschäftigen wir uns in den nächsten Abschnitten. Lassen wir der Logfile-Alternative von SuSE den Vortritt.
Das Skript aaa_base_rotate_logs im Verzeichnis /etc/cron.daily verknüpft zwei Fäden miteinander: Zum einen die Variable MAX_DAYS_FOR_LOG_FILES der Datei /etc/rc.config, zum anderen die Datei /etc/logfiles. Einmal am Tag führt der cron-Daemon das Skript aaa_base_rotate_logs aus und bearbeitet auf diese Weise die Log-Dateien des Verzeichnisses /var/log.
Kümmern wir uns zunächst um die Datei /etc/logfiles. In dieser Datei stehen, Zeile um Zeile, alle Logfiles, die das Skript aaa_base_rotate_logs auf ihre Größe überprüft:
/var/log/messages +4096k 640 root.root
Die erste Spalte jeder Zeile nennt dem Skript den Namen des Logfiles, die zweiten Spalte verrät die maximale Größe, die die Datei nicht überschreiten darf. In der dritten Spalte stehen die Zugriffsrechte, und in der vierten Spalte findet das Skript den Eigentümer und die Gruppe der Log-Datei.
Wenn der syslogd sehr fleißig ist, dann wächst die Datei /var/log/messages recht bald über ihre vorgeschriebene Größe hinaus. Im nächsten Durchlauf des cron ruft ihr Wachstum das Skript aaa_base_rotate_logs auf den Plan. Mit dem Programm gzip sorgt das Skript für eine Komprimierung der Datei, an die es das aktuellen Datum und die Endung .gz hängt:
/var/log/messages-20010804.gz
Damit beendet das Skript seine Arbeit jedoch nicht. Durch die Variable MAX_DAYS_FOR_LOG_FILES liest es, nach welcher Zeit eine komprimierte Log-Datei gelöscht werden soll.
Die zentrale Konfigurationsdatei /etc/rc.config, in der Sie die Variable finden, wird von zahlreichen Skripten ausgewertet. Die Datei editiert sich für einen Einsteiger nicht leicht und sollte über die Programme Yast oder Yast2 mit Inhalt gefüttert werden. Um eines der Programme in Anspruch zu nehmen, melden Sie sich als root auf Ihrem System an.
Sie erreichen die Variable MAX_DAYS_FOR_LOG_FILES mit Yast über die Schritte Administration des Systems und Konfigurationsdatei verändern. Tippen Sie In die Eingabemaske nun die gewünschte Zeit, in der Sie die komprimierten Logfiles archivieren möchten. Nach dem Ablauf dieser Frist löscht das cron-Skript aaa_base_rotate_logs die Dateien in zeitlicher Folge. Das Ergebnis der Komprimierung und Archivierung sendet Ihnen der Cron-Daemon an Ihre Mailadresse als Administrator des Systems.
Etwas eleganter als das SuSE-Skript tritt das Tool logrotate auf, das ebenfalls mit dem cron-Daemon Hand in Hand arbeitet. Der Befehl man logrotate informiert Sie über die reichhaltigen Möglichkeiten der Konfiguration, die wir im Rahmen dieses Artikel leider nur anschneiden können.
Die Konfiguration des Programms erstellen Sie in der Datei /etc/logrotate.conf. Das Skript, mit dem cron täglich logrotate startet, liegt im Pfad /etc/cron.daily/logrotate. Und schließlich gibt es noch das Verzeichnis /etc/logrotate.d. Die Dateien innerhalb dieses Verzeichnisses überschreiben oder verfeinern die Grundeinstellungen der Konfigurationsdatei /etc/logrotate.conf.
Um auch hier Licht in das Dickicht der Verzeichnisse zu tragen, beginnen wir unsere Reise in der Hauptkonfiguration in der Datei /etc/logrotate.conf.
Der erste Eintrag weist logrotate an, die Logfiles einmal pro Woche zu rotieren:
# Wöchentliche Rotation weekly
Durch die Zeile weekly komprimiert das Programm nach einer Woche die Beispiel-Datei /var/log/dat und nennt sie /var/log/dat1.gz, bevor es eine frische Datei mit dem Namen dat im Verzeichnis /var/log/ erstellt. In der Woche darauf verwandelt es die Datei /var/log/dat1.gz in /var/log/dat2.gz, bis irgendwann der Zeitpunkt zum Löschen der archivierten Dateien kommt:
# Haltbarkeit der archivierten Logs: # Acht Wochen rotate 8
Fehlermeldungen im Programmablauf schickt logrotate direkt an den Administrator, wenn Sie möchten:
# Fehlermeldungen an den root errors root
Mit einer weiteren Anweisung erstellt das Tool eine neue Log-Datei, wenn es das alte Logfile komprimiert hat:
# Erstellt ein neues Logfile create
Kein Linux/Unix-Programm handelt eigenmächtig. Geben Sie logrotate deshalb die Erlaubnis, die archivierten Datein zu komprimieren:
# Logfiles komprimieren compress
Wenn Sie eine Ablage für Ihr Log-Archiv wünschen, dann verschiebt logrotate die komprimierten Dateien in ein Unterverzeichnis des Pfades /var/log:
# Wo soll das Archiv sein? olddir /var/log/OLD
Einige Programme, so der Mailserver exim, erstellen bei Ihrer Installation eine logrotate-Konfiguration im Verzeichnis /etc/logrotate.d. Der include-Befehl der folgenden Zeile bindet das externe Verzeichnis in die Arbeit des logrotate ein:
# Externe Konfigurationen include /etc/logrotate.d
Diese eingebundenen Dateien überschreiben die Angaben der globalen Konfigurationsdatei /etc/logrotate.conf und lassen flexible Lösungen zu. Sehen wir uns so eine Ausnahme-Konfiguration einmal aus der Nähe an:
/var/log/exim/mainlog {
create 640 mail mail
mail tux@nordpol.fi
postrotate
/usr/bin/killall -HUP exim || true
endscript
}
Die Konfiguration dieser Anweisung beschäftigt sich mit der Log-Datei /var/log/exim/mainlog. In die geschweiften Klammern eingeschlossen, finden Sie die unterschiedlichen Kommandos. Durch die Zeile
create 640 mail mailerstellt logrotate eine neue Datei /var/log/exim/mainlog mit den Zugriffsbits 640, dem Eigentümer mail und der Gruppe mail. Der Eintrag
mail tux@nordpol.fi
versendet die älteste Log-Datei an die Mailadresse tux@nordpol.fi und löscht sie aus dem heimischen Archiv. Zwischen den Zeilen postrotate und endscript steht es Ihnen frei, ein Kommando zu bestimmen, das nach dem Rotieren ausgeführt wird. In unserem Fall wird der Mailserver exim in seinem Wirken unterbrochen, damit der Administrator die Log-Datei auf Fehlermeldungen hin untersuchen kann. Gleichgültig, was er dort finden mag: Mit den vorgestellten Tools und Programmen entdeckt er es schneller und effektiver - in einem schlanken Archiv. (agr)
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 |
© 2010 Linux New Media AG
[Linux-Magazin]
[LinuxUser]
[EasyLinux]
[Linux-Community]
[Ubuntu User]
[Linux Technical Review]
[Linux Magazine]
[Linux Pro Magazine]
[Ubuntu User]
[EasyLinux Poland]
[Linux Magazine Poland]
[Linux Magazine Brasil]
[EasyLinux Brasil]
[Linux Magazine Spain]