You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Docker将ELK集群从7.10版本升级至7.17版本

Docker Compose部署的Elasticsearch 3节点集群+Kibana从7.10升级至7.17分步指南

一、升级前准备

  • 备份数据:两种方式选其一
    • ES快照备份:docker exec <es-node-container-name> /usr/share/elasticsearch/bin/elasticsearch-snapshot repo create local_backup --type fs --settings location=/usr/share/elasticsearch/backup,执行快照:docker exec <es-node-container-name> /usr/share/elasticsearch/bin/elasticsearch-snapshot create --wait-for-completion true upgrade_backup
    • 数据卷目录备份:假设ES节点数据卷挂载路径为./es-node1-data,执行tar -czf es-data-backup-$(date +%Y%m%d).tar.gz ./es-node1-data ./es-node2-data ./es-node3-data
  • 检查集群状态:确保集群健康状态为green或yellow,执行docker exec es-node1 curl -XGET 'http://localhost:9200/_cluster/health?pretty'
  • 停止Kibana:docker-compose stop kibana

二、滚动升级Elasticsearch节点

7.x版本内支持滚动升级,无需停机,按顺序逐个升级节点:

1. 升级第一个节点(es-node1)

  • 打开docker-compose.yml,将es-node1的镜像从elasticsearch:7.10.2改为elasticsearch:7.17.16(选择7.17系列最新小版本)
  • 重启节点:docker-compose up -d es-node1
  • 等待节点启动:执行docker exec es-node1 curl -XGET 'http://localhost:9200/_nodes/es-node1?pretty',确认节点status为started
  • 等待集群恢复:执行docker exec es-node1 curl -XGET 'http://localhost:9200/_cluster/health?wait_for_status=yellow&timeout=60s',确保集群可用

2. 升级第二个节点(es-node2)

  • 修改docker-compose.yml中es-node2的镜像为elasticsearch:7.17.16
  • 重启节点:docker-compose up -d es-node2
  • 重复上述检查步骤,确认节点启动、集群状态恢复后,再升级下一个节点

3. 升级第三个节点(es-node3)

  • 修改docker-compose.yml中es-node3的镜像为elasticsearch:7.17.16
  • 重启节点:docker-compose up -d es-node3
  • 验证所有节点版本:执行docker exec es-node1 curl -XGET 'http://localhost:9200/_nodes?pretty',确认所有节点版本均为7.17.x

4. 更新集群内部版本元数据

所有节点升级完成后,执行命令更新集群版本标记:

docker exec es-node1 curl -XPUT 'http://localhost:9200/_cluster/settings?pretty' -H 'Content-Type: application/json' -d'
{
  "persistent": {
    "cluster.metadata.version.upgrade": "7.17.16"
  }
}
'

三、升级Kibana

  • 修改docker-compose.yml中Kibana的镜像从kibana:7.10.2改为kibana:7.17.16
  • 启动Kibana:docker-compose up -d kibana
  • 验证版本:访问Kibana控制台(默认地址http://<服务器IP>:5601),进入Management > Stack Management > About,确认版本为7.17.x

四、升级后验证

  • 检查ES集群健康:docker exec es-node1 curl -XGET 'http://localhost:9200/_cluster/health?pretty',确保状态为green
  • 测试索引读写:
    # 创建测试索引
    docker exec es-node1 curl -XPUT 'http://localhost:9200/test-upgrade-demo'
    # 写入测试数据
    docker exec es-node1 curl -XPOST 'http://localhost:9200/test-upgrade-demo/_doc' -H 'Content-Type: application/json' -d'{"content": "upgrade test success"}'
    # 查询数据
    docker exec es-node1 curl -XGET 'http://localhost:9200/test-upgrade-demo/_search?pretty'
    
  • 验证Kibana功能:尝试创建可视化图表、查看索引管理界面,确保所有功能正常

内容的提问来源于stack exchange,提问作者Boodle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:24:27