Zum Inhalt springen

LPIC102/108.2 Systemprotokollierung: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „wikitable“ durch „table table-striped table-hover“
 
(22 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


== Beschreibung ==
== Beschreibung ==
Viele Programme und Linux selbst protokollieren zur Laufzeit Ereignisse, damit ein Administrator in diesen Protokollen Fehler zu finden. Dazu ist es wichtig, die Orte, wo die Protokolle gespeichert sind, zu kennen und die dafür vorgesehenen Konfigurationsdateien.
Wichtige Programme
* rsyslog
* journald


=== Programme zur Protokollierung ===
Die Konfig-Dateien von ''rsyslog'' sind in der ''/etc/rsyslog.conf''
Je nach Distribution gibt es verschiedene Programme/Dienste zur Protokollierung von Ereignissen
* Enthält Regeln für das Logging


{| class="wikitable options big"
Im Verzeichnis ''/var/log'' stehen die ganzen Log-Dateien
|-
* Mit ''less'' oder ''tail -f'' anzeigen
| [[syslogd]] || Erster Logging-Daemon für Linux
* ''logrotate'' verschiebt (rotiert) und komprimiert Logdateien
|-
**Die Konfig-Datei für ''logrotate'' ist die ''/etc/logrotate.conf''
| [[syslog-ng]] || Weiterentwicklung von ''syslogd''
** Logdateien von anderen Dateien sind in der ''/etc/logrotate.d''
|-
* ''journald'' ist Teil des ''systemd'' und kann mit ''journalctl'' aufgerufen werden
| [[rsyslog]] || Standard wesentlicher Distributionen
** Die Konfig-Datei für ''journald'' ist in der ''/etc/systemd/journald.conf''
|-
** Mit ''logger'' kann man Ereignisse in ''syslog'' oder in ''journald'' schreiben
| [[journald]] || Bestandteil von ''[[systemd]]''
|}
 
== rsyslog ==
Konfiguration
* /etc/rsyslog.conf
* /etc/rsyslog.d
 
Besteht aus drei Komponenten: ''facility'', ''level'', ''action''
* ''facility'' legt dabei die Einrichtung fest
* ''level'' den Protokollierungsgrad
* ''action'' wohin das ''facility'' protokollieren soll
 
==Untersuchen von Logdateien==
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 sehr 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 ==
; Protokollierung von Ereignissen zur Fehlerbehebung
Bestandteil von [[systemd]]
* Linux-Kernel
* Werden in ''/run/log/journal/'' untergebracht
* Dienste
* Die Protokolle können mit ''journalctl'' angezeigt werden
* Programme


=== journalctl ===
; Wissensgebiete
{|class="wikitable options big"
{| class="table table-striped table-hover options big"
! Option !! Bedeutung
|-
|-
| -f || verhält sich so wie tail -f
| Orte || Verzeichnisse, in denen Protokolle gespeichert werden
|-
|-
| -e || lässt journalctl ans Ende des Journals springen
| Programme || Protokolle auswerten
|-
|-
| -n || verhält sich so wie tail -n
| Konfigurationsdateien || Protokollierung steuern
|-
| -r || zeigt die neuesten Einträge
|-
| -b || zeigt nur die Einträge seit dem letzten Systemstart
|-
| --since "Datum Uhrzeit" --until "Datum Uhrzeit" || zeigt Einträge in einem bestimmten Zeitraum
|-
| -u || zeigt nur Einträge eines bestimmten Diensts
|-
| -p err || zeigt nur Fehlereinträge
|}
|}


=== Konfiguration ===
; Programme und Dienste zur Protokollierung von Ereignissen
; /etc/systemd/journald.conf
{| class="table table-striped table-hover options big"
{| class="wikitable options big"
|-
|-
! Direktive !! Beschreibung
| [[syslogd]] || Ursprünglicher [[Linux]]-[[Logging]]-[[Daemon]]
|-
|-
| Storage || legt fest, wie die Journale gespeichert werden
| [[syslog-ng]] || Weiterentwicklung von [[syslogd]]
* volatile: wird lediglich im RAM gespeichert
* persistent: Verzeichnis ''/var/log/journal'' wird automatisch erstellt und dort gespeichert
* compress: Große Objekte werden komprimiert, bevor sie gespeichert werden
|-
|-
| ForwardToSyslog || Leitet die Ereignisse zusätzlich an syslog weiter
| [[rsyslog]] || Standard wesentlicher Distributionen
|-
|-
| SplitMode || Legt separate Journale pro User an
| [[journald]] || Bestandteil von ''[[systemd]]''
|-
| SystemMaxUse || Maximale Größe des Journals festlegen (Gegenstück wäre ''SystemKeepFree'')
|-
| MaxFileSec || legt die Zeit fest, für die ein einzelner Journaleintrag gespeichert werden soll
|}
|}


=== Pflege ===
== Logdateien untersuchen ==
; Journalgröße prüfen
[[Logdateien untersuchen]]
journalctl --disk-usage


==logrotate==
[[Logrotate]]


; Journalgröße verringern
== systemd-journald ==
Ältere Einträge aus dem Journal entfernen
[[Systemd/Journald]]
journalctl --vacuum-size


== Selbst Ereignisse loggen ==
== 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.
[[Logger]]
 
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''
 
==Zusammenfassung==
*Wichtige Programme sind ''rsyslog'' und ''journald''
*Die Konfig-Dateien von ''rsyslog'' sind in der ''/etc/rsyslog.conf''
**Enthält Regeln für das Logging
*Im Verzeichnis ''/var/log'' stehen die ganzen Log-Dateien
**Mit ''less'' oder ''tail -f'' anzeigen
*''logrotate'' verschiebt (rotiert) und komprimiert Logdateien
**Die Konfig-Datei für ''logrotate'' ist die ''/etc/logrotate.conf''
**Logdateien von anderen Dateien sind in der ''/etc/logrotate.d''
*''journald'' ist Teil des ''systemd'' und kann mit ''journalctl'' aufgerufen werden
**Die Konfig-Datei für ''journald'' ist in der ''/etc/systemd/journald.conf''
**Mit ''logger'' kann man Ereignisse in ''syslog'' oder in ''journald'' schreiben
 
== Links ==
# Harald Maaßen: ''LPIC-1'', Rheinwerk-Verlag, 5.Auflage, 2018


[[Kategorie:Linux/LPIC/102]]
[[Kategorie:Linux/LPIC/102]]
[[Kategorie:Linux/Logging]]
[[Kategorie:Linux/Logging]]
[[Kategorie:Journald]]
[[Kategorie:Journald]]

Aktuelle Version vom 29. Juli 2026, 11:01 Uhr

LPIC102/108.2 Systemprotokollierung

Beschreibung

Wichtige Programme

  • rsyslog
  • journald

Die Konfig-Dateien von rsyslog sind in der /etc/rsyslog.conf

  • Enthält Regeln für das Logging

Im Verzeichnis /var/log stehen die ganzen Log-Dateien

  • Mit less oder tail -f anzeigen
  • logrotate verschiebt (rotiert) und komprimiert Logdateien
    • Die Konfig-Datei für logrotate ist die /etc/logrotate.conf
    • Logdateien von anderen Dateien sind in der /etc/logrotate.d
  • journald ist Teil des systemd und kann mit journalctl aufgerufen werden
    • Die Konfig-Datei für journald ist in der /etc/systemd/journald.conf
    • Mit logger kann man Ereignisse in syslog oder in journald schreiben
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

Logdateien untersuchen

Logdateien untersuchen

logrotate

Logrotate

systemd-journald

Systemd/Journald

Selbst Ereignisse loggen

Logger