【ES】Elasticsearch集群迁移时如何同步插件、配置以及kibana Dashboard

说明

如果想将已有ES集群迁移到新的ES集群(不用重新下载插件以及重新配置),一个方法是打包文件传输到新集群,仅更改集群中节点IP就可完成迁移,主要迁移内容有:

  • ES配置文件
  • 插件(如:分词器)及插件配置文件
  • kibana Dashboard

环境

  • ES 7.6.1
  • kibana 7.6.1
  • elasticsearch-head 5
  • 配置文件、数据、插件均已挂载

迁移

迁移ELK

serverA: 源服务器IP
serverB: 目标服务器IP (ES集群节点1)
serverC: 目标服务器IP (ES集群节点2)

# 在源服务器上打包[ES配置文件和插件]
tar czvf elasticsearch-backup.tar.gz /etc/opt/elasticsearch/config /etc/opt/elasticsearch/plugins

# 传输压缩包到另一台服务器
scp elasticsearch-backup.tar.gz root@serverB:/etc/opt/elasticsearch

# 解压
tar xzvf elasticsearch-backup.tar.gz -C /

# 拉取同版本镜像(elasticsearch、kibana、elasticsearch-head)
docker pull  docker.elastic.co/elasticsearch/elasticsearch:7.6.1
docker pull docker.elastic.co/kibana/kibana:7.6.1
docker pull mobz/elasticsearch-head:5


# 新建挂载文件夹及权限
mkdir  -m 777 -p /etc/opt/elasticsearch/logs/es01 # 日志
mkdir -m 777 -p  /data/esdata/es01 # 数据
chmod 777 /etc/opt/elasticsearch/config/es01 # 配置,此为解压文件
chmod 777 /etc/opt/elasticsearch/plugins/es01 # 插件,此为解压文件

# 设置ES内存
sysctl -w vm.max_map_count=262144

#在服务器B上运行节点1
docker run --name es01 --net elastic -p 9200:9200 -p 9300:9300 -v /data/esdata/es01:/usr/share/elasticsearch/data \
-v /etc/opt/elasticsearch/config/es01 :/usr/share/elasticsearch/config \
-v /etc/opt/elasticsearch/plugins/es01 :/usr/share/elasticsearch/plugins \
-v /etc/opt/elasticsearch/logs/es01 :/usr/share/elasticsearch/logs \
-d  docker.elastic.co/elasticsearch/elasticsearch:7.6.1 
# -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" 

对于serverC节点2(非master),以上配置相同,但elasticsearch.yml文件不同

# 修改非主节点的集群发现IP,更改为新服务器IP
vim /etc/opt/elasticsearch/config/es02/elasticsearch.yml
discovery.seed_hosts: ["serveB:9300", "serveC:9300"]

注意:

  • 如果接口超时,一个可能的解决方案是显示指定publish_host为服务器IP
http.publish_host: serveC
#在新服务器serveC上run es02
docker run --name es02 --net elastic -p  9200:9200 -p 9300:9300  -v /data/esdata/es02:/usr/share/elasticsearch/data \
-v /etc/opt/elasticsearch/config/es02:/usr/share/elasticsearch/config \
-v /etc/opt/elasticsearch/plugins/es02:/usr/share/elasticsearch/plugins \
-v /etc/opt/elasticsearch/logs/es02:/usr/share/elasticsearch/logs \
-d docker.elastic.co/elasticsearch/elasticsearch:7.6.1 

启动elasticsearch-head

docker run --restart=always --name elasticsearch-head -di --net elastic -p 9100:9100  docker.io/mobz/elasticsearch-head:5

访问IP:serverB:9100

启动kibana

 docker run --name kibana --net elastic -p 5601:5601 -d docker.elastic.co/kibana/kibana:7.6.1
docker exec -it kibana bash

vi kibana.yml 修改 kibana.yml 配置文件
docker restart kibana

修改 kibana.yml 配置文件中的 Elasticsearch URL 配置项并重启 Kibana

# vi kibana.yml内容
elasticsearch.hosts: [ "http:/serverB:9200" ]

访问:serverB:5601

kibana Dashboard

  1. 导出 Dashboard
    1. 打开 Kibana,并转到 ManagementStack Management 部分(取决于 Kibana 的版本)。
    2. 选择 Saved Objects
    3. 使用搜索框找到您要导出的 Dashboard。
    4. 选中 Dashboard,然后点击 Export 按钮。这会为您下载一个包含 Dashboard 定义的 JSON 文件。
  2. 导入到另一个 Elasticsearch 集群的 Kibana
    1. 打开目标 Elasticsearch 集群的 Kibana。
    2. 同样转到 ManagementStack Management 部分。
    3. 选择 Saved Objects
    4. 点击 Import 按钮。
    5. 从文件系统选择之前导出的 JSON 文件,并上传。

你可能感兴趣的:(elasticsearch,大数据,docker)