如何使用 systemd 内核参数 systemd.journald.forward_to_syslog

如何使用 systemd 内核参数 systemd.journald.forward_to_syslog

我喜欢通过 PXE 配置多台机器,并将内核参数传递systemd.journald.forward_to_syslog给所有机器,这样我就可以从一个中心位置监控所有日志。 (我无法更改机器配置,这是第一次启动,而且只是启动)

来自文档看起来这个选项是一个布尔真/假选项,但我无法找到如何设置系统日志服务器的厌恶。我也尝试像这样使用它systemd.journald.forward_to_syslog=1.2.3.4,但我没有看到系统日志服务器生成的流量。

以前有人尝试过吗?

答案1

Systemd-journald 不支持通过网络发送消息。该选项控制转发到当地的syslog 守护进程,预计监听 /run/systemd/journal/syslog。

(但是,无论如何,这都不是推荐的方法。当使用 syslog-ng 或 rsyslogd 时,让 syslog 守护进程通过直接读取文件来拉取日志消息更为可靠.journal,同时禁用“转发”选项。这允许syslogd 准确保留超出标准 BSD Syslog 格式的所有元数据字段。)

简而言之:您需要安装一个实际的 syslog 守护进程,将其配置为读取 .journal 文件(使用system()syslog-ng 中的源或imjournalrsyslogd 中的模块),并告诉它通过网络转发导入的消息。

答案2

经过更多搜索后,似乎systemd.journald.forward_to_syslog这不是解决这个问题的正确方法。

还发现了这个回答作者:systemd 创建者 Lennart Poettering

在journald内部执行此操作并不漂亮,因为journald在网络启动之前很久就启动了,这意味着我们必须关闭它所在的沙箱。通过在单独的迷你守护进程中执行此操作,我们获得了异步行为(即,一旦netlogd启动,它就可以“赶上”同时发生的事情),并且journald不​​需要面向网络。

推荐的方法是使用网络日志 (这似乎不是用 CentOS/Fedora 机器预编译的

相关内容