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