设置ELK群集

时间:2014-08-12 20:23:00

标签: elasticsearch rabbitmq logstash kibana

我正在尝试使用Windows服务器上的RabbitMQ + ELK构建日志管道。

RabbitMQ - > Logstash - > ElasticSearch - > Kibana。

理想情况下,我想拥有2个RabbitMQ实例,2个Logstash实例,3个ElasticSearch实例和1个Kibana实例。

有人设置过这样的东西吗?我知道我们可以通过在yml中设置集群名称来轻松设置ElasticSearch集群。 lagstash写入ES集群的机制是什么?

我应该在每个实例中设置RabbitmQ + Logstash组合,这样如果MQ在负载均衡器后面,每个MQ都有自己的logstash输出实例,并从那里数据进入集群。

2 个答案:

答案 0 :(得分:1)

从技术上讲,您可以使用elasticsearch输出插件或Elasticsearch_http输出插件直接从Logstash写入ES(如果使用与Logstash不兼容的ES版本)。对于企业场景而言,您需要容错并处理数量,因此最好使用RabbitMQ / Redis。

您的上述配置看起来不错,但是您的Rabbit群集的输入将来自一个或多个Logstash发货人(在日志所在的客户端计算机上运行的实例),这将指向HA RabbitMQ群集。然后是Logstash索引器,其输入将配置为查看RabbitMQ队列并将其输出到弹性搜索集群。

希望有所帮助。

答案 1 :(得分:1)

不建议将数据从Logstash直接放到ES。 ES写入速度很慢,因此在高负载下您可能会丢失数据。

想法是在Logstash和ES之间添加代理。

Logstash - >代理 - > Elasticsearch

Logstash支持Redis和RabbitMQ作为代理。

此代理可以处理大型输入并用作队列机制。

Logstash将Redis作为主要选择(由于设置和监控的简单性)。