0

我想從日誌文件中解析下面提到的行。grok match:僅使用模式或匹配解析日誌文件的時間

03:34:19491 INFO [:SM-二次-17]:DBBACKUP:106 - 中所定義的值的max_allowed_pa​​cket [16M]不將值從/etc/mysql/my.cnf [24M]匹配。該值將被使用。

解析後,將輸出必須是:

Time : 03:34:19 
LogType : INOF 
Message : [:sm-secondary-17]: DBBackup:106 - The max_allowed_packet value defined in [16M] does not match the value from /etc/mysql/my.cnf [24M]. The value will be used. 

忽略:,491(逗號和3位數字)。

+0

向我們展示一些努力。 –

回答

0

Grok filter config應該像這樣解析提到的日誌。

... 
filter { 
    grok { 
     match => {"message" => "%{TIME:Time},%{NUMBER:ms} %{WORD:LogType} %{GREEDYDATA:Message}"} 
     remove_field => [ "ms" ] 
    } 
} 
... 
+0

這是工作,我還發現一個更多的解決方案:%{TIME:time}%{LOGLEVEL:loglevel}%{GREEDYDATA:message} – vijay

+0

這很好。就我的知識而言,讓我知道毫秒是否在時間字段中被捕獲? –

+1

@HatimStovewala,TIME使用HOUR,MINUTE和SECOND定義,SECOND定義爲應包含毫秒。 –