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

到ssl工具的目录下

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

cd tools/out

vim root-ca.readme

ES集群 磁盘剩余空间大小进行平衡 es集群动态扩容_elasticsearch

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

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

vim tlsconfig.yml

ES集群 磁盘剩余空间大小进行平衡 es集群动态扩容_hadoop_02


将pkPassword密码更改为上面的root-ca.readme中的root pkPassword密码

2.备份之前的节点证书

cp out/ outBak

修改tlsconfig.yml配置文件,将新增的机器节点加入进来

ES集群 磁盘剩余空间大小进行平衡 es集群动态扩容_hadoop_03


用root.pem重新生产节点证书和客户端证书

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

ES集群 磁盘剩余空间大小进行平衡 es集群动态扩容_重启_04

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

ES集群 磁盘剩余空间大小进行平衡 es集群动态扩容_大数据_05


在discovery.zen.ping.unicast.hosts参数中增加新节点的ip和port信息

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

ES集群 磁盘剩余空间大小进行平衡 es集群动态扩容_重启_06

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

提升同一个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数据。

重新启动旧节点

ES集群 磁盘剩余空间大小进行平衡 es集群动态扩容_重启_07


节点正常启动并且能够和其他节点正常通讯

第四步:恢复数据
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 lixiang@节点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 hadoopadmin@节点201:/home/hadoopadmin/ES/elasticsearch-5.4.3/plugins/search-guard-5

拷贝证书

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

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

scp ES-node-182* root-ca.pem hadoopadmin@节点182:/home/hadoopadmin/ES/elasticsearch-5.4.3/config/

scp ES-node-201* root-ca.pem lixiang@节点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 lixiang@节点201:/home/lixiang/ES/elasticsearch-5.4.3/config/

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