【问题标题】:Logstash file input pluginLogstash 文件输入插件
【发布时间】:2014-07-24 21:48:01
【问题描述】:

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

我面临以下问题

1) Logstash 因SO中提到的问题而失败
2) 由于有许多打开的文件句柄,日志存档存储变得非常缓慢。

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

在logstash Jira bug 中,有人告诉我要编写自己的插件以及一些其他对我没有多大帮助的建议。

【问题讨论】:

  • 我不认为logstash 真的拥有所有的文件描述符。我观察到的是logstash 只是不断地打开和关闭它们。至少在 1.4.2 版本中
  • 我确信我看到 logatash 保持打开数千个文件句柄。现在,logstash 可能会让它们保持打开一段时间,但考虑到我拥有的文件数量,它会尝试一次打开所有文件并达到操作系统的最大文件描述符 llimit。
  • 我的最大文件描述符限制是 5000。我使用 logstash 监控文件夹中的所有 15000 个文件。它没有问题,至少对于 1.4.2。我还使用lsof 来查看logstash 打开了多少文件,它只显示了一些logstash 文件。另外我用 strace 来监控,我可以看到logstash 快速打开和关闭文件。我不知道logstash 实现的真正内容。我也希望我观察到的是真的。也许您可以尝试将最大打开文件描述符限制设置为较高的值并运行。
  • 我已经看到 logstash 1.4.2 在 ubuntu 上打开了大约 35k 个文件句柄。
  • 由于我的情况是日志存档,我必须保留所有日志,我编写了一个快速插件来处理这种情况,它复制文件,读取它,然后删除原始文件的副本。它解决了我的问题

标签: logstash


【解决方案1】:

Logstash 文件输入可以处理静态文件。你需要添加这个配置

file {
     path => "/your/logs/path"
     start_position => "beginning"
}

添加start_position 后,logstash 从头开始​​读取文件。请参考here 了解更多信息。请记住

此选项仅修改文件是新文件且以前未见过的“第一次联系”情况。如果之前已经看到过文件,则此选项无效。
否则,您已将 sincedb_path 设置为 /dev/null 。

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

【讨论】:

  • 我很确定logstash确实处理静态文件,我所说的静态文件是,logstash不应该处理它处理过的文件。因为它拥有句柄,所以我不得不将我的 Linux 机器上的打开文件句柄限制增加 50,000。它正在恶化 linux 以及存储的性能。我的问题更多的是——无论如何让logstash知道一旦文件处理/解析并推送到ES,就忘了它。不要让文件句柄保持打开状态,不要指望它会更新。或者是否有任何可用的自定义插件可以完成这项工作?
  • 没有。到目前为止,logstash 无法满足您的需求。正如我在最后的回答中所说,您必须编写一个脚本才能将文件从监视器目录中移出。否则你必须修改文件插件代码
【解决方案2】:

注意这一点,同时为 logstash 打开 -v 和 --debug

{:timestamp=>"2016-05-06T18:47:35.896000+0530",
 :message=>"_discover_file: /datafiles/server.log: 
**skipping because it was last modified more than 86400.0 seconds ago**",
 :level=>:debug, :file=>"filewatch/watch.rb", :line=>"330",
 :method=>"_discover_file"}

解决方案是触摸文件或更改 ignore_older 设置

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 2015-01-06
    相关资源
    最近更新 更多