如何配置 systemd journal-remote?
如何配置 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,因此不需要更改任何內容。