Elasticsearch:如何为 CCR 及 CCS 建立带有安全的集群之间的互信

Posted Elastic 中国社区官方博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch:如何为 CCR 及 CCS 建立带有安全的集群之间的互信相关的知识,希望对你有一定的参考价值。

我们知道,为了能够实现 CCRCCS,我们必须让集群之间能够互信,这样才可以建立集群之间的连接。在我之前的文章 “Elasticsearch:跨集群搜索 Cross-cluster search(CCS)及安全” 里,我介绍了一种方法。它可以帮我们建立集群之间的互信。在用于执行跨集群搜索的集群(本地集群)和所有远程集群之间启用信任关系。可以通过以下方式完成此操作:

  • 使用相同的证书颁发机构为所有连接的群集生成证书,或者
  • 从本地群集中将 CA 证书添加为每个远程群集中的受信任 CA(请参阅传输 TLS 设置)。如果你是两个不同证书的集群,你可以在 elasticsearch.yml 中的 xpack.security.transport.ssl.certificate_authorities 添加对方的证书而得到受信,或者通过添加证书到 truststore 来实现。

集群之间的互信是通过 transport 层来实现的:

 

 在本篇文章中,我将详细介绍如何针对本地安装的集群建立集群互信。我将使用 Elastic Stack 8.3.2 来进行展示。

安装

如何你还没安装还自己的 Elastic Stack 集群,请参照如下的文章来进行安装:

我们在自己的机器上分别安装两个不同的集群。我们可以分布在不同的机器上进行安装并启动。针对我的配置是:

如上所示,我有两个单节点的集群。它们分别位于两个不同的机器上。为了能够让它们建立互相,我们必须按照上面的方式来进行配置。

config/elasticsearch.yml

 

 

创建集群互信

我们可以为上面的两个集群创建同样的一个证书。这是一个最容易的方案。这里就涉及到更新在我们上一步已经安装好的证书问题。我们可以参考文章 “Elasticsearch:使用不同的 CA 更新安全证书 (一)” 来更新 CA 证书。在更新的过程中,我们必须注意的是:

  • 在所有的集群中,都使用同样的 CA 证书:ca.crt 及 ca.key
  • 在各自的集群的节点上,分别使用证书来生成 transport 层的证书,并导入到 CA 信任库 truststore

配置完毕后,我们需要重新启动集群。这样我们的配置就完成了。

创建集群远程连接

在上面,我们已经配置好集群之间的互信。我们接下来安装如下的步骤来创建连接:

 

 

 

从上面,我们可以看出来,两个机器之间的连接已经建立起来了。

 

当然,我也可以使用 API 来创建这样的连接:

 

PUT _cluster/settings

  "persistent": 
    "cluster.remote": 
      "remote_cluster": 
        "seeds": [
          "192.168.0.8:9300"
        ]
      
    
  

 我们可以通过如下的命令来查看:

GET _remote/info

上面显示我们的连接是成功的。当然,我们也可以在 Kibana 的界面中进行查看:

如上所示,我们的连接都是成功的。

一旦连接成功,我们就可以尽情地使用 CCR 及 CCS 了。 

参考:

【1】Trust management | Elasticsearch Service Documentation | Elastic

以上是关于Elasticsearch:如何为 CCR 及 CCS 建立带有安全的集群之间的互信的主要内容,如果未能解决你的问题,请参考以下文章

如何为 elasticsearch 模拟繁重的磁盘 / io 负载

如何为logstash+elasticsearch配置索引模板?

如何为 searchkick gem 设置不同的端口?

CCR炒币机器人:4.21比特币/BTC行情分析及CCR表现分享

elasticsearch实战手册阅读——导读

如何为使用轮胎的弹性搜索设置默认分析器?