linux:systemprotokolle

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
linux:systemprotokolle [2008/02/21 21:12] stlinux:systemprotokolle [2018/08/21 18:06] (aktuell) – [Systemprotokolle (Logdateien) in Linux (Syslog)] st
Zeile 1: Zeile 1:
 +====== Systemprotokolle (Logdateien) in Linux (Syslog)======
 +
 +[[linux:Linux]] und andere Unix-basierte Systeme glänzen durch ausführliche und anpassbare Systemprotokolle. Zur Fehlerdiagnose sind diese Logs meist die erste Anlaufstelle. Diese Seite basiert auf dem Standard syslog (daemons: syslogd, klogd), es existiert ein verbesserter Nachfolger unter dem Namen [[software:syslog-ng]].
 +
 +Bei modernen Distributionen wird das logging von [[software:systemd]] übernommen und diese Seite ist daher nicht anwendbar.
 +
 +===== Links =====
 +  * [[software:syslog-ng]]
 +  * [[software:rsyslog]]
 +
 +[[http://linuxhelp.blogspot.com/2005/09/system-logging-explained-in-linux.html|System Logging explained in Linux]]
 +
 +===== vorhandene Systemprotokolle im /var/log =====
 +Im Verzeichnis /var/log befinden sich die wichtigen Systemprotokolle.
 +
 +^ Dateiname in /var/log ^ Bedeutung / Quelle ^
 +| aptitude  | |
 +| auth.log  | |
 +|boot  | |
 +|bootstrap.log  | |
 +|btmp  | |
 +|daemon.log  | |
 +|debug  | |
 +|dmesg  | |
 +|dpkg.log  | |
 +|faillog  | |
 +|fsck  | |
 +|kern.log  | Meldungen des Kernels |
 +|lastlog  | |
 +|lpr.log  | |
 +|mail.err  | |
 +|mail.info  | |
 +|mail.log  | |
 +|mail.warn  | |
 +|messages  | |
 +|news  | |
 +|syslog  | Meldungen der Prioritäten warning und error|
 +|user.log  | |
 +|uucp.log  | |
 +|vsftpd.log  | |
 +|wtmp  | |
 +
 +Bei Systemen die nicht gerade erst neuinstalliert wurden, finden sich auch Dateien wie ''syslog.0'' und ''syslog.1.gz'' . Ältere Protokolle werden nach einger gewissen Zeit "rotiert", also zuerst umbenannt (''syslog.0'') und später gepackt (archiviert.
 +
 +Einige Programme ([[apache:Apache]], ...) legen auch Unterverzeichnisse an.
 +
 +
 +===== Grundlagen =====
 +
 +
 +
 +==== Prioritäten ====
 +
 +Die Prioritäten sind nach nach ansteigender Wichtigkeit geordnet.
 +
 +^ Priorität  ^ Bedeutung ^
 +|debug  |Debugging Informationen zu laufenden Prozessen  |
 +|info   |Normale Informationsmeldungen von Programmen  |
 +|notice  |Standardmeldungen, aber wichtiger als nur Informationscharakter  |
 +|warn  |Standardwarungen (das System oder die Ressource konnte z. B. die Aufgabe nicht ausführen)  |
 +|err  |Meldungen bestehen aus Fehlerzuständen  |
 +|crit  |Fatale Fehler  |
 +|alert  |bezeichnet einen ernstzunehmenden Fehler, die sofortige Aufmerksamkeit verlangen  |
 +|emerg  |Notfall, kurz vor einer Kernel-panic (z.B. bei Treiberabsturz) und/oder System nicht länger verfügbar  |
 +
 +:!: Die Aliase "error", "panic", und "warning" sind veraltet.
 +
 +
 +
 +==== Facility ====
 +Eine "Facility" ist eine Einrichtung die einem eigenen Subsystem (Untersystem) entspricht. Es gibt 13 vordefinierte Subsysteme: ''auth, authpriv, cron, daemon, ftp, kern, lpr, mail, mark, news, syslog, user'' und ''uucp''. Zusätzlich kann man noch ''local0'' bis ''local7'' für eigene Programme definieren (wie unten im Beispiel).
 +
 +
 +^ Facility ^ Bedeutung ^
 +|auth| eine Sicherheitsfunktion, die Benutzerauthentifizierung in verschiedenen Diensten wie ftp, login usw verfolg. (Im Wesentlichen verfolgt die auth-Funktion jede Benutzeraktion, die in denen Benutzernamen und ein Passwort verlangt wird, um sich einzuloggen oder die Ressourcen des Zielrechners zu benutzen.)  |
 +|authpriv  | eine Sicherheitsfunktion, die Sicherheits-/Autorisierungmeldungen verfolgt  |
 +|daemon  |verfolgt Systemdämon Meldungen  |
 +|user  | verschiedene user-level Meldungen  |
 +|kern  | verfolgt Kernel Meldungen  |
 +|ftp  | verfolgt Meldungen vom ftp-System  |
 +|cron  | verfolgt Meldungen vom cron-System.  |
 +|lpr  | verfolgt Meldungen des Druckersystems  |
 +|mark  | Sollte man nicht benutzen, zu internen zwecken (Meldung wenn nichts passiert ist)  |
 +|mail  | verfolgt Meldungen des Mail-Systems  |
 +|news  | verfolgt Meldungen des News Systems  |
 +|security  |dasselbe wie auth  |
 +|syslog  | für von Syslog generierte Nachrichten  |
 +|uucp  | verfolgt Meldungen des UUCP Systems  |
 +
 +
 +==== eigenes Log-file ====
 +Standardmäßig wird ins syslog (''/var/log/syslog'') protokolliert, man kann aber eigene Log-Dateien für z.B. für den DHCP-Server anlegen lassen. Dazu muss man grundsätzlich
 +  - den Daemon (Dienst) auf eine Facility konfigurieren (das muss er natürlich unterstützen!)
 +  - syslogd konfigurieren
 +  - und beide Daemons neustarten.
 +
 +Am Beispiel des DHCP-Servers "[[netzwerke:dhcp#konfiguration_von_dhcp3-server_unter_linux|DHCP3]]" konfigurieren wir nun unter [[linux:Linux]] unser eigenes Logfile.
 +
 +Zuerst muss die Zeile <file>  log-facility local7;</file> in der Konfigurationsdatei (''/etc/dhcp3/dhcpd.conf'') eingetragen werden.
 +
 +Für diese „facility“ mit dem Schlüsselwort local7 muss man in der Datei ''/etc/syslog.conf'' einen Eintrag anlegen.
 +<file>
 +local7.*                   /var/log/dhcpd.log
 +</file>
 +Der Stern sorgt dafür, dass Nachrichten mit allen Prioritäten im Log-file gesichert werden. Danach sollte man die Log-Datei mit <code> touch /var/log/dhcpd.log</code> anlegen lassen.
 +
 +Letztendlich muss man den syslog- und DHCP3-Daemon zur Übernahme der Änderungen in der angegebenen Reihefolge neustarten:
 +  - <code>sudo /etc/init.d/sysklogd restart</code>
 +  - <code>sudo /etc/init.d/dhcp3-server restart</code>
 +
 +Die erste Ausgaben in der Log-Datei bezeugen die erfolgreiche Funktion.
 +
 +Siehe ''man syslog.conf'' für weitere Informationen. Die Konfiguration von [[software:syslog-ng#Konfiguration]] sieht natürlich anders aus.
 +
 +
 +
 +===== LogHost =====
 +Als LogHost wird ein spezieller Server bezeichnet, der für andere Rechner die Logdateien führt. Dies kann bei Festplattenlosen Thin-clients oder generell zur Erhöhung der Sicherheit sinnvoll sein. 
 +
 +
 +Eine einzige Zeile in ''/etc/syslog.conf'' reicht:
 +*.* @remote_host
 +Wenn man ganz clever sein will, kann man den remote_host als Dummy aufsetzen und den Verkehr auf dem Weg abhören.
 +
 +Aus Sicherheitsgründen sollte dann aber [[software:syslog-ng]] benutzt werden. Dieser kommuniziert über TCP und kann mit Zertifikaten umgehen. Der originale syslog-daemon schickt die Log-einträge per UDP und der Log-host kann auch nicht die Herkunft verifizieren.
 +
 +
 +==== Links ====
 +  * [[http://linuxhelp.blogspot.com/2005/09/enabling-centralized-logging-in-linux.html|Enabling centralized logging in Linux]]
 +  * [[http://www.oreilly.de/catalog/netsechacksger/chapter/hack59.html|Loghost]]
 +
 +===== logger =====
 +Mit dem Programm logger kann man syslog oder [[software:syslog-ng]] Nachrichten übergeben.
 +
 +  logger TEXT 
 +
 +Zusätzlich kann man mit
 +  * **Kategorie und Priorität** (z.B. user und notice) <code>
 +logger -p user.notice TEXT</code>
 +  * und den **"Tag"** (für einen Dienst) angeben:<code>
 +logger -p user.notice -t TAG TEXT</code>
 +
 +