天天看點

elk系列2之multiline子產品的使用【轉】

上回說道了elk的安裝以及kibana的簡單搜尋文法,還有logstash的input,output的文法,但是我們在使用中發現了一個問題,我們知道,elk是每一行為一個事件,像java這類的輸出日志,一個事件占用了好幾行,導緻elk在處理日志的時候,不能夠識别多行日志為一個事件,是以我們在kibana上看的時候,明明是一個事件的日志,卻拆分了好幾段顯示,是以我們針對這類一個事件占用多行的日志,得使用elk另一個子產品,multiline子產品,這個子產品能夠合并多行當作一個事件呢,使其在kibana顯示的時候,同一個事件在一段。下面我們就看看elk更進階的用法。

我們需要使用logstash的input裡的multiline子產品:​​https://www.elastic.co/guide/en/logstash/2.3/plugins-filters-multiline.html​​

參考萬官方的配置文檔以後,我們自己去配置一下,下面就看下配置檔案:

配置完成後,啟動服務:

測試下,看是否能夠比對以[開頭的行

我們這裡使用elasticsearch的日志來做分析,elasticsearch的日志形式就是java 的,它的日志路徑是/var/log/elasticsearch/myes.log。

我們之前說過,logstash它會有一個檔案專門存它需要讀取哪些檔案,是以再次啟動之前,由于讀取的是同一個檔案(之前的配置檔案也配置成了去讀該檔案),是以這裡需要把logstash的sincedb資料庫給删除,這樣就能從頭開始搜集了。同時在head子產品裡面,把對應的es-log索引也需要删除。

注意,sincedb記錄的是日志檔案的inode。

删除elaticsaerch記錄了myes.log的sincedb檔案,同時也在head的web界面删除es-log的索引,讓es重新開始搜集日志。

此時我們修改配置檔案,使用multiline子產品,配置檔案請看下面:

确認無誤後,我們啟動logstash

然後我們同時重新開機elasticsearch在linux-node1和linux-node2上

我們重新打開head子產品,通路位址是:​​http://192.168.141.3:9200/_plugin/head/​​

可以看到有es-log這個新的索引産生了

elk系列2之multiline子產品的使用【轉】

我們打開kibana頁面,位址是http://192.168.141.3:5601

由于我們配置檔案與上一篇部落格寫的不是一樣的,上一篇是以年月日來作為索引,這裡是使用年月來作為索引,是以這裡需要重新增加一個索引。

elk系列2之multiline子產品的使用【轉】

然後切換到discovery模版下,切換到es-log下面

elk系列2之multiline子產品的使用【轉】

此時我們可以看到java 的日志就是把多行合并成一行了,這樣就一個事件一段了,不會把一個事件拆分多行顯示了。

elk系列2之multiline子產品的使用【轉】
elk系列2之multiline子產品的使用【轉】
elk系列2之multiline子產品的使用【轉】
elk系列2之multiline子產品的使用【轉】
elk系列2之multiline子產品的使用【轉】