騰訊雲 Elasticsearch 進階篇(二十七)Logstash講解與實戰

前面幾篇回顧:

從本節開始,我們講Logstash一個最重要的插件,過濾器插件(Filter),常見的過濾器插件如下:

1、Grok插件: 正則捕獲

grok是一個十分強大的logstash filter插件,他可以通過正則解析任意文本,將非結構化日誌數據弄成結構化和方便查詢的結構。他是目前logstash 中解析非結構化日誌數據最好的方式。

Grok 的語法規則是: %{語法: 語義}

語法”指的就是匹配的模式,例如使用NUMBER模式可以匹配出數字,IP模式則會匹配出127.0.0.1這樣的IP地址。那麼默認Logstash在安裝完以後默認就有幾百個模式給我使用,基本都夠用。也就是說,grok插件是根據這些模式的功能去完成日誌的過濾的。

語義是指對前面語法進行的標識定義,這個是自定義的。

那麼我們舉一個列子:比如有這麼一條日誌文件:

192.168.1.111 [07/Feb/2019:16:24:19 +0800] "GET / HTTP/1.1" 403 5039

我們要通過grok插件進行過濾,那麼根據上面講到的語法,我們可以定義出如下的匹配模式對日誌進行過濾

那麼,%{IP:clientip}匹配模式將獲得的結果為:這個模式中的clientip是可以進行自定義的。

clientip: 192.168.1.111

%{HTTPDATE:timestamp}匹配模式將獲得的結果為:

timestamp: 07/Feb/2019:16:24:19 +0800

%{QS:referrer}匹配模式將獲得的結果為:

referrer: "GET / HTTP/1.1"

就是說通過這些模式我們就能把輸入的日誌的字段信息取出來進行過濾,對吧。

那麼這些默認的模式在哪裡呢?在Logstash的安裝目錄下,如下圖


騰訊雲 Elasticsearch 進階篇(二十七)Logstash講解與實戰

Patterns目錄

進入這個文件夾,我們可以看到各種應用的匹配模式,比如JAVA 、REDISt、Mongdb


騰訊雲 Elasticsearch 進階篇(二十七)Logstash講解與實戰

Patterns應用

那麼我們看一下基於Grok的基礎應用的匹配模式:


騰訊雲 Elasticsearch 進階篇(二十七)Logstash講解與實戰

grok-patterns模式

我們會發現Grok匹配模式裡邊有很多規則,這些規則自己可以調用來過濾日誌。這個文件大家多熟悉。

那麼接下來,在實際生產應用中,怎麼去用這個grok插件呢?這裡有一個Grok在線調試網站,用於運維、開發人員進行Grok匹配模式的調試,進而根據正確的調試模式去設置Logstash配置文件。那麼我們看一下這個網站:http://grokdebug.herokuapp.com/


騰訊雲 Elasticsearch 進階篇(二十七)Logstash講解與實戰

grok調試網站

那麼通過上面的平臺的調試基於日誌輸入、我們可以匹配出以下模式:

%{IP:clientip}\\ \\[%{HTTPDATE:timestamp}\\]\\ %{QS:referrer}\\ %{NUMBER:response}\\ %{NUMBER:bytes}

匹配出的模式將上面的日誌分成了5個字段,將輸入內容分割為不同的數據字段,這對於日後解析和查詢日誌數據非常有用,這正是使用grok的目的。

那麼接下來,我們實際動手一下吧~~~ 請看下面事件配置截圖:


騰訊雲 Elasticsearch 進階篇(二十七)Logstash講解與實戰

事件配置截圖

配置文件接下:

1,標準輸入

2,將接收到的Mesage內容按照平臺設定的匹配模式進行切割,分5個字段進行切割

3,標準輸出

那麼,啟動一下服務,看一下效果:服務啟動成功


騰訊雲 Elasticsearch 進階篇(二十七)Logstash講解與實戰

那麼我們輸入一條日誌,看輸出結果:如圖:輸入上面的日誌信息:

192.168.1.111 [07/Feb/2019:16:24:19 +0800] "GET / HTTP/1.1" 403 5039

如下圖所示:


騰訊雲 Elasticsearch 進階篇(二十七)Logstash講解與實戰

filter過濾輸出

那我們看一下字段內容:

1,clientip bytes referer reposnse timestamp,5個字段都切割輸出了。

2,message內容也完整的輸出了。

那麼,上面就是一個簡單的過濾的功能,我們已經實現了。那這就是Grok過濾插件的應用。


2,總結

接下來,我們根據這個結果跟配置文件,做filter插件的其它更多插件的使用。那麼本節,大家需要掌握grok插件各種模式的匹配用法,Grok調試在線平臺的使用。好了今天就講這些。大家再學習一下。


分享到:


相關文章: