消费后删除日志:logstash

Delete logs after consumption: logstash

我有 logstash 监视主机上的目录。每次它看到与我在 logstash 配置中指定的路径相匹配的日志时,它就会开始将数据导入我的 elasticsearch 集群。 logstash 是否有办法在使用完日志后将其删除?

我想编写脚本来删除 logstash 已经完成的日志 但我怎么知道他用了哪些日志?

也许你们以前做过这个或者知道如何实现这个?

Logstash 目前无法删除文件。 file input plugin 的重点是持续监控文件,但无法知道文件何时完成,即何时不再进行写入。

如果您知道文件何时 "done",您可以调用 Logstash 并通过 stdin input plugin 提供文件。 Logstash 将在收到文件结尾时终止,然后您的脚本可以删除该文件。

您还可以阅读sincedb 文件并将Logstash 的当前文件偏移量与相应文件的大小进行比较。有关 sincedb 文件格式的详细信息,请参阅 Understanding sincedb files from Logstash file input

或者您可以确保您有足够的磁盘 space 并使用定期的日志轮换来删除文件,例如年龄。磁盘 space 可能比你的时间便宜。

新版本的logstash (V4.1.3) 现在可以做到这一点。可以在属性 "file_completed_action" 中的 file_input_plugin 中指定操作。 根据他们的 docs 在读取模式下,完成文件后应执行什么操作。如果指定删除,则文件将被删除。