【发布时间】:2015-07-22 00:46:58
【问题描述】:
现在当logstash过滤器得到eof时,logstash过滤器似乎还在运行,但是文件没有更多的日志输出到elasticsearch索引。
当它是文件结尾 (eof) 时,我如何才能退出 logstash 过滤器,以执行其他任务?
【问题讨论】:
现在当logstash过滤器得到eof时,logstash过滤器似乎还在运行,但是文件没有更多的日志输出到elasticsearch索引。
当它是文件结尾 (eof) 时,我如何才能退出 logstash 过滤器,以执行其他任务?
【问题讨论】:
我在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?
【讨论】:
logstash 中没有 eof 的概念。 logstash 连续监控输入文件。如果文件发生任何更改,它将发送到 filter 。 如果要监视多个文件,则可以在输入部分中提供多个文件块。
【讨论】: