使用Filebeat採集json日誌未能成功解析的問題以及其他踩過的坑

使用Filebeat採集JSON格式日誌入庫到Elasticsearch中,Mark一下第一次配置時踩過的坑。

  • 第1坑:每行日誌被整個入到了ES索引中的一個message字段,而不是按照json解析後的字段入庫

       解決方案:這個問題的原因是因爲json日誌中只要有filebeat無法解析的格式,就會把整條記錄當做一個字符串處理,入庫到一個message字段,我是日誌中有Windows下的路徑,反斜槓和後面的字母被當做了轉義字符無法識別,所以記錄被截斷導致解析失敗。如果不是需要解析嵌套json

對象的話,也不用配置什麼processors,別搞複雜了!

  • 第2坑:Filebeat日誌中報 “Error decoding JSON: EOF” 錯誤

       解決方案:因爲很多情況會出現這個錯誤,但我是因爲每行數據都是以 } 大括號結尾的,我在後面加個逗號,就不再報錯,可能是Filebeat解析json要求對象之間必須有逗號吧,光換行是不行的!

  • 第3坑:Filebeat配置檢測報 “setup.template.name and setup.template.pattern have to be set if index name is modified” 錯誤

       解決方案:這個錯誤本身提示很明顯,只要我們配置了索引名格式,就必須要同時配置setup.template.name 和setup.template.pattern,但是,我配置了這兩項怎麼還是不行呢,還是同樣的錯誤,重點來了:這兩項的配置必須要頂格配置,不可以和index對齊寫到一個縮進級別!這個是很容易寫錯的,大家注意!正確的寫法:

  • 第四,算不上坑吧,只是個提示,就是通過Filebeat採集JSON日誌入庫到Elasticsearch中,如果默認配置,所有的json字段會最終被存儲在一個json字段對象下,如果不想這樣存儲,想之間存儲到root節點下,那麼可以加如下配置,當然這些官方文檔都有介紹:  
         json.keys_under_root: true
         json.overwrite_keys: true

附上我的完整配置和測試json共大家參考:

filebeat.inputs:
- type: log

  enabled: true
  paths:
    - /usr/local/analyzer/test.log
  json.keys_under_root: true
  json.add_error_key: true
  json.overwrite_keys: true
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["192.168.0.81:9200"]
  index: "filebeat-testindex-%{+yyyy.MM.dd}"
setup.template.name: "filebeattest"
setup.template.pattern: "filebeattest-*"

測試json:

{"sn" : "XASDF324FRWGDSV6GAB","ulPID" : 54282,"actionTime" : "2015/01/01 12:10:35","ulPath" : "D:/WeChat Files/002/Files","ulPathCrc32" : 52345346,"szOldPathName" : "D:/WeChat Files/002/Files/a.txt","szNewPathName" : "D:/WeChat Files/002/Files/b.txt"},
{"sn" : "XASDF324FRWGDSV6GAC","ulPID" : 54282,"actionTime" : "2015/01/01 12:10:36","ulPath" : "D:/WeChat/Files/002/Files","ulPathCrc32" : 52345346,"szOldPathName" : "D:/WeChat/WeChat Files/002Files/a.txt","szNewPathName" : "D:/WeChat/WeChatFiles002Files/b.txt"},
{"sn" : "XASDF324FRWGDSV6GAD","ulPID" : 54282,"actionTime" : "2015/01/01 12:10:37","ulPath" : "D:/WeChatWeChatFiles/002/Files","ulPathCrc32" : 52345346,"szOldPathName" : "D:/eChatWeChat Files/002/Filesa.txt","szNewPathName" : "D:/WeChat/WeChatFiles/002/Files/b.txt"},
{"sn" : "XASDF324FRWGDSV6GAA","ulPID" : 54282,"actionTime" : "2015/01/01 12:10:38","ulPath" : "D:/WeChat/WeChat Files/002Files","ulPathCrc32" : 52345346,"szOldPathName" : "D:/WeChat Files/002/Files/a.txt","szNewPathName" : "D:/WeChatWeChat Files/002Files/b.txt"},

已上純手敲!如有錯漏之處,歡迎指正!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章