syslog-ng 尾文件缺少最后一行
Posted
技术标签:
【中文标题】syslog-ng 尾文件缺少最后一行【英文标题】:syslog-ng tail file missing last line 【发布时间】:2021-02-09 12:12:06 【问题描述】:我在许多日志上使用通配符文件源,其中一些运行缓慢,这意味着我注意到日志文件的最后一行从未及时发送到目的地。有时在本地写入日志之间会有 50 分钟的间隔,在这段时间内,日志文件的最后一行永远不会发送到目的地。
目标是elasticsearch-http,我尝试在目标块中将batch-timeout()设置为2秒或较低的值,并将follow-freq(1)添加到源配置中无济于事。
这是否与最后一行没有换行符的事实有关,因此 syslog-ng 在写入新行之前不会读取它?如果是这样,如何将最后一行刷新到目的地?
非常感谢
【问题讨论】:
【参考方案1】:文件的最后一行必须以换行符结束才能被视为完整。
如果您无法控制 syslog-ng 处理的日志格式,您可以尝试使用multi-line-mode()
和multi-line-timeout()
作为解决方法,在一定超时后刷新最后一个不完整的行。
【讨论】:
以上是关于syslog-ng 尾文件缺少最后一行的主要内容,如果未能解决你的问题,请参考以下文章