1. 程式人生 > >Rabbitmq通過logstash把queue中的資料儲存到ElasticSearch

Rabbitmq通過logstash把queue中的資料儲存到ElasticSearch

      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中就有資料儲存了。效果圖: