LPIC102/108.2 Systemprotokollierung
LPIC102/108.2 Systemprotokollierung
Beschreibung
- Protokollierung von Ereignissen zur Fehlerbehebung
- Linux-Kernel
- Dienste
- Programme
- Wissensgebiete
| Orte | Verzeichnisse, in denen Protokolle gespeichert werden |
| Programme | Protokolle auswerten |
| Konfigurationsdateien | Protokollierung steuern |
- Programme und Dienste zur Protokollierung von Ereignissen
| syslogd | Ursprünglicher Linux-Logging-Daemon |
| syslog-ng | Weiterentwicklung von syslogd |
| rsyslog | Standard wesentlicher Distributionen |
| journald | Bestandteil von systemd |
rsyslog
Logdateien untersuchen
Wenn Fehler auftreten, ist das Verzeichnis /var/log/ die erste Anlaufstelle. Mit dem Pager less können sie eine Logdatei untersuchen bspw.:
sudo less /var/log/syslog
Bei großen Logdateien ist eher tail die richtige Wahl, da es die letzten zehn Zeilen einer Datei anzeigt. Mit der Option -f wird die Datei samt Änderungen im laufenden Betrieb angezeigt
sudo tail -f /var/log/syslog
Wenn sie in einer Logdatei nach einem bestimmten Ereignistyp filtern wollen, empfiehlt sich grep dafür
sudo grep sshd /var/log/syslog | grep invalid | less
In diesem Beispiel werden die Einträge gesucht, die der sshd eingetragen hat. Anschließend filtert er, die ein invalid haben und am Ende übergibt er sie weiter an less.
logrotate
logrotate rotiert und komprimiert Logdateien, damit diese nicht unkontrolliert anwachsen.
- Die Konfig-Dateien sind: /etc/logrotate.conf und /etc/logrotate.d
- Nach Ablauf eines Intervalls verschiebt er die Datei, indem er die Dateiendung .1 hinten anstellt, beim nächsten Intervall wird die zuvor verschobene Datei wieder umbenannt und diesmal auch noch komprimiert, sodass hinten ein .2.gz steht.
- Wie viele alte Logfiles und das Intervall kann man in der logrotate.conf ändern
So könnte eine logrotate.conf aussehen:
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0660 root utmp
rotate 1
}
Dateien in logrotate.d sind nach dem gleichen Muster aufgebaut
root@alex:/etc/logrotate.d# cat apt
/var/log/apt/term.log {
rotate 12
monthly
compress
missingok
notifempty
}
/var/log/apt/history.log {
rotate 12
monthly
compress
missingok
notifempty
}
logrotate sollte am besten täglich ausgeführt werden. Hierfür eignet sich cron.
systemd-journald
Selbst Ereignisse loggen
Mit logger kann man ein Ereignis selbst erstellen. Wenn man ein Skript erstellt hat, was eigenständig was durchführt, kann man mit logger einen Eintrag ins Syslog erstellen.
Ein Blick in den Syslog zeigt das Ergebnis:
# logger -t Syslogger "Systemlogbuch" # tail -1 /var/log/syslog Jul 12 10:48:54 user Syslogger: Systemlogbuch
logger schreibt auch in den journald
Für den journald gibt es auch ein eigenes Werkzeug:
# echo "alles läuft gut" | systemd-cat -p info # journalctl -e Jul 12 10:50:48 user unknown[9183]: alles läuft gut
- Die Option -t bei logger und systemd-cat dient als Identifikation der protokollierenden Einrichtung.
- Die Option -p gibt die Priorität des Eintrags an.
- Diese wären emerg, alert, crit, err, warning, notice, info und debug