使用Logstash filter grok过滤日志文件
生活随笔
收集整理的這篇文章主要介紹了
使用Logstash filter grok过滤日志文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Logstash提供了一系列filter過濾plugin來處理收集到的log event,根據log event的特征去切分所需要的字段,方便kibana做visualize和dashboard的data analysis。所有logstash支持的event切分插件查看這里。下面我們主要講grok切分。
Grok基本介紹
可以使用如下grok pattern來匹配這種記錄
%{IP:client_id_address} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:http_response_time}在logstash conf.d文件夾下面創建filter conf文件,內容如下
# /etc/logstash/conf.d/01-filter.conf filter {grok {match => { "message" => "%{IP:client_id_address} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:http_response_time}" }} }以下是filter結果
client_id_address: 55.3.244.1 method: GET request: /index.html bytes: 15824 http_response_time: 0.043grok內置的默認類型有很多種,查看所有默認類型?Grok模式庫。
更多時候logstash grok沒辦法提供你所需要的匹配類型,這個時候我們可以使用自定義
- 第一種,直接使用oniguruma語法去匹配文本片段,語法如下 (?<field_name>the pattern here) 假設你需要匹配的文本片段為一個長度為10或11的十六進制的值,使用下列語法可以獲取該片段,并把值賦予queue_id (?<queue_id>[0-9A-F]{10,11})
- 第二種,創建自定義pattern文件
- 創建文件夾patterns,在此文件夾下面創建一個文件,文件名隨意,eg: postfix
- 然后將patterns file引入,告訴logstash你的自定義類型文件,以下面的event log record為例子:
匹配結果如下:
client_id_address: 55.3.244.1 method: GET request: /index.html bytes: 15824 http_response_time: 0.043 queue_id: ABC24C98567推薦使用grokdebugger來寫匹配模式,輸入event log record,再逐步使用pattern微調切分,下方會根據你所寫的模式將輸入切分字段。
?
- add_field: 當pattern匹配切分成功之后,可以動態的對某些字段進行特定的修改或者添加新的字段,使用%{fieldName}來獲取字段的值
Exmaple:
如果somefield=dad,logstash會將foo_dad新字段加入elasticsearch,并將值Hello world, dad賦予該字段
- add_tag: 為經過filter或者匹配成功的event添加標簽
Example:
更多內置方法在這里
作者:eason02
鏈接:https://www.jianshu.com/p/d46b911fb83e
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
轉載于:https://www.cnblogs.com/hyl8218/p/8478247.html
總結
以上是生活随笔為你收集整理的使用Logstash filter grok过滤日志文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Learning ROS: Servic
- 下一篇: 人工智能——Singleton模式