上传服务器配置

上传服务器配置

如何配置 systemd journal-remote 来监听特定端口?

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

答案1

看到连一条评论都没有,我决定继续研究,最终把配置拼凑起来。

操作系统:Ubuntu 16.04

systemd:229-1ubuntu2

systemd-journal-远程: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

确保 journal-upload 在启动时自动启动

sudo systemctl enable systemd-journal-upload.service

配置完成后重新启动 journal-upload。

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 地址。因此,如果您使用主机名并看到 journal-upload 无法到达目标的错误消息,请尝试使用 IP 地址。

接收服务器配置

接收服务器给我带来了大部分查找配置信息的麻烦。与上传服务器不同,配置分散在这一侧。

使用以下命令安装 systemd-journal-remote 并启用监听端口

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

配置 journal-remote 有两种方式,主动和被动。我这里使用被动模式。

端口号

日志监听端口的配置文件如下/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,因此不需要更改任何内容。

相关内容