Journald

如何配置 systemd journal-remote?

  • June 4, 2017

如何配置 systemd journal-remote 以偵聽特定埠?

我能找到的只是命令行範例。根據手冊頁,journal-remote.conf 中似乎沒有任何選項。

看到連一條評論都沒有,我決定繼續研究,最後把配置拼湊起來。

作業系統:Ubuntu 16.04

系統:229-1ubuntu2

系統日誌遠端:229-1ubuntu2

上傳伺服器配置

這個其實很簡單,網上的例子都是正確的,只需要碰一個配置文件。

使用以下命令安裝systemd-journal-remote

sudo apt-get install systemd-journal-remote

編輯/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

確保日誌上傳在啟動時自動啟動

sudo systemctl enable systemd-journal-upload.service

配置後重新啟動日誌上傳。

sudo systemctl restart systemd-journal-upload.service

如果您使用的是 http,您可以按照上面的方法進行操作,並將底部的 3 行註釋掉。對於活動模式 https,取消註釋並創建這些證書文件。

URL 實際上規定了傳輸協議 (http/https) 和要使用的目標埠。

此外,如果您想防止將來的軟體包更新意外覆蓋,您可以創建一個 /etc/systemd/journal-upload.conf.d 目錄並將配置文件放入其中,只要文件以 .conf 副檔名結尾。

作為旁注,我在 LXC 容器中執行此操作,似乎該服務不會使用 /etc/hosts 進行 dns 解析,我最終在這裡使用 IP 地址。因此,如果您使用主機名並看到日誌上傳無法到達目標的錯誤消息,請嘗試使用 IP 地址。

接收伺服器配置

在查找配置資訊時,接收伺服器給我帶來了大部分麻煩。與上傳伺服器不同的是,配置分散在這一側。

使用以下命令安裝 systemd-journal-remote 並啟用監聽埠

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

配置日誌遠端有兩種方法,主動和被動。我在這裡使用被動模式。

埠號

日誌監聽埠的配置文件/etc/systemd/system/sockets.target.wants/systemd-journal-remote.socket如下。ListenStream 是埠號。

與上傳端不同,此設置與使用哪種協議(http/https)無關。它只指定監聽埠號。

[Unit]
Description=Journal Remote Sink Socket

[Socket]
ListenStream=19532

[Install]
WantedBy=sockets.target

協議(http/https)和日誌/日誌位置

要更改日誌傳輸的協議和保存位置,請複製/lib/systemd/system/systemd-journal-remote.service/etc/systemd/system/,然後編輯/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

--listen-http=-3指定傳入日誌使用 http 。如果要使用 https,請將其更改為--listen-https=-3.

--output=/var/log/journal/remote/指定傳入日誌的接收器(保存目錄)。如果它不存在,則創建它並將其所有者更改為systemd-journal-remote.

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

配置後重啟 journal-remote.socket。

sudo systemctl daemon-reload

最明顯的/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

由於我沒有使用 https,因此不需要更改任何內容。

引用自:https://serverfault.com/questions/758244