0
我正在使用LogStash接收來自日誌文件的數據,日誌文件具有不同類型的日誌。如何在Logstash配置文件中包含過濾器?
第一行表示自定義日誌,而第二行表示JSON格式的日誌。
現在,我想編寫一個過濾器,它將根據內容解析日誌,並最終將所有JSON格式的日誌導向一個名爲jsonformat.log的文件,而另一個日誌則記錄到一個單獨的文件中。
我正在使用LogStash接收來自日誌文件的數據,日誌文件具有不同類型的日誌。如何在Logstash配置文件中包含過濾器?
第一行表示自定義日誌,而第二行表示JSON格式的日誌。
現在,我想編寫一個過濾器,它將根據內容解析日誌,並最終將所有JSON格式的日誌導向一個名爲jsonformat.log的文件,而另一個日誌則記錄到一個單獨的文件中。
您可以利用json
過濾器並檢查它是否失敗或不確定發送事件的位置。
input {
file {
path => "/Users/mysystem/Desktop/abc.log"
start_position => beginning
ignore_older => 0
}
}
filter {
json {
source => "message"
}
}
output {
# this condition will be true if the log line is not valid JSON
if "_jsonparsefailure" in [tags] {
file {
path => "/Users/mysystem/Desktop/nonjson.log"
}
}
# this condition will be true if the log line is valid JSON
else {
file {
path => "/Users/mysystem/Desktop/jsonformat.log"
}
}
}
我不知道爲什麼,但雖然你的代碼將配置測試,當我在我的輸入文件運行它,它只是表明,管道已經啓動,但它不會創建日誌文件。 – rohansingh
您需要將新行添加到您的'abc.log'文件或將'sincedb_path =>「/ dev/null」'添加到您的文件輸入中。 – Val
是的,我做到了。我甚至嘗試添加新行,但它仍然不會創建新文件。我張貼我的配置文件供你看看。還有,輸入文件。 (在提問中作爲編輯的一部分提到) – rohansingh