Logstash Elasticsearch 输出插件和Kibana 哪个Elasticsearch 节点配置比较好

Which Elasticsearch node is better configured in Logstash Elasticsearch output plugin and Kibana

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

现在我想做一个Elasticsearch的3节点集群。

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

我想知道在logstash配置中

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

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

同样在 kibana 中,我使用

elasticsearch.url: es01:9200

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

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

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

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

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

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

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

希望我帮到了你!