-
[Logstash] Elasticsearch 데이터 추출 및 저장DB 2018. 10. 26. 00:32반응형
Elasticsearch를 사용하면서 은근히 짜증나는 것 중 하나가 어떻게 데이터를 넣기는 넣었는데 어떻게 빼야하는지 난감할때가 있다. 보통 데이터를 넣고 뺄 때 Java의 Jest 라이브러리를 사용하거나 Logstash를 사용하는 데 Logstash를 사용하는 편이 편해서 템플릿을 만들어 사용한다.
Logstash Conf 파일
input { elasticsearch { hosts => "ES주소" index => "인덱스명" query => '쿼리' } } filter { } output { # stdout { #로그로 확인 하고 싶을 때 주석을 해제한다. # codec => rubydebug # } file { path => "파일로 쓸 절대 경로" # 절대경로 } }
이런 템플릿을 사용하는데 ruby filter를 추가하면 변수 경로를 추가할수 있다.이런식으로 뽑아낸 데이터는 Json 형태의 데이터로 파일로 저장되는데 다시 넣기 위해서는이런 형식의 Logstash Conf 파일을 사용한다.File -> ES Logstash Confinput { file { path => ["Logstash로 저장한 Json 형태의 파일"] start_position => "beginning" } } filter { json { source => "message" } mutate { remove_field => ["@version", "@timestamp", "message", "host"] #Logstash에서 쓰잘데기 없이 그냥 넣어주는 데이터라서 그냥 빼버림 } } output { # stdout { # codec => rubydebug { metadata => true} # } elasticsearch { hosts => "ES 주소" index => "저장할 인덱스 명" # document_type => "지정된 타입이 있을 경우" #주석 처리시 type -> doc } }
반응형'DB' 카테고리의 다른 글
[MySQL/MariaDB] 1045 28000 Access denied for user 'xxx@192.168.1.xxx' (using password: YES) (0) 2022.09.05 [ElasticSearch] 기초적인 ElasticSearch 자문자답 (0) 2019.07.10 17/05/13 DB처음 시작해보기 (0) 2017.05.13 [DB이론] 2. 관계 기수성 ~ 정규화 (0) 2016.08.25 [DB이론] 1. 모델링 정의 ~ 관계 (0) 2016.08.25