我有logstash正在观看主机上的目录。每当它看到与我在logstash配置中指定的路径匹配的日志时,它就会开始将数据导入到我的elasticsearch集群中。 logstash是否有办法在完成消耗之后删除日志?
我想写脚本来删除logstash已经完成的日志 但我怎么知道他做了哪些日志?
也许你们之前做过这个或知道如何实现这个?
答案 0 :(得分:9)
Logstash目前无法删除文件。 file input plugin的重点是持续监控文件,但是无法知道文件何时完成,即何时不再进行写入。
如果您知道文件何时完成"您可以调用Logstash并通过stdin input plugin提供文件。 Logstash将在收到文件结束后终止,然后您的脚本可以删除该文件。
您还可以读取sincedb文件,并将Logstash的当前文件偏移量与相应文件的大小进行比较。有关sincedb文件格式的详细信息,请参阅Understanding sincedb files from Logstash file input。
或者你可以确保你有足够的磁盘空间并使用常规的日志轮换来删除文件,例如:年龄。磁盘空间可能比你的时间便宜。
答案 1 :(得分:2)
新版本的logstash(V4.1.3)现在可以执行此操作。可以在属性“ file_completed_action”中的file_input_plugin中指定操作。 按照他们的docs 在读取模式下,完成文件后应执行什么操作。如果指定了删除,则文件将被删除。