logstash过滤器获取eof时如何return到终端?
How to return to terminal when logstash filter get eof?
现在当 logstash 过滤器获取 eof 时,logstash 过滤器似乎 运行 了,但是文件没有更多的日志输出到 elasticsearch 索引。
我如何在文件末尾 (eof) 时退出 logstash 过滤器,以执行其他任务?
logstash 中没有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 过滤器似乎 运行 了,但是文件没有更多的日志输出到 elasticsearch 索引。
我如何在文件末尾 (eof) 时退出 logstash 过滤器,以执行其他任务?
logstash 中没有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?