Logstash處理json格式日誌檔案的三種方法

2021-08-18 17:45:46 字數 1132 閱讀 7475

假設日誌檔案中的每一行記錄格式為json的,如:

預設配置下,logstash處理插入進elasticsearch後,查到的結果是這樣的:

}

即會將json記錄做為乙個字串放到」message」下,但是我是想讓logstash自動解析json記錄,將各欄位放入elasticsearch中。有三種配置方式可以實現。

file 

這種方式查詢出的結果是:

}

可以看到,json記錄已經被直接解析成各欄位放入到了_source中,但是原始記錄內容沒有被儲存

file        

}

這種方式查詢出的結果與第一種一樣,欄位被解析,原始記錄內容也沒有儲存

filter         

}}

這種方式查詢出的結果是這樣的:

}

可以看到,原始記錄被儲存,同時欄位也被解析儲存。如果確認不需要儲存原始記錄內容,可以加設定:remove_field => [「message」]

比較以上三種方法,最方便直接的就是在file中設定format => json

另外需要注意的是,logstash會在向es插入資料時缺省會在_source下增加type,host,path三個字段,如果json內容中本身也含有type,host,path欄位,那麼解析後將覆蓋掉logstash預設的這三個字段,尤其是type欄位,這個同時也是做為index/type用的,覆蓋掉後,插入進es中的index/type就是json資料記錄中的內容,將不再是logstash config中配置的type值。

這時需要設定filter.json.target,設定該字段後json原始內容將不會放在_source下,而是放到設定的」doc」下:

}}

這樣就不會覆蓋掉_source下的type,host,path值

而且在kibana中顯示時欄位名稱為doc.type,doc.id…

Logstash 處理多個input

我們知道logstash的架構如下 它的整個pipleline分為三個部分 input外掛程式 提取資料。這可以來自日誌檔案,tcp或udp偵聽器,若干協議特定外掛程式 如syslog或irc 之一,甚至是排隊系統 如redis,aqmp或kafka 此階段使用圍繞事件 的元資料標記傳入事件。fil...

Logstash為什麼那麼慢? json序列化

今天跟峽谷金橋聊天,詢問起logstash的效能,金橋提示說logstash中json的序列化是浪費效能的一方面。於是便有了下面的測試 首先需要造乙份資料,資料可以通過logstash的generator來造。input output 生成的資料格式如下 測試的思路是,從test.log檔案中讀取資...

Logstash 資料處理引擎

簡介 logstash是一款輕量級的日誌蒐集處理框架,它支援動態的從各種資料來源蒐集資料,並對資料進行過濾 分析 豐富 統一格式等操作,並按照開發者制定的規範傳輸到指定的位置。官網介紹,並茂 小貼士 logstash 依賴 jdk1.8 因此在安裝之前請確保機器已經安裝和配置好 jdk1.8。log...