Logstash收集json格式日誌檔案如何寫配置檔案
1、日誌格式
{"10190":0,"10071":0,"10191":0,"10070":0,"48":"136587","type":"136587","10018":0}
我們如果收集這個日誌只是做簡單的配置。如下:
input {
file {
path => ["/home/elk/logstash-5.6.3/request"]
type => "chenxun"
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "192.168.2.181:9200"
}
}
那麼收集到的結果是:
{
"_index": "logstash-2017.11.22",
"_type": "chenxun",
"_id": "AV_iTR0AM1H1mf2je0nC",
"_version": 1,
"_score": 1,
"_source": {
"@version": "1",
"host": "Ubuntu-20170424",
"path": "/home/elk/logstash-5.6.3/request",
"@timestamp": "2017-11-22T05:57:05.383Z",
"message": "{"10190":0,"10071":0,"10191":0,"10070":0,"48":"136587","type":"136587","10018":0}",
"type": "chenxun"
}
}
即會將json記錄做為一個字串放到”message”下,這不是我們想要的結果,是讓logstash自動解析json記錄,將各欄位放入elasticsearch中。下面介紹如何配置.
1.直接設定codec => json
input {
file {
path => ["/home/elk/logstash-5.6.3/request"]
type => "chenxun"
codec => json
}
}
這個時候看看結果: 已經把json解析到各個欄位中去了
{
"_index": "logstash-2017.11.22",
"_type": "136587",
"_id": "AV_iXHbGM1H1mf2jfF4d",
"_version": 1,
"_score": 1,
"_source": {
"48": "136587",
"10018": 0,
"10070": 0,
"10071": 0,
"10190": 0,
"10191": 0,
"path": "/home/elk/logstash-5.6.3/request",
"@timestamp": "2017-11-22T06:13:51.361Z",
"@version": "1",
"host": "Ubuntu-20170424",
"type": "136587"
}
}
可以設定編碼格式:(收集中文日誌)
codec => json {
charset => "UTF-8"
}
2、使用filter json
配置如下:
input {
file {
path => ["/home/elk/logstash-5.6.3/request"]
}
}
filter {
json {
source => "message"
#target => "doc"
#remove_field => ["message"]
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "192.168.2.181:9200"
}
}
輸入結果:
{
"_index": "logstash-2017.11.22",
"_type": "136587",
"_id": "AV_igupKM1H1mf2jfxm2",
"_version": 1,
"_score": 1,
"_source": {
"48": "136587",
"10018": 0,
"10070": 0,
"10071": 0,
"10190": 0,
"10191": 0,
"path": "/home/elk/logstash-5.6.3/request",
"@timestamp": "2017-11-22T06:55:51.335Z",
"@version": "1",
"host": "Ubuntu-20170424",
"message": "{"10190":0,"10071":0,"10191":0,"10070":0,"48":"136587","type":"136587","10018":0}",
"type": "136587"
}
}
可以看到,原始記錄被儲存,同時欄位也被解析儲存。如果確認不需要儲存原始記錄內容,可以加設定:remove_field => [“message”]
其中特別需要注意解析json資料的內容,logstash會在向es插入資料時預設會在_source下增加type,host,path三個欄位,如果json內容中本身也含有type,host,path欄位,那麼解析後將覆蓋掉logstash預設的這三個欄位,尤其是type欄位,這個同時也是做為index/type用的,覆蓋掉後,插入進es中的index/type就是json資料記錄中的內容,將不再是logstash config中配置的type值。
相關文章
- java專案日誌配置檔案Java
- MySQL InnoDB日誌檔案配置MySql
- logstash採集Java日誌文字檔案配合grok收集到elasticsearch簡單示例JavaElasticsearch
- logstash收集springboot日誌Spring Boot
- Logstash 配置Java日誌格式的方法Java
- nginx日誌配置檔案說明Nginx
- 如何將Excel檔案解析為json格式ExcelJSON
- 基於Docker應用容器日誌檔案收集Docker
- logstash 配置檔案語法介紹
- Logback配置檔案這麼寫,還愁不會整理日誌?
- 追加寫入json檔案JSON
- 如何讀取和寫入JSON檔案JSON
- springboot使用logback記錄日誌,配置檔案Spring Boot
- (四)Logstash收集、解析日誌方法
- vscode如何更改檔案語言模式為json格式VSCode模式JSON
- 【Oracle】如何修改資料檔案和日誌檔案的路徑Oracle
- Linux 日誌檔案系統如何工作Linux
- python---json檔案寫入PythonJSON
- Laravel日誌檔案寫入失敗(permission denied)Laravel
- js 匯入json配置檔案JSON
- larave 日誌自定義配置格式記錄呼叫檔案路徑與行號
- 使用配置檔案方式記錄Python程式日誌Python
- 在Linux中,有一堆日誌檔案,如何刪除7天前的日誌檔案?Linux
- Python常用配置檔案ini、json、yaml讀寫總結PythonJSONYAML
- 如何透過Python將JSON格式檔案匯入redis?PythonJSONRedis
- 如何使用 logrotate 命令保持日誌檔案更新logrotate
- 日誌檔案過大清理
- sybase iq日誌檔案管理
- 如何將日誌檔案和二進位制檔案快速匯入HDFS?
- [問題]多個檔案寫入日誌報錯
- 檔案流下載檔案,zip/其他格式檔案
- 配置檔案的編寫
- 【MySQL日誌】MySQL日誌檔案初級管理MySql
- C#讀取Json配置檔案C#JSON
- 日誌分析平臺ELK之日誌收集器logstash常用外掛配置
- Python - 基礎知識專題 - 配置檔案與日誌管理(正在寫作)Python
- 在Oracle中,如何定時刪除歸檔日誌檔案?Oracle
- python對json格式原檔案追加內容PythonJSON
- Json檔案轉換為Excel檔案!涉及讀檔案,時間戳轉化,寫文件JSONExcel時間戳