Journald zu externem Syslog

SteffenDE

Active Member
Feb 10, 2021
34
7
28
54
Hi,

nach der Umstellung mit Debian 12 auf Journald frage ich mich wie man ordentlich die Übertragung des Loggings zu einem externen Syslog Server konfiguriert ohne alle Logs doppelt zu schreiben.

Hat jemand eine Anleitung wie man das unter PVE 8.3.x ordentlich einrichtet?

Danke.
 
Vielen Dank, es geht mir nicht darum dass lokal gar nicht mehr geschrieben wird. Ich hatte nur Anleitungen gefunden da muss alles doppelt für Journald und Rsyslog geschrieben werden, damit man es auch nach extern bekommt. Das wäre natürlich blöd.

Wenn ich dein HowTo verstehe werden dort ja die Daten via http an einen zentralen Journald Server geschickt, ich würde aber gerne klassisches Syslog nutzen, da ich dann alles an ein zentrales NAS schicken kann was als Syslog-Server fungiert.
 
Wenn ich dein HowTo verstehe werden dort ja die Daten via http an einen zentralen Journald Server geschickt, ich würde aber gerne klassisches Syslog nutzen, da ich dann alles an ein zentrales NAS schicken kann was als Syslog-Server fungiert.

Für Syslog selbst habe ich keine Anleitung, aber der zweite Link ist für Rsyslog. Das ist sehr ähnlich und ist auch mittlerweile Default.
 
RSyslog ist gar nicht mehr installiert, da ja ab Debian 12 Journald benutzt wird. Selbst wenn ich es jetzt installiere landen die ganzen Loggings nicht automatisch auch dort um Sie dann weiterzugeben.
 
RSyslog ist gar nicht mehr installiert, da ja ab Debian 12 Journald benutzt wird.

Gerade mal ein frisches Proxmox angesehen. Ja, rsyslog ist default nicht mehr installiert. Journald wird schon sehr lange benutzt, nicht erst seit Debian 12. Journald gehört zu Systemd.

Selbst wenn ich es jetzt installiere landen die ganzen Loggings nicht automatisch auch dort um Sie dann weiterzugeben.

Was meinst du denn damit genau? Ich setzte es hier ganz normal für Remotelogging ein.
 
Wenn ich RSyslog manuell installiere wie landen die ganzen Loggings die jetzt im Journald landen auch dort, damit ich sie nach extern schicken kann? Die Loggings müssen doch irgendwie vom Journald an RSyslog kopiert (aber am Besten nicht auch parallel gespeichert) werden oder nicht?
 
Wie das im Detail im Hintergrund funktioniert kann ich dir nicht sagen. Aber ich musste dahin gehend auch nie etwas konfigurieren. Das funktionierte dann vollautomatisch. Grundsätzlich speichert Journald ja im Binaryformat unter /var/log/journal/ und rsyslog als Files. Somit wird wohl mehr Platz benötigt.
Für den Remotelogger für Journalctl trifft das dann natürlich nicht zu.
 
Also nun habe ich es hinbekommen:

apt install rsyslog

In der /etc/systemd/journald.conf

ForwardToSyslog=yes

Und ggf.: Note that systemd/journal provides, by default, some rather absurd rate limiting defaults, so again, if you care about logging (e.g. if this is a server) then make sure RateLimitBurst=0 and RateLimitIntervalSec=0s.

in der /etc/rsyslog.conf folgende Zeile hinzufügen wenn man die Logs extern versenden will:

*.* @remote-host:514

Nach dem Restart mit

systemctl restart rsyslog

sollten sich unter /var/log/syslog die Nachrichten zeigen und gleichzeitig auch an das externe Ziel gehen.

Bei Bedarf noch das für Queuing in der rsyslog.conf ergänzen:

$ActionQueueFileName fwdRule1
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1
 
  • Like
Reactions: fireon
Interessant wäre jetzt noch wie man den Filter setzen kann, damit nur Warnings und höher übertragen werden?

Mit

*.warning @remote-host:514

funzt es leider nicht ...
 
Zumindest sollte man es so nutzen, wie hier mehrfach auch genannte, um den Meldungen etwas mehr Übersicht zu geben;

*.*;auth,authpriv.none

Damit werden auth und autpriv Meldungen nicht übertragen.