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

Mig*_*ssa 1 filter eof logstash

现在当logstash过滤器得到eof时,看起来logstash过滤器还在运行,但文件没有更多的日志输出到elasticsearch索引。

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

Mig*_*ssa 5

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

在logstash过滤器中:

   input
   {
      ...
   }
   filter
   {
      ...
   }
   output
   {
     exec
    {
        command => "sh kill_logstash.sh"
    }
     ...
   }
Run Code Online (Sandbox Code Playgroud)

在 bash 脚本 (kill_logstash.sh) 中:

   #!/bin/bash
   echo 'Terminou a leitura do ficheiro'
   pkill -f  logstash
   exit 0
Run Code Online (Sandbox Code Playgroud)

相同问题:如何在测试完成后自动终止 logstash 代理?