现在当logstash过滤器获得eof时,似乎logstash过滤器还在运行,但是文件没有更多日志输出到elasticsearch索引。
如果是文件结束(eof),我如何退出logstash过滤器,以执行其他任务?
答案 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连续监视器输入文件。如果文件中发生任何更改,它将发送到过滤器。 如果你想监视多个文件,你可以在输入部分给出多个文件块。