logstash利用grok截取字符中指定長度的內容

最近項目用到logstash,要求利用grok截取日誌消息中某一指定長度的內容。

Logstatsh需要兩個必需參數input、output,以及一個可選參數filter。input用於輸入數據的設置,output用於輸出數據的設置。filter是實現數據過濾的設置。grok是在filter裏面實現數據截取。

項目有一串協議消息如 7e8900000c040116432693324af0010180010005e98e0706000a7e,要求利用grok截取7e後面的四個字符,利用grok正則表達式即可實現。
實現代碼如下:

filter{
     
     grok{
        match => {
                   "message" => "(?<mid>(?<=7e)(.{4}))"                
        	}
     }
}

輸出結果爲:

"mid" => "8900"

代碼解釋:
message:即輸入的數據信息。
mid:即輸出結果的名稱
(?<=7e):即表示獲取7e後面的字符,但不包括7e
(.{4}):即表示獲取的字符長度爲4個。

參考文章:
[1]. https://blog.csdn.net/cai750415222/article/details/86614854

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章