Wie konfiguriere ich systemd journal-remote?

17

Wie konfiguriere ich systemd journal-remote, um einen bestimmten Port abzuhören?

Ich kann nur Befehlszeilenbeispiele finden. Und basierend auf der Manpage scheint es in journal-remote.conf keine Option zu geben.

John Siu
quelle

Antworten:

31

Da es nicht einmal einen einzigen Kommentar gibt, habe ich beschlossen, meine Recherchen fortzusetzen und die Konfiguration zusammenzusetzen.

Betriebssystem: Ubuntu 16.04

systemd: 229-1ubuntu2

systemd-journal-remote: 229-1ubuntu2

Serverkonfiguration hochladen

Diese ist eigentlich einfach, Online-Beispiele sind korrekt und müssen nur eine Konfigurationsdatei berühren.

Verwenden Sie zum Installieren den folgenden Befehl systemd-journal-remote

sudo apt-get install systemd-journal-remote

Bearbeiten /etc/systemd/journal-upload.conf.

/etc/systemd/journal-upload.conf

[Upload]
URL=http://10.0.0.1:19532
# ServerKeyFile=/etc/ssl/private/journal-upload.pem
# ServerCertificateFile=/etc/ssl/certs/journal-upload.pem
# TrustedCertificateFile=/etc/ssl/ca/trusted.pem

Um sicherzustellen, dass der automatische Start des Journal-Uploads beim Booten erfolgt

sudo systemctl enable systemd-journal-upload.service

Starten Sie den Journal-Upload nach der Konfiguration neu.

sudo systemctl restart systemd-journal-upload.service

Wenn Sie http verwenden, können Sie wie oben vorgehen und die unteren drei Zeilen kommentieren. Deaktivieren Sie für https im aktiven Modus diese und erstellen Sie diese Zertifikatsdateien.

Die URL bestimmt das Übertragungsprotokoll (http / https) und den zu verwendenden Zielport.

Wenn Sie außerdem ein versehentliches Überschreiben durch zukünftige Paketaktualisierungen verhindern möchten, können Sie ein Verzeichnis /etc/systemd/journal-upload.conf.d erstellen und Ihre Konfigurationsdatei darin ablegen, sofern die Datei mit der Erweiterung .conf endet.

Nebenbei bemerkt, ich mache dies in einem LXC-Container und es scheint, dass der Dienst / etc / hosts nicht für die DNS-Auflösung verwendet. Am Ende verwende ich hier die IP-Adresse. Wenn Sie also den Hostnamen verwenden und die Fehlermeldung erhalten, dass der Journal-Upload das Ziel nicht erreichen kann, versuchen Sie es mit der IP-Adresse.

Serverkonfiguration wird empfangen

Der empfangende Server bereitet mir beim Suchen nach Konfigurationsinformationen die meisten Probleme. Und anders als beim Upload-Server ist die Konfiguration auf dieser Seite verstreut.

Verwenden Sie den folgenden Befehl, um systemd-journal-remote zu installieren und den Überwachungsport zu aktivieren

sudo apt-get install systemd-journal-remote
sudo systemctl enable systemd-journal-remote.socket

Es gibt zwei Möglichkeiten, aktiv und passiv, um journal-remote zu konfigurieren. Ich benutze hier den passiven Modus.

Port-Nummer

Die Konfigurationsdatei für den Journal-Listening-Port lautet /etc/systemd/system/sockets.target.wants/systemd-journal-remote.socketwie folgt. ListenStream ist die Portnummer.

Im Gegensatz zum Hochladen hat diese Einstellung nichts mit dem zu verwendenden Protokoll (http / https) zu tun. Es wird nur die Überwachungsportnummer angegeben.

[Unit]
Description=Journal Remote Sink Socket

[Socket]
ListenStream=19532

[Install]
WantedBy=sockets.target

Protokoll (http / https) und Journal- / Protokollspeicherort

Kopieren Sie zum Ändern des Protokolls der Journalübertragung und des Speicherorts /lib/systemd/system/systemd-journal-remote.servicein /etc/systemd/system/und bearbeiten Sie es /etc/systemd/system/systemd-journal-remote.service.

[Unit]
Description=Journal Remote Sink Service
Documentation=man:systemd-journal-remote(8) man:journal-remote.conf(5)
Requires=systemd-journal-remote.socket

[Service]
ExecStart=/etc/systemd/systemd-journal-remote \
          --listen-http=-3 \
          --output=/var/log/journal/remote/
User=systemd-journal-remote
Group=systemd-journal-remote
PrivateTmp=yes
PrivateDevices=yes
PrivateNetwork=yes
WatchdogSec=3min

[Install]
Also=systemd-journal-remote.socket

Die --listen-http=-3Angabe des eingehenden Journals erfolgt über http. Wenn Sie https verwenden möchten, ändern Sie es in --listen-https=-3.

--output=/var/log/journal/remote/Geben Sie die Senke (das Speicherverzeichnis) des eingehenden Journals an. Wenn es nicht vorhanden ist, erstellen Sie es und ändern Sie seinen Besitzer in systemd-journal-remote.

sudo mkdir /var/log/journal/remote
sudo chown systemd-journal-remote /var/log/journal/remote

Starten Sie journal-remote.socket nach der Konfiguration neu.

sudo systemctl daemon-reload

Was ist mit den offensichtlichsten /etc/systemd/journal-remote.conf?

[Remote]
# Seal=false
# SplitMode=host
# ServerKeyFile=/etc/ssl/private/journal-remote.pem
# ServerCertificateFile=/etc/ssl/certs/journal-remote.pem
# TrustedCertificateFile=/etc/ssl/ca/trusted.pem

Da ich kein https verwende, muss ich nichts ändern.

John Siu
quelle
> Seeing that there is not even a single comment, Das ist nicht überraschend. Yoiu hat Ihre Frage an einem Freitag um 22: 12UTC gestellt. Dies ist das Wochenende für die meisten Leute, die hier tatsächlich Fragen beantworten.
user9517 unterstützt GoFundMonica
@Iain lol, das habe ich nicht bemerkt. Ich habe 3 Nächte in der journal-remote.conf nachgesehen, bevor ich die Frage gestellt habe. Du kannst also sagen, dass ich verzweifelt bin: p
John Siu
Müssen Sie die mit diesem Setup generierten Dateien bereinigen / drehen?
Matt W
2
@MattW Der Upload-Server ist nicht erforderlich. Für den empfangenden Server kann die Journalkonfiguration die Rotation übernehmen.
John Siu
1
Sie sollten die Dateien in / lib / systemd / system nicht bearbeiten. systemd gibt Ihnen / etc / systemd / system / für benutzerdefinierte Einheiten. Kopieren Sie einfach die Datei in / lib / systemd / system und fügen Sie sie in die Datei / etc / systemd / system ein. Die Datei in lib wird überschrieben.
Nhooyr