【问题标题】:Which Elasticsearch node is better configured in Logstash Elasticsearch output plugin and Kibana在 Logstash Elasticsearch 输出插件和 Kibana 中配置哪个 Elasticsearch 节点更好
【发布时间】:2016-11-09 23:11:09
【问题描述】:

我在 3 个不同的实例上安装了带有 Elasticsearch、Logstash 和 kibana 的 ELK 堆栈。

现在我想制作 Elasticsearch 的 3 节点集群。

我将一个节点作为主节点和两个数据节点。

我想知道logstash配置

elasticsearch {
    hosts => "http://es01:9200"

我需要在哪个地址输入主节点或数据节点。如果我有 3 个主节点,那么我需要在那里写哪个地址。

在 kibana 中类似,我使用

elasticsearch.url: es01:9200

在集群环境中我需要使用哪个 url?

【问题讨论】:

    标签: elasticsearch logstash kibana


    【解决方案1】:

    通常,答案取决于您的集群数据大小和负载。
    不过,假设主节点也不是数据合格节点,我将尝试回答您的问题。这意味着它只关心集群范围的操作,例如创建或删除索引、跟踪哪些节点是集群的一部分以及决定将哪些分片分配给哪些节点。为此,强烈建议您的主节点尽可能稳定且负载更少。 因此,在您的 logstash 配置中,我会将您的两个数据节点的地址如下所示:

    elasticsearch{
        hosts => ["http://es01:9200", "http://es02:9200"]
    }
    

    此确认可最大限度地提高性能和容错能力,因为您的主节点不包含数据,如果一个节点出现故障,它将继续与另一个节点一起工作。

    请注意,强烈建议在 Elasticsearch 集群中配置至少 3 个符合条件的主节点,因为如果您丢失(唯一的)主节点,则会丢失数据。 3是避免split brain

    关于 kibana,因为集群中的所有节点都相互“了解”。您基本上可以将任何地址放入集群中。但是,出于与上述相同的原因,建议填写您的数据节点地址之一。

    如需进一步阅读,请参阅this 文档。

    希望我能提供帮助!

    【讨论】:

    • 感谢您消除疑虑。每个节点如何相互了解。我的意思是在每个数据节点中我需要编写什么配置,以便他们知道什么是可用的主节点和数据节点,前提是由于防火墙的原因我没有自动发现
    • 有很多方法可以连接集群中的节点,具体取决于您选择的语言、所需的方法和环境。为简单起见,假设所有配置都通过elasticsearch.yaml 完成,并且您在非云环境中运行。在每个节点上,您需要在 elasticsearch.yaml 中编写以下内容:hosts: ["node1:9300","node2:9300"]。您还需要在防火墙中打开 Elasticsearch 传输端口。设置后在每个节点上重新启动 Elasticsearch。将两个节点放在集群中就足够了,所有其他节点将被自动发现。
    • 还请注意,如果您的防火墙不允许 9300,您可以使用其他传输端口,然后将 elasticsearch.yml 中的字段 transport.tcp.port 配置为您的防火墙允许的其他端口。前任。 8080:transport.tcp.port: 8080
    • 感谢您的帮助。我制作了 3 个主节点、4 个数据节点和 2 个客户端节点。所以在logstash中我需要输入所有客户端节点,他们会知道在哪里进行负载平衡?
    • 是的,客户端可以充当您的集群的协调者以及来自 Logstash 的负载平衡请求。
    猜你喜欢
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 2016-11-14
    • 2015-09-17
    • 1970-01-01
    • 2016-08-19
    • 2017-03-20
    • 1970-01-01
    相关资源
    最近更新 更多