본문 바로가기


[MongoDB] 몽고DB ( MongoDB ) 에서 

로그스태시 ( logstash ) 를 이용해 데이터를 받아보자




엘라스틱서치를 사용하고자 몽고디비에서 데이터를 받아 올 일이 생겼습니다.

그래서 열심히 찾아본 결과 몽고DB의 _id 값이 엘라스틱서치에 _id 값을 넣을때 문제가 생긴다는 것을 알게되어

몽고DB의 ID값을 제거하고 받았더니 되었습니다.



엘라스틱서치 5버전대를 사용하려고 하다보니 input mongodb  플러그인이 없었습니다.

그래서 로그스태시(logstash) 에서 몽고DB 의 데이터를 받아오려면 

엄청난 분들이 만들어 놓은 logstash-input-mongodb 를 받아야합니다.

그래서 5버전 이상에서 사용가능한 logstash-input-mongodb-0.4.1.gem 을 설치하여 사용하였습니다.



플러그인 다운로드 주소

https://rubygems.org/gems/logstash-input-mongodb/versions/0.4.1





아래와 같이 다운을 받아 폴더에 보관줍시다.




logstash-plugin install 을 통해서 해당 플러그인을 설치한다.






설치가 완료되었으면

아래와 같은 logstash 설정파일을 만들어 줍니다.


해당 설정파일은 몽고디비에서 엘라스틱서치로 이동하는 설정입니다.




아래는 코드입니다.


input {
mongodb {
uri => 'mongodb://ip:port/dbname'
placeholder_db_dir => '/opt/logstash-mongodb/'
placeholder_db_name => 'logstash_sqlite.db'
collection => 'inventory'
batch_size => 5000
}
}

filter {
json {
source => "message"
}
mutate {
remove_field => ["log_entry","logdate","@version","_id"]
}
}

output {
elasticsearch {
hosts => ["172.31.99.33:9200"]
index => "test"
}
stdout { codec => rubydebug }
}



이상으로

[MongoDB] 몽고DB ( MongoDB ) 에서 로그스태시 ( logstash ) 를  이용해 데이터를 받아보자

포스팅을 마치겠습니다.



엉망진창

개인 블로그 입니다. 코딩, 맛집, 정부정책, 서비스, ~방법 등 다양한 정보를 소개합니다