Rabbitmq通過logstash把queue中的資料儲存到ElasticSearch
阿新 • • 發佈:2019-02-17
Rabbitmq中的資料通過logstash儲存到ElasticSearch中,有以下幾步即可完成
首先,保證Rabbitmq,ElasticSearch安裝並且可以使用,logstash可用。具體安裝過程在本文不做說明,不會的同學可以自行查詢資料。
如圖所示,我的ElasticSearch和Rabbitmq已經正常可以使用。
接下來就是配置logstash並且啟動使用:
input{ rabbitmq{ host=>"ip" # 這裡填寫Rabbitmq的地址,確保可以ping通 port=> 5672 # 這裡填寫Rabbitmq的埠 user=>"guest" # 這裡填寫Rabbitmq的使用者名稱 password=>"guest" # 這裡填寫Rabbitmq的密碼 queue=>"queuename" # 這裡填寫Rabbitmq的佇列的名稱 durable=> true # 這裡填寫Rabbitmq的佇列的durable屬性 codec=>json # 這裡填寫Rabbitmq的佇列的內容是什麼格式 type=> "result" # 這裡選填 } } filter{ if([messageType] not in "2,3"){ # 過濾條件,可以不要 drop{} } } output { elasticsearch { hosts => ["192.168.10.4:9200"] # ElasticSearch的地址加埠 index => "position-%{+YYYYMMdd}" # ElasticSearch的儲存文件的index名稱, document_type=>"%{messageType}" # ElasticSearch的儲存文件的type document_id=>"%{mark_uuid}" # ElasticSearch的儲存文件的id flush_size => 500 # ElasticSearch的儲存文件的多少條提交儲存 idle_flush_time => 10 # ElasticSearch的儲存文件的多少秒提交儲存 } }
最後一步就是生效剛剛的配置並且生效:
bin/logstash -f rabbitmq.conf
rabbitmq.conf 就是我剛剛配置的檔案,檔名隨便命名。然後如果佇列裡有資料了,ElasticSearch中就有資料儲存了。效果圖: