我使用rsyslog将日志上传到我的Graylog服务器。
/etc/rsyslog.conf:
$InputFileName /var/log/apache-error.log
$InputFileFacility apache
$InputFileTag #apacheError:
$InputFileStateFile apache-error
$InputFileSeverity error
$InputRunFileMonitor
if $programname == '#apacheAccess' then @1.2.3.4:1514一些长消息在Graylog中被截断(消息的末尾不可用)。
当我试图在UDP中用netcat上传一条长消息时:
echo -n -e "$(for i in $(seq 0 64000); do echo -n '0123456789';done)" | nc -u 1.2.3.4 1514
消息在Graylog中(在多条消息中,但所有消息都可用)
为什么来自rsyslog的消息的一部分被截断,而来自netcat的消息没有被截断?
是必须增加maximumSize参数还是什么?
我试过了
$MaxMessageSize 256k
$MainMsgQueueDequeueBatchSize 256但没有成功
Thx

发布于 2018-02-27 10:24:12
rsyslogd使用syslog协议,该协议是在RFC 3164中定义的。在4.1节中,它说
数据包的总长度必须为1024字节或以下。
因此,为了符合syslog消息的标准,rsyslog在将消息拆分成更小的数据包方面做了正确的事情。
ncat之所以将消息作为一个巨大的blob发送,是因为ncat不知道您要发送的消息类型的协议,因此它不知道它应该将消息分割开来。
https://serverfault.com/questions/899071
复制相似问题