【问题标题】:Logstash cluster output to Elasticseach cluster without multicast没有多播的 Logstash 集群输出到 Elasticsearch 集群
【发布时间】:2014-05-14 04:44:58
【问题描述】:

我想以高可用性运行 logstash -> elasticsearch,但找不到简单的方法来实现它。请查看我的看法并纠正我:

目标:

  • 5 台机器,每台运行 elasticsearch 联合成一个集群。
  • 5 台机器每台运行 logstash 服务器并将数据流式传输到 elasticsearch 集群。
  • N 台机器正在监视每个正在运行的伐木工人并将数据流式传输到 logstash 服务器。

约束:

  • 它应该在 PaaS (CoreOS/Docker) 上运行所以多播 发现不起作用。

解决方案:

  • Lumberjack 允许指定将数据转发到的 Logstash 服务器列表。 Lumberjack 将随机选择目标服务器并在该服务器出现故障时切换到另一台服务器。它有效。
  • 我可以使用zookeeper发现插件来构建elasticsearch集群。它有效。
  • 通过多播,每个logstash 服务器发现并加入elasticsearch 集群。如果不进行多播,它允许我指定单个弹性搜索主机。但它不是高可用性。我想输出到集群,而不是一个可以宕机的主机。

问题:

  • logstash的内嵌elasticsearch添加zookeeper发现插件是否现实?怎么样?
  • 对于这个问题是否有更简单(自然)的解决方案?

谢谢!

【问题讨论】:

    标签: elasticsearch multicast high-availability logstash discovery


    【解决方案1】:

    您可能会在 Logstash 容器中运行一个单独的(非嵌入式)Elasticsearch 实例,但将 Elasticsearch 配置为不存储数据,可以将它们设置为主节点。

    node.data: false
    node.master: true
    

    然后,您可以将 Zookeeper 插件添加到所有 Elasticsearch 实例,以便它们形成集群。

    Logstash 然后通过 http 登录到本地 Elasticsearch,后者会计算出 5 个数据存储节点中的哪个位置来实际索引数据。

    另外,这个 Q 解释了如何让插件与 Elasticsearch 的嵌入式版本一起工作 Logstash output to Elasticsearch on AWS EC2

    【讨论】:

      猜你喜欢
      • 2017-05-18
      • 2015-10-27
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多