假設日誌檔案中的每一行記錄格式為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...