[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 ) 를 이용해 데이터를 받아보자
포스팅을 마치겠습니다.