Logstash文件输入插件

Roc*_*cky 2 logstash

目前我正在使用文件输入插件来查看我的日志存档,但文件输入插件对我来说不是正确的解决方案,因为文件输入插件固有地期望该文件是事件流而不是静态文件.现在,这对我造成了很大的问题,因为我的日志存档有100,000个日志文件,而logstash打开了所有这些永远不会改变的文件的句柄.

我正面临以下问题

1)Logstash因SO
2中提到的问题而失败2)使用那些许多打开的文件句柄,日志存档存储变得非常慢.

有没有人知道让logstash知道静态处理文件或者处理文件后不保留文件句柄的方法.

在logstash Jira bug中,我被告知要编写自己的插件以及其他一些对我没什么帮助的建议.

Ben*_*Lim 5

Logstash文件输入可以处理静态文件.您需要添加此配置

file {
     path => "/your/logs/path"
     start_position => "beginning"
}
Run Code Online (Sandbox Code Playgroud)

添加后start_position,logstash从头开始读取文件.有关更多信息,请参阅此处.记住这一点

此选项仅修改"初次接触"情况,其中文件是新的且之前未见过.如果之前已经看过某个文件,则此选项无效.
否则你已经设置sincedb_path/dev/null.

对于第一个问题,我在评论中回答.请尝试添加打开的最大文件.对于我的建议,您可以尝试编写脚本将日志文件复制到logstash监视器路径并将其不断移出.您必须估计logstash处理日志文件的时间.

  • 没有.到目前为止,logstash无法满足您的需求.正如我在最后的回答中所说,你必须编写一个脚本来从监控目录中移出文件.否则你必须修改文件插件代码 (2认同)