使用logstash同步MongoDB数据到es
input{ mongodb{ codec => "json" uri => 'mongodb://127.0.0.1:27017/kuaibao' placeholder_db_dir => '/usr/local/etc/logstash-5.6.0/dbdir' placeholder_db_name =>'user.db' collection => 'user' generateId => 'true' parse_method => "simple" } } filter{ mutate{remove_field => ["_id"]} } output{ elasticsearch{ hosts => ["http://127.0.0.1:9200"] index => "ordertrance" manage_template=>true document_type=>"user" } stdout { codec => json_lines } }
配置如上图,遇到一个坑,卡了我两天,我去。。。。
刚开始我的placeholder_db_dir是配置成了/usr/local/etc/logstash-5.6.0,也就是logstash的根目录,谁成想配置成这样居然不好使,各种百度各种谷歌,明明跟人家的配置都是一样的,我的就是同步不就去es。差点去世,最后鬼使神差的试着修改了一下placeholder_db_dir,居然可以了,吐血。。。
进行到最后一步,MongoDB自定义主键无法同步,报错MongoDB Input threw an exception, restarting {:exception=>#<BSON::ObjectId::Invalid: 'zj11111111111111111111' is an invalid ObjectId.>}
百度谷歌无果,准备使用mongo-connector试一下