摘要: 在logstash中使用過濾器,它將從事件字段中讀取值,在外部文件(例如csv)中查找該值並從外部文件比賽。使用來自外部文件的值作爲事件中的額外字段添加。Logstash:利用來自靜態csv文件的數據在日誌文件中豐富事件
更多信息: 我有一個事件的日誌文件。事件是這樣的:
{"@timestamp":"2014-06-18T11:52:45.370636+02:00","location":{"MainId":3,"SubId":"5"},"EndRequest":{"Duration":{"Main":0,"Page":6720}}}
我有這樣一個靜態的CSV文件:
1,left
2,right
3,top
當logstash被處理的事件中,我希望能夠使用過濾器會檢查MainId的價值(例如event = 3),並在csv文件中找到這個值。如果找到,那麼該事件必須得到一個標籤:「top」。
這是一種類似於過濾器「GeoIP」的方式。該事件具有字段值,匹配「數據庫」中的值並返回可添加到事件中的值。
我無法找到可以在上述過程中使用的當前過濾器。我需要自己製作一個自定義過濾器嗎?如果有的話,有人可以提示如何解決這個問題?
太謝謝你了。您的解決方案適合我!我沒有想到一個如此快速和完整的動物。當然,如果你開始使用這個插件,你會提出新的問題。我完全不熟悉Ruby。但是當查找不存在時尋找一種提供默認值的方法。順便說一句,我刪除了「分隔符」,因爲它給出了一個錯誤,可能是因爲它沒有被使用? – user3024742 2014-09-27 17:44:24
我將使用默認選項更新代碼,因爲這似乎很有用 – Alcanzar 2014-09-27 18:32:31
在csv文件中不存在該值時添加了可選的'default'配置值 – Alcanzar 2014-09-29 13:39:52