2016-04-11 62 views
1

我是logstash和grok的新手,對模式有疑問。 我正在嘗試爲我的apache錯誤日誌創建一個grok模式。 但是我對以下行爲有些困惑。GROK中的Loglevel模式

如果我使用http://grokdebug.herokuapp.com/底層的比賽:

%{LOGLEVEL:severity%{IPV4:clientip}%{GREEDYDATA:errormsg} 

我得到以下日誌片斷一個不匹配:

【孫4月10日9時28分01秒2016年] [錯誤] [客戶111.11.111.111]文件不 不存在:/var/www/html/favicon.ico

現在所有的模式工作,如果我跑%{LOGLEVEL:嚴重}或%{IPV4:clientip}%{GREEDYDATA:errormsg}分開。但是,如果我一起嘗試,我會得到一個「不匹配」的回報。

我認爲這是因爲%{LOGLEVEL:severity}截斷了日誌的其餘部分,但我不明白爲什麼。

任何人有什麼建議,我做錯了什麼?

預先感謝您。

回答

3

與所有未錨定的正則表達式一樣,一旦開始匹配,就需要匹配字符串中的所有內容。在你的模式中,你沒有考慮樣本中存在的空格或括號。 (這還假設在「嚴重性」之後缺少一個}複製&粘貼錯誤)。