Gibbs Kim's playground

[ElasticStack-8] Elasticsearch indexing json through Logstash 본문

Tech 기록지/Elastic Stack

[ElasticStack-8] Elasticsearch indexing json through Logstash

Lio Grande 2020. 5. 29. 10:48

서울지하철 데이터(JSON)를 가지고 로그스태시(Logstash)를 사용하여 엘라스틱서치(Elasticsearch)에 인덱싱한 과정을 기록합니다. (Version based 7.6.2)

서울교통공사 지하철 역별 주소 정보.json
0.04MB

### json 파일의 key-value pair status example

{
"DESCRIPTION" : {"STN_PHONE":"전화번호","STN_LINE":"호선""STN_NM":"역명","STN_ZIP_CODE":"우편번호","STN_ADDR":"지번주소","STN_IDX":"연번","STN_ROAD_ADDR":"도로명주소"},
"DATA" : [
{"stn_zip_code":"157-857","stn_nm":"방화역","stn_line":"5","stn_phone":"02-6311-5101","stn_road_addr":"서울특별시 강서구 금낭화로 지하132 (방화동)","stn_idx":1,"stn_addr":"서울특별시 강서구 방화동 829-15"},
{"key1-value1","key2-value2","...","..."}
...
]
}

 - Logstash 구동을 위한 configure 파일 (*.conf) 작성

### This file operated in Windows 10 & ELK version 7.6.2
input{
	file{
    	path => "test.json"
        start_position => "beginning"
        sincedb_path => "nul"
        codec => "json"
    }
}

filter{
### If you want to remove some field, use these expressions.
	mutate{
    	remove_field => ["path"]
        remove_field => ["timestamp"]
        ### ... else more remove fields
    }
}

output{
	elasticsearch{
    	hosts => "localhost"
        index => "json2eltest"
    }
    stdout{
    	codec => rubydebug
    }
}