ElasticSearch集群动态扩容(集成了SearchGuard)

时间:2024-03-22 19:08:05

1.扩容准备(前提是集群集成了SearchGuard,并在正常运行):

到ssl工具的目录下

cd /home/hadoopadmin/ES/search-guard-tlstool

cd tools/out

vim root-ca.readme

ElasticSearch集群动态扩容(集成了SearchGuard)

记住root的密码,并将root的密码拷贝到tlsconfig.yml中,用生产上已经有的root-ca.pem来生成节点证书和客户端证书。

cd /home/hadoopadmin/ES/search-guard-tlstool/config

vim tlsconfig.yml

ElasticSearch集群动态扩容(集成了SearchGuard)
将pkPassword密码更改为上面的root-ca.readme中的root pkPassword密码

2.备份之前的节点证书

cp out/ outBak

修改tlsconfig.yml配置文件,将新增的机器节点加入进来
ElasticSearch集群动态扩容(集成了SearchGuard)
用root.pem重新生产节点证书和客户端证书

./sgtlstool.sh -c …/config/tlsconfig.yml -crt out/root-ca.pem -o

ElasticSearch集群动态扩容(集成了SearchGuard)

3.证书分发,重启旧节点

第一步:更改配置

先将其中的一个节点的证书分发出去并更改该节点的配置文件

cp ES-node-181* root-ca.pem /home/hadoopadmin/ES/elasticsearch-5.4.3/config/

cp admin* client* root-ca.pem /home/hadoopadmin/ES/elasticsearch-5.4.3/plugins/search-guard-5/tools/

根据新生成的ES-node-181_elasticsearch_config_snippet.yml 中的密码更改ElasticSearch配置文件中的密码

vim elasticsearch.yml

ElasticSearch集群动态扩容(集成了SearchGuard)
在discovery.zen.ping.unicast.hosts参数中增加新节点的ip和port信息

在配置文件中新增节点的dn信息

ElasticSearch集群动态扩容(集成了SearchGuard)

第二步:节点重启前准备:

提升同一个node上同时可写入写出的分片个数,增加恢复速度

PUT _cluster/settings

{

“transient”: {

​ “cluster.routing.allocation.node_concurrent_incoming_recoveries”:“4”,

​ “cluster.routing.allocation.node_concurrent_outgoing_recoveries”:“4”

}

}

提升同一个node上同时可写入写出的分片个数,增加恢复速度

PUT _cluster/settings

{

“transient”: {

​ “cluster.routing.allocation.node_concurrent_incoming_recoveries”:“4”,

​ “cluster.routing.allocation.node_concurrent_outgoing_recoveries”:“4”

}

}

第三步:先暂停集群的shard自动均衡。

停止数据自动回复

PUT _cluster/settings

{

“transient”: {

​ “cluster.routing.allocation.enable”:“none”

}

}

停掉一个旧节点

如果恢复的是数据不在增加的索引,可在分片恢复前执行下POST _flush/synced,方便从本地恢复shard数据。

重新启动旧节点

ElasticSearch集群动态扩容(集成了SearchGuard)
节点正常启动并且能够和其他节点正常通讯

第四步:恢复数据

PUT _cluster/settings

{

“transient”: {

​ “cluster.routing.allocation.enable”:“all”

}

}

观察ElasticSearch-head,重复执行上述步骤直到旧节点重启完毕,先滚动重启重启数据节点,重启一个后观察集群状态为绿色后在重启下一个节点,然后滚动重启备用master节点,并且可以观察到在重启过后,集群的masternode换了节点,最后重启activemaster节点。保证原集群的数据接入功能

4.新节点加入

准备两台新的节点保证节点数为(2n+1)

按照ES的安装流程,在新的节点上安装好ES ,并分别按照生成的ES-node-201_elasticsearch_config_snippet.yml配置文件配置好elasticsearch.yml

将节点证书和auditlog的依赖包拷贝过来

拷贝依赖(新增了auditlog的依赖)

scp dlic-search-guard-module-auditlog-5.3-7-jar-with-dependencies.jar [email protected]节点201:/home/lixiang/ES/elasticsearch-5.4.3/plugins/search-guard-5

scp dlic-search-guard-module-auditlog-5.3-7-jar-with-dependencies.jar [email protected]节点201:/home/hadoopadmin/ES/elasticsearch-5.4.3/plugins/search-guard-5

拷贝证书

scp admin* client* root-ca.pem [email protected]节点182:/home/hadoopadmin/ES/elasticsearch-5.4.3/plugins/search-guard-5/tools/

scp admin* client* root-ca.pem [email protected]节点201:/home/lixiang/ES/elasticsearch-5.4.3/plugins/search-guard-5/tools/

scp ES-node-182* root-ca.pem [email protected]节点182:/home/hadoopadmin/ES/elasticsearch-5.4.3/config/

scp ES-node-201* root-ca.pem [email protected]节点201:/home/lixiang/ES/elasticsearch-5.4.3/config/

最后启动新加入的节点,恢复ES自动路由功能

:/home/hadoopadmin/ES/elasticsearch-5.4.3/config/

scp ES-node-201* root-ca.pem [email protected]节点201:/home/lixiang/ES/elasticsearch-5.4.3/config/

最后启动新加入的节点,恢复ES自动路由功能