我正尝试在Windows服务器上使用RabbitMQ + ELK构建一个日志管道。
RabbitMQ --> Logstash --> ElasticSearch --> Kibana。
理想情况下,我希望有2个RabbitMQ实例,2个Logstash实例,3个ElasticSearch实例和1个Kibana实例。
有没有人设置过这样的东西?我知道我们可以通过在yml中设置集群名称来轻松设置ElasticSearch集群。lagstash写入ES集群的机制是什么?
我是否应该在每个实例中设置RabbitmQ+Logstash组合,以便如果MQ位于负载均衡器之后,则每个MQ将具有其自己的logstash输出实例,并从那里将数据发送到集群。
发布于 2014-08-13 14:53:13
从技术上讲,您可以使用elasticsearch输出插件或Elasticsearch_http输出插件直接从Logstash写入ES (如果使用的ES版本与Logstash不兼容)。也就是说,对于企业场景,您需要容错并处理卷,拥有RabbitMQ/Redis是个好主意。
上面的配置看起来不错,尽管Rabbit集群的输入将来自一个或多个Logstash运送器(运行在日志所在的客户机上的实例),它们将指向HA RabbitMQ集群。然后是Logstash索引器,其输入将被配置为查看RabbitMQ队列并将其输出到弹性搜索集群。
希望这能有所帮助。
发布于 2014-11-28 22:47:55
不建议将Logstash中的数据直接放到ES中。ES写入很慢,因此在负载较重的情况下,您可能会丢失数据。
这个想法是在Logstash和ES之间添加一个代理。
Logstash --> Proxy --> Elasticsearch
Logstash支持Redis和RabbitMQ作为代理。
这个代理可以处理大量输入,并作为队列机制工作。
Logstash将Redis作为首选(因为设置和监控很简单)。
https://stackoverflow.com/questions/25273431
复制相似问题