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中就有数据保存了。效果图:

发布了48 篇原创文章 · 获赞 60 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/u011051912/article/details/81234408