当logstash过滤器获得eof时如何返回终端?

时间:2015-07-22 00:46:58

标签: filter logstash eof

现在当logstash过滤器获得eof时,似乎logstash过滤器还在运行,但是文件没有更多日志输出到elasticsearch索引。

如果是文件结束(eof),我如何退出logstash过滤器,以执行其他任务?

2 个答案:

答案 0 :(得分:3)

我在logstash过滤器的输出上使用exec解决了这个问题,并创建了一个bash脚本来杀死logstash进程。

在logstash过滤器中:

   input
   {
      ...
   }
   filter
   {
      ...
   }
   output
   {
     exec
    {
        command => "sh kill_logstash.sh"
    }
     ...
   }

在bash脚本(kill_logstash.sh)中:

   #!/bin/bash
   echo 'Terminou a leitura do ficheiro'
   pkill -f  logstash
   exit 0

同样的问题:How to automatically kill a logstash agent when tests are done?

答案 1 :(得分:1)

logstash中没有eof的概念。 logstash连续监视器输入文件。如果文件中发生任何更改,它将发送到过滤器。 如果你想监视多个文件,你可以在输入部分给出多个文件块。