現在,當logstash過濾器獲得eof時,似乎logstash過濾器仍在運行,但文件沒有更多日誌輸出到elasticsearch索引。如何在logstash過濾器獲取eof時返回終端?
當文件(eof)結束時,如何退出logstash過濾器,執行其他任務?
現在,當logstash過濾器獲得eof時,似乎logstash過濾器仍在運行,但文件沒有更多日誌輸出到elasticsearch索引。如何在logstash過濾器獲取eof時返回終端?
當文件(eof)結束時,如何退出logstash過濾器,執行其他任務?
我使用exec在logstash過濾器的輸出上解決了問題,並創建了一個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連續監視器輸入文件。如果文件中發生任何變化,它將發送到過濾器。 如果要監視多個文件,則可以在輸入節中輸入多個文件塊。