Logs in Debian / journalctl ist unübersichtlich

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
dirk11
Beiträge: 2818
Registriert: 02.07.2013 11:47:01

Logs in Debian / journalctl ist unübersichtlich

Beitrag von dirk11 » 03.02.2024 11:43:17

Hi Leute,

in meinem openvpn-thread kam ja der Hinweis, dass ich mit
journalctl | grep openvpn
im systemd-log suchen soll.
Dabei ist mir zum wiederholten Mal aufgefallen, dass mir das ursprüngliche logging unter /var/log viel besser gefällt, weil ich es für strukturierter halte und weil es im Klartext ist. Viele Dinge ergeben sich erst aus dem Kontext, so kann ich in einer syslog z.B. im Editor/Viewer auch mal eben hochscrollen und mit den Meldungen vom Vortag vergleichen. Wie man so mit journalctl arbeiten soll, ist mir ein Rätsel.

Jetzt ist es aber durchaus auch sinnvoll, in journalctl nachzusehen, das ist mir klar. Nur ist das keine Klartext-Datei und es hat den Nachteil, dass zwar vorne an den Meldungen ein Datum steht, aber kein Jahr.
Der Befehl journalctl|grep openvpn ist bei mir dann auch gleich mehrere Minuten(!) durchgelaufen und hat gefühlt alles dargestellt, was in den letzten 10 Jahren zu openvpn geloggt wurde, und da das Laptop nicht gerade aktuell ist, war das auch entsprechend schleppend.

Einfache Frage:
Geht das besser?
Kann ich Meldungen mit Jahreszahl sehen? Kann ich einschränken a la "nur die letzten 24h anzeigen"?

niemand
Beiträge: 500
Registriert: 22.12.2023 16:35:53
Kontaktdaten:

Re: Logs in Debian / journalctl ist unübersichtlich

Beitrag von niemand » 03.02.2024 11:49:47

Die Fragen zuerst:
dirk11 hat geschrieben: ↑ zum Beitrag ↑
03.02.2024 11:43:17
Kann ich Meldungen mit Jahreszahl sehen? Kann ich einschränken a la "nur die letzten 24h anzeigen"?
Mit vollem Datum ausgeben etwa via ›-o short-full‹ und letzte 24h mit ›--since -24h‹ – frei kombinierbar, etwa ›journalctl -o short-full --since -24h

Edit, ein wenig mehr Kontext:
dirk11 hat geschrieben: ↑ zum Beitrag ↑
03.02.2024 11:43:17
Dabei ist mir zum wiederholten Mal aufgefallen, dass mir das ursprüngliche logging unter /var/log viel besser gefällt, weil ich es für strukturierter halte und weil es im Klartext ist. Viele Dinge ergeben sich erst aus dem Kontext, so kann ich in einer syslog z.B. im Editor/Viewer auch mal eben hochscrollen und mit den Meldungen vom Vortag vergleichen. Wie man so mit journalctl arbeiten soll, ist mir ein Rätsel.
Ein einfaches Aufrufen ohne Parameter gibt das Journal im Grunde genauso aus, wie damals™ das syslog dargestellt wurde. Man sollte es vielleicht zeitlich einschränken, etwa auf die letzten beiden Boots mit ›-b 1‹, weil im Gegensatz zum syslog das Journal per default nicht rotiert wird. Insofern sehe zumindest das Rätsel, wie man damit arbeiten soll, nicht: wenn man mag, kann man es genau so handhaben, wie man das syslog gehandhabt hat.

Wenn man die vielen zusätzlichen Möglichkeiten (Auswahl, Filterung, Darstellung, Suche, …) benutzen möchte, empfiehlt sich unbedingt ein Blick in die Manpage von journalctl. Gerade so Sachen wie „gib mal sämtliche Logeinträge von Programm X im Zeitraum Y-Z“ oder „gib mal alle Fehler von allen Programmen seit dem letzten Boot – und zwar nur die Fehler“ gehen damit dann doch viel besser, als in einer Plaintext-Datei umherzugreppen, in der alles stumpf seinen Kram abgeladen hat.
Zuletzt geändert von niemand am 03.02.2024 12:00:51, insgesamt 1-mal geändert.
„I fought in the Vim-Emacs-War.“ Quelle

dirk11
Beiträge: 2818
Registriert: 02.07.2013 11:47:01

Re: Logs in Debian / journalctl ist unübersichtlich

Beitrag von dirk11 » 03.02.2024 11:58:19

Danke! Wie umständlich... :roll:

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: Logs in Debian / journalctl ist unübersichtlich

Beitrag von MSfree » 03.02.2024 12:02:01

dirk11 hat geschrieben: ↑ zum Beitrag ↑
03.02.2024 11:43:17
Dabei ist mir zum wiederholten Mal aufgefallen, dass mir das ursprüngliche logging unter /var/log viel besser gefällt, weil ich es für strukturierter halte und weil es im Klartext ist.
Du kannst das alte Log wieder einrichten, indem du meinen Beitrag liest:
viewtopic.php?p=1337853#p1337853

niemand
Beiträge: 500
Registriert: 22.12.2023 16:35:53
Kontaktdaten:

Re: Logs in Debian / journalctl ist unübersichtlich

Beitrag von niemand » 03.02.2024 12:02:57

dirk11 hat geschrieben: ↑ zum Beitrag ↑
03.02.2024 11:58:19
Wie umständlich.
Findest du? Wenn du’s häufiger brauchst, leg doch ’nen Alias an, etwa: ›alias zeigmirmeinlogaufdiealtmodischeungeordneteweisedamitichumständlichdringreppenkann='journalctl -o short-full' --since -1w‹ ;)
Zuletzt geändert von niemand am 03.02.2024 12:04:46, insgesamt 1-mal geändert.
„I fought in the Vim-Emacs-War.“ Quelle

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Logs in Debian / journalctl ist unübersichtlich

Beitrag von JTH » 03.02.2024 12:04:40

(Die anderen beiden waren schneller, sollte trotzdem noch was neues dabei sein hier:)

Ich werf mal ein paar Antworten hin, die kann man natürlich auch kombinieren:

Das Durchsuchen würde ich eher journalctl selbst per --grep (-g) überlassen. Das erspart es journalctl, erst alle Zeilen auszugeben (I/O ist „teuer“) und sie erst nachträglich mit grep zu filtern (das kann bei sehr, sehr vielen Zeilen durchaus einen Unterschied machen):

Code: Alles auswählen

journalctl -g openvpn
Wenn es um einen speziellen Service geht, kann man das außerdem explizit auswählen:

Code: Alles auswählen

journalctl -u openvpn.service
Bei nem Service kann man das .service sogar weglassen.


Nur die Meldungen aus einem bestimmten Zeitraum ausgeben geht mit --since und --until (-S bzw. -U). Also z.B.

Code: Alles auswählen

journalctl -Stoday
für nur die Meldungen von heute.


Man kann auch nur die Meldungen seit dem letzten Boot anzeigen mit --boot (-b). Für die Meldungen seit dem letzten Hochfahren (Kurzform):

Code: Alles auswählen

journalctl -b
Für den vorherigen Bootzyklus

Code: Alles auswählen

journalctl -b-1
usw.


Ein Datumsformat z.B. mit Jahr bekommst du mit dem Format short-full und der Option --output (-o):

Code: Alles auswählen

journalctl -oshort-full

dirk11 hat geschrieben: ↑ zum Beitrag ↑
03.02.2024 11:43:17
so kann ich in einer syslog z.B. im Editor/Viewer auch mal eben hochscrollen und mit den Meldungen vom Vortag vergleichen.
Selbst Schuld :wink: Wenn du die Meldungen durch grep schickst, müsstest du selbst noch einen Pager am Ende anhängen:

Code: Alles auswählen

journalctl | grep openvpn | less
Wie immer, wenn man mal durch grep-Ergebnisse scrollen will.

Wenn du aber journalctl -g benutzt, kümmert sich journalctl um einen Pager, in dem du wie gewohnt Pfeiltasten, Bild auf/Bild ab, Strg+F/Strg+B, Strg+E/Strg+Y etc. zum Scrollen benutzen kannst.


dirk11 hat geschrieben: ↑ zum Beitrag ↑
03.02.2024 11:58:19
Danke! Wie umständlich... :roll:
Da konter ich mal: Wie würdest du denn ausm syslog mit nur 6 extra Zeichen (-S-24h) 5 extra Zeichen (-S-1d) die Meldungen der letzten 24h raussuchen? :wink:
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
TRex
Moderator
Beiträge: 8086
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Logs in Debian / journalctl ist unübersichtlich

Beitrag von TRex » 03.02.2024 12:05:40

Warum hat eigentlich noch keiner erwähnt, dass journal | grep foobar irgendwie suboptimal ist?

Wenn du von einem bestimmten Service (=Unit) die logs willst, geht das mit

Code: Alles auswählen

# journalctl -u sshd
Die nächsten meistgenutzten Parameter sind --since=yesterday, -e (zum Ende des Logs springen), -f (follow, wie less).

edit: JTH war schneller.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

dirk11
Beiträge: 2818
Registriert: 02.07.2013 11:47:01

Re: Logs in Debian / journalctl ist unübersichtlich

Beitrag von dirk11 » 03.02.2024 12:26:02

MSfree hat geschrieben: ↑ zum Beitrag ↑
03.02.2024 12:02:01
Du kannst das alte Log wieder einrichten, indem du meinen Beitrag liest:
viewtopic.php?p=1337853#p1337853
Oh, sehr geil. Kann man auch beides gleichzeitig, also in alt und neu gleichzeitig loggen?

So könnte ich mich langsam umstellen und an den "new way" gewöhnen.

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: Logs in Debian / journalctl ist unübersichtlich

Beitrag von MSfree » 03.02.2024 12:38:35

dirk11 hat geschrieben: ↑ zum Beitrag ↑
03.02.2024 12:26:02
Oh, sehr geil. Kann man auch beides gleichzeitig, also in alt und neu gleichzeitig loggen?
Ja, der Parameter

Code: Alles auswählen

Storage=none
schaltet die Speicherung in /var/log/journal komplett aus. Mögliche Werte für den Parameter sind
volatile, persistent, auto und none. Details, siehe

Code: Alles auswählen

man journald.conf
So könnte ich mich langsam umstellen und an den "new way" gewöhnen.
Doppelt loggen kostet Platz, zumal die Journals ohnehin schon deutlich größer sind als das alte syslog. Du solltest halt schauen, daß du Logs regelmässig mit Debianlogrotate rotierst und die maximale Größe des Journals begrenzt, sonst kann dir /var, wenn du es auch einer eigenen Partition haben solltest, verstopfen.

dirk11
Beiträge: 2818
Registriert: 02.07.2013 11:47:01

Re: Logs in Debian / journalctl ist unübersichtlich

Beitrag von dirk11 » 03.02.2024 18:18:35

MSfree hat geschrieben: ↑ zum Beitrag ↑
03.02.2024 12:38:35
dirk11 hat geschrieben: ↑ zum Beitrag ↑
03.02.2024 12:26:02
Oh, sehr geil. Kann man auch beides gleichzeitig, also in alt und neu gleichzeitig loggen?
Ja, der Parameter

Code: Alles auswählen

Storage=none
schaltet die Speicherung in /var/log/journal komplett aus. Mögliche Werte für den Parameter sind
volatile, persistent, auto und none. Details, siehe

Code: Alles auswählen

man journald.conf
Platz ist bis jetzt kein Problem. ABER aus man journalctl.conf:

Code: Alles auswählen

If forwarding to syslog is enabled but nothing reads messages from the socket, forwarding to syslog has no effect.
By default, only forwarding to syslog and wall is enabled.
Da das alte System bei mir noch aktiv ist, hätte ich eigentlich alle openvpn-Meldungen auch in /var/log/$IRGENDWAS finden müssen, zumindest jedoch in syslog. Dort steht aber kaum was (es wird aber aktuell bedient, z.B. von dbus-daemon und systemd selbst), und die Meldungen, die ich zu openvpn in journalctl gefunden habe schon gar nicht. Irgendwas ist da also noch nicht korrekt, obwohl laut manpage per default auch logging in syslog aktiv ist.

Antworten