logstash grok正則語法規則

2021-09-25 00:10:53 字數 1188 閱讀 4098

這幾天一直在研究elk的搭建和使用,遇到logstash 的grok模組的時候,被困擾了很久,網上搜尋很多資料,大部分都是殘缺不全的並且很多都是「點到為止」

為了理解方便,我們先來舉乙個例子更加直觀:

2019-06-18t16:21:17.237207+08:00 12350 [note] aborted connection 12350 to db: 『imchat』 user: 『db_im_chenyongyang_201811』 host: 『192.168.0.67』 (got timeout reading communication packets)

2019-06-18t16:21:59.761223+08:00 18306 [note] aborted connection 18306 to db: 『imchat』 user: 『db_im_chenyongyang_201811』 host: 『192.168.0.65』 (got timeout reading communication packets)

2019-06-18t16:57:45.311404+08:00 18305 [note] aborted connection 18305 to db: 『imchat』 user: 『db_im_chenyongyang_201811』 host: 『192.168.0.65』 (got timeout reading communication packets)

以上為mysql所產生的日誌

以下為grok正則匹配語句:

(?[0-9]±\d±\d+t\d+:\d+:\d+.\d++\d+:\d+) % (?[\w+]) (?\w+\s\w+) (?\d+) (?\w+\s\w+:) (?』\w+』) (?\w+:) (?』\w+』) (?\w+:) 『%』 (?([a-za-z]+.*))

結果為:

grok有兩種匹配模式:

第一種:

給定關鍵字匹配,這種匹配模式的語法固定為:%

%中,ip為關鍵字,由grok給出,冒號後面為標籤,可以自己定義。

第二種:

自由模式匹配,這種匹配模式的語法固定為:(?regexp)

(?regexp)中,lablename代表標籤名,是自己定義的,後面的regexp為匹配的正規表示式

logstash grok正則案例

aug 6 201120 34 46huawei 01hwcm 5 exit l 1 exit from configure mode jan 8 201303 58 15 07 00huawei 01hwcm 5 exit l 1 exit from configure mode s s s 空白...

logstash grok 多項匹配

業務場景 新版本日誌需要新增字段,需要相容新舊日誌匹配 版本 logstash 2.3 filter message remove field type id input type tags message beat offset filter 太多使用data和greedydaya會導致效能cpu...

logstash grok匹配nginx日誌示例

logstash內部定義 匹配正則 usr local logstash vendor bundle jruby 2.3.0 gems logstash patterns core 4.1.2 patterns nginx日誌grok過濾示例 nginx日誌格式如下 logstash過濾規則配置如下...