nic*_*rix 7 logging syslog udp rsyslog
RHEL 6 服务器上的 Rsyslog 在端口 514 UDP 上本地接收消息。这些消息有时比正常的系统日志消息大小大得多。我看到 rsyslog 可以很好地处理所有消息,它可以毫无问题地写入本地文件。但是,当我将远程主机添加到 rsyslog 配置时,这些相同的大消息被截断为大约 2048 个字符。
我正在运行 rsyslogd 版本:5.8.10
rsyslogd 5.8.10, compiled with:
FEATURE_REGEXP: Yes
FEATURE_LARGEFILE: No
GSSAPI Kerberos 5 support: Yes
FEATURE_DEBUG (debug build, slow code): No
32bit Atomic operations supported: Yes
64bit Atomic operations supported: Yes
Runtime Instrumentation (slow code): No
Run Code Online (Sandbox Code Playgroud)
我对 rsyslog conf 所做的唯一更改是以下两件事:
这是在我的 rsyslog conf 文件的最顶部:
$MaxMessageSize 64k
Run Code Online (Sandbox Code Playgroud)
这是在我的 rsyslog conf 文件的最底部:
$template RemoteHost,"<%%PRI%>%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%
*.* @my-rsyslog-central-logger:514; RemoteHost
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么 rsyslog 会通过 UDP 将日志截断到远程主机,但是在将日志写入本地文件时能够处理日志?
**注意我确实通过使用 netcat 侦听 rsyslog 通过 UDP 转发到的本地端口来仔细检查它没有发生在远程 rsyslog 主机上。
** 注意我确实尝试过 TCP 并且它没有截断大的转发消息,所以现在的问题是为什么 UDP 会截断。(我假设答案可能与 UDP 的属性有关,但我仍然想知道,如果可能的话,可能会针对 UDP 转发的消息进行修复)
小智 4
UDP 没有序列号,因此无法连贯地组合消息(如果它们到达时乱序)
系统日志 UDP 传输 - https://www.rfc-editor.org/rfc/rfc5426
3.1. 每个数据报一条消息
每个系统日志 UDP 数据报必须仅包含一条系统日志消息,该消息可以是完整的或被截断的。消息必须根据 RFC 5424 [2] 进行格式化和截断。附加数据不得出现在数据报有效负载中。
归档时间: |
|
查看次数: |
6531 次 |
最近记录: |