elasticsearch - Logstash集群输出到没有多播的Elasticsearch集群

标签 elasticsearch multicast high-availability logstash discovery

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

目标:

  • 5台运行 Elasticsearch 的机器组成一个集群。
  • 5台机器,每台机器运行logstash服务器并将数据流传输到Elasticsearch集群中。
  • 正在监视每台正在运行的伐木 worker 并将数据流式传输到logstash服务器中的N台机器。

  • 约束:
  • 应该在PaaS(CoreOS / Docker)上运行,因此可以进行多播
    发现不起作用。

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

  • 题:
  • 将动物园管理员发现插件添加到Logstash的嵌入式Elasticsearch中是否现实?怎么样?
  • 是否有针对此问题的更简单(自然)解决方案?

  • 谢谢!

    最佳答案

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

    node.data: false
    node.master: true
    

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

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

    另外,此Q解释了如何使插件与Elasticsearch的嵌入式版本Logstash output to Elasticsearch on AWS EC2一起使用

    关于elasticsearch - Logstash集群输出到没有多播的Elasticsearch集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23645788/

    相关文章:

    apache-camel - 如何群集ServiceMix?

    cluster-computing - 无法启动 Corosync 集群引擎

    elasticsearch - 在Elasticsearch 2.2中过滤

    elasticsearch - 使用ElasticSearch查询进行过滤和匹配

    solr - 如果我想对本地文件建立索引,是否需要使用Nutch来爬取本地文件?

    java - 无法使用 Java API 连接到在本地虚拟机上运行的 ElasticSearch Docker 集群

    ruby - 在 Wireshark 中看到多播数据包,但用户程序未收到(Windows 和 Linux)

    tomcat - Tomcat集群如何使用McastService bind?

    networking - 从 docker 到主机的 eth 的多播

    elasticsearch - 当某些节点出现故障时,Elasticsearch是否停止索引数据?