RHEL 6服务器上的Rsyslog正在端口514 UDP上本地接收消息。 这些消息有时比正常的系统日志消息大得多。 我看到rsyslog处理所有的消息就好了,它写入本地文件没有问题。 但是,当我添加一个远程主机到rsyslogconfiguration这些相同的大消息被截断大约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
我对rsyslog conf所做的唯一更改是以下两件事情:
这是在我的rsyslog conf文件的顶部:
$MaxMessageSize 64k
这是在我的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
有谁知道为什么rsyslog会截断日志通过UDP到远程主机,但能够处理日志时,将它们写入本地文件?
**注意我通过使用netcat来监听rsyslog转发到UDP的本地端口来检查它是否发生在远程rsyslog主机上。
**注意我没有尝试TCP,并没有截断大的转发消息,所以现在的问题是为什么UDP截断。 (我假设答案可能与UDP的属性有关,但我仍然想知道,也许可以修复它,如果可能的UDP转发邮件)
UDP没有序列号,所以没有办法连贯地组合消息(如果它们不按顺序到达)
系统日志UDP传输 – http://tools.ietf.org/html/rfc5426
3.1。 每个数据报一个消息
每个系统日志UDP数据报必须只包含一个系统日志消息,可以完整或截断。 消息必须根据RFC 5424 [2]格式化和截断。 附加数据不能出现在数据报有效载荷中。