所有其他 syslog 实现(rsyslog、syslog-ng、readlog 等)的一个共同范例是通过 UDP514 以纯文本格式交换日志条目。
如何启用 systemd-journal-remote 来接收这种格式的日志?
(我知道有更复杂的日志提供程序的插件来模拟 systemd-journal-remote 默认使用的新的 https 格式,但我正在处理只能发送旧的、原始的、纯文本格式的哑设备)
答案1
最终使用 rsyslog 输出omjournal
日志。这样,日志就会转到 journald 并在 syslog 生态系统中“统一”。还具有跨容器工作的优势。
# /etc/rsyslog.conf
...
module(load="omjournal")
template(name="journal" type="list") {
constant(value="remote" outname="MESSAGE")
property(name="$!event-type" outname="EVENT_TYPE")
}
action(type="omjournal" template="journal")
...
答案2
我找到了一种使用示例配置将远程日志消息重定向到 systemd 日志的方法 https://bugzilla.redhat.com/show_bug.cgi?id=1428247:
module(load="omjournal")
ruleset(name="remote") {
action(type="omjournal")
}
input(type="imtcp" port="514" ruleset="remote")
它在带有 rsyslog 的 Ubuntu Server 18.04 上运行,在我的情况下使用 tcp 模块。