天天看點

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      
  • 注意每個節點都需要修改