天天看点

elasticsearch 集群配置证书安全认证,如何跨集群同步数据

问题列表

不同集群之间是有安全认证的,证书问题需要解决。比方说 A集群进行了安全认证,配置了安全证书,而B集群想要reindex A 集群的数据。直接来做会报错。

这个问题我看官网整了半天,才把两个集群打通了。

 可以看看官网:​​https://www.elastic.co/guide/en/elasticsearch/reference/7.7/docs-reindex.html​​

 其实原理就是 https 通信,A进行了证书认证,所以B集群想要能够访问到A集群,就必须拿着A集群的证书和钥匙,才能打开锁,进行数据同步。

# # 拟方案 

需要解决集群安全认证的问题。

 # # 解决安全认证的问题

官网没有给具体的案例,只给了一些配置参数。只能作为参考。

比方说有 A 集群,和 B 集群,B集群要同步A集群的数据,但是A集群配置了安全认证的证书。所以直接同步数据会失败。

  具体解决问题的步骤式是:

  • 从A集群cp证书(elastic-certificates.p12)到B集群(需要拷贝到每个节点)。然后再修改B集群的每个节点的配置文件(elasticsearch.yml)
  • 证书是在进行安全认证的时候生成的,这个每个人生成的路径可能不太一样,但是名字都是:elastic-certificates.p12 。所以自己找到然后cp到目标节点的config目录下。
  • 修改 elasticsearch.yml 文件,添加如下配置
#安全认证下,跨集群同步数据
#注意证书的路径,需要修改为自己的cp后的路径。
reindex.ssl.truststore.path: /home/wsn/es7.3/es_node1/config/elastic-certificates.p12
#下边的&&&代表密码,替换成自己生成证书时候的密码
reindex.ssl.truststore.password: &&&
reindex.ssl.truststore.type: PKCS12
reindex.ssl.verification_mode: certificate
 #下边的&&&代表密码,替换成自己生成证书时候的密码
reindex.ssl.key_passphrase:&&&
 #下边的&&&代表密码,替换成自己生成证书时候的密码
reindex.ssl.keystore.password:&&&
reindex.ssl.keystore.type: PKCS12
注意证书的路径,需要修改为自己的cp后的路径。
reindex.ssl.keystore.path: /home/wsn/es7.3/es_node1/config/elastic-certificates.p12      
  • 注意每个节点都需要修改