如何配置systemd journal-remote?


17

如何配置systemd journal-remote以侦听特定端口?

我所能找到的只是命令行示例。基于手册页,journal-remote.conf中似乎没有任何选项。

Answers:


31

看到甚至没有任何评论,我决定继续研究,最后将配置拼凑起来。

操作系统:Ubuntu 16.04

systemd:229-1ubuntu2

systemd-journal-remote: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,则可以执行上述操作,并在底部的三行中添加注释。对于活动模式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,因此无需更改任何内容。


> Seeing that there is not even a single comment, 毫不奇怪,yoiu在星期五22:12 UTC询问了您的问题,对于大多数实际上是在周末回答问题的人来说。
user9517 '16

@Iain大声笑,我没有注意到。在发布问题之前,我已经看了3个晚上的journal-remote.conf,所以您可以说我很绝望:p
John Siu

您是否需要清理/旋转使用此设置生成的文件?
马特W

2
@MattW不需要上传服务器。对于接收服务器,日记配置可以解决轮换问题。
John Siu

1
您不应该在/ lib / systemd / system中编辑文件。systemd为您提供/ etc / systemd / system /的自定义单位。只需将/ lib / systemd / system中的文件复制并粘贴到该/ etc / systemd / system中,它将覆盖lib中的文件。
nhooyr
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.