seb*_*elk 29 syslog systemd-journald
我想知道 systemd-journald 是一种新的 syslog 协议实现,或者更确切地说,它使用了 syslog 实现,例如 rsyslog、syslog-ng
我用谷歌搜索了一下,但我没有发现任何令人信服的内容。
Jde*_*eBP 40
就协议而言,systemd-journald……
/run/systemd/journal/stdout。systemd 将服务的原始标准输出和错误(默认为或明确具有StandardOutput=journal/ StandardError=journal)连接到此套接字。因此,它接收以换行符终止的可变长度自由格式记录的协议。/run/systemd/journal/dev-log,它从/dev/log. 它接收syslog()链接到应用程序的 GNU C 库中的库函数所说的协议。/run/systemd/journal/syslog。这也接收syslog()GNU C库中的库函数说话的协议(虽然systemd-journald实际上是使用另一个库和另一个函数来说话)。/dev/kmsg。它接收 Linux 内核所说的协议,这是一个可变长度的协议,主要是自由格式,记录以换行符终止。/run/systemd/journal/socket。这类似于 GNU C 库的情况,即应用程序链接到一个库,该库对这个套接字使用某种协议;除了函数是sd_journal_sendv(),它在应用程序链接到的 systemd C 库中,并且该协议没有标准化,而是一个 systemd-only 协议,在每个数据报中包含一个键=值对数组,以及可选的可读文件描述符.syslog()GNU C 库中的函数所说的协议既不是 RFC 5424 也不是 RFC 3164,实际上是它自己的事实上的标准。它不是 RFC 5424,因为它没有正确数量的空格和用 NIL 值指定可选字段的破折号。它不是 RFC 3164,因为它有一个PROCID字段而不是HOSTNAME.
几年前,您的 systemd 操作系统将具有:
systemd-journald完成上述所有工作(以及一些与协议无关的事情),并成为 GNU C 库和 systemd C 库使用各自协议进行通信的服务器xinetd/inetd风格的东西时尝试消息发送到/run/systemd/journal/syslog和接收插座作为一个开放的文件描述符,或作为配置为在打开的直服务并侦听/run/systemd/journal/syslog与它的(等效的rsyslog)imuxsock模块;并说 GNU C 库协议如今,您的 systemd 操作系统具有:
systemd-journald 再次执行上述所有操作,并成为 GNU C 库和 systemd C 库与之通信的服务器 imjournal模块直接从 systemd 日志文件中读取内容| 归档时间: |
|
| 查看次数: |
13305 次 |
| 最近记录: |