目的很簡單,就是將mongodb數據導入es創建相應索引。數據是從特定的網站扒下來,而後進行二次處理,也就是數據去重、清洗,接着再保存到mongodb裏,那麼如何將數據搞到ElasticSearch中呢?調研以後以爲logstash-input-mongodb插件是個不錯的選擇,固然了也有不少其餘實現方式,具體緣由:git
這是插件GitHub地址:https://github.com/phutchins/logstash-input-mongodbgithub
進入logstash 下bin目錄 查看已安裝的插件:mongodb
./logstash-plugin list
沒有logstash-input-mongodb插件那麼:json
./logstash-plugin install logstash-input-mongodb
此步驟安裝比較慢,頗有可能失敗,翻過牆另說,哈哈,建議替換鏡像庫爲國內的庫。vim
沒有gem命令的先安裝:ruby
yum install gem
能夠先看下鏡像庫地址命令以下:elasticsearch
gem sources -l
能夠看到地址是:https://rubygems.org/ide
如今替換爲國內的ruby-china庫:網站
gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/ #在查看 gem sources -l
此時一切換成功,固然,並無完成,須要進入logstash目錄對 Gemfile文件 進行編輯:ui
vim Gemfile
將文件裏的 source "https://rubygems.org" 換成 source "https://gems.ruby-china.org",如圖:
wq保存退出,好了進入bin再執行: ./logstash-plugin install logstash-input-mongodb
等待時間可能比較長,若是沒有成功的話,切換鏡像源成阿里的 再試一次
gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org #若是以前已經換成國內的須要把將上面的 https://rubygems.org 換成 https://gems.ruby-china.org即: gem sources --add https://ruby.taobao.org/ --remove https://gems.ruby-china.org #而後 vim Gemfile #修改成: source "https://gems.ruby-china.org"
安裝成功:
不排除還有失敗的可能,能夠把logstash-input-mongodb-0.4.1.gem文件下載下來(這裏把文件移動到logstash目錄下了),執行
./logstash-plugin install logstash-input-mongodb-0.4.1.gem
安裝成功:
接下來就是添加logstash配置文件以下:
input { mongodb { uri => 'mongodb://192.168.1.43:27017/testData' placeholder_db_dir => '/opt/logstash-mongodb/' placeholder_db_name =>'testData.db' collection => 'test_Current' } } filter { # 把mongodb的_id替換掉,由於_id是跟es中的_id相沖突 mutate { rename => ["_id", "uid"] } # ruby { # code => "event.set('message', eval(event('title')))" # } } output { file { path => "/var/log/mongons.log" } stdout { codec => json_lines } elasticsearch { hosts => ["192.168.1.171:9200"] index => "testData" manage_template=>true document_type => "judicial" } }
啓動:
bin/logstash -f logstash.conf #後臺啓動: nohup bin/logstash -f logstash.conf &>/var/log/null &