[Logstash] Elasticsearch 데이터 추출 및 저장
Elasticsearch를 사용하면서 은근히 짜증나는 것 중 하나가 어떻게 데이터를 넣기는 넣었는데 어떻게 빼야하는지 난감할때가 있다. 보통 데이터를 넣고 뺄 때 Java의 Jest 라이브러리를 사용하거나 Logstash를 사용하는 데 Logstash를 사용하는 편이 편해서 템플릿을 만들어 사용한다.
Logstash Conf 파일
input { elasticsearch { hosts => "ES주소" index => "인덱스명" query => '쿼리' } } filter { } output { # stdout { #로그로 확인 하고 싶을 때 주석을 해제한다. # codec => rubydebug # } file { path => "파일로 쓸 절대 경로" # 절대경로 } }
input { 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 } }