- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- CSS服务权限管理
-
使用Elasticsearch搜索数据
- Elasticsearch使用流程
- Elasticsearch集群规划建议
- 创建Elasticsearch集群
- 访问Elasticsearch集群
- 导入数据至Elasticsearch集群
- 使用Elasticsearch集群搜索数据
- 增强Elasticsearch集群搜索能力
- 配置Elasticsearch集群网络
- 备份与恢复Elasticsearch集群数据
- 扩缩容Elasticsearch集群
- 升级Elasticsearch集群版本
- 管理Elasticsearch集群
- 管理Elasticsearch集群索引策略
- Elasticsearch集群监控与日志管理
- 查看Elasticsearch集群审计日志
- 使用OpenSearch搜索数据
- 使用Logstash迁移数据
- CSS服务资源监控
- 最佳实践
- API参考
- SDK参考
- 场景代码示例
-
常见问题
- 产品咨询
- 计费相关
- CSS集群访问
- CSS集群迁移
-
CSS集群搜索引擎使用
- CSS服务中为什么新创建的索引分片集中分配到单节点上?
- CSS服务中Elasticsearch 7.x集群如何在index下创建type?
- CSS服务中如何配置Elasticsearch索引副本数量?
- CSS服务中Elasticsearch集群分片过多会有哪些影响?
- 如何查看CSS集群的分片数以及副本数?
- CSS服务中Elasticsearch集群的节点node.roles为i表示什么意思?
- CSS服务中如何设置Elasticsearch集群的默认分页返回最大条数?
- CSS服务中如何更新Elasticsearch生命周期策略?
- CSS服务中如何设置Elasticsearch集群慢查询日志的阈值?
- CSS服务中如何清理Elasticsearch索引数据?
- CSS服务中如何清理Elasticsearch缓存?
- 使用delete_by_query命令删除Elasticsearch集群数据后,为什么磁盘使用率反而增加?
- CSS服务的Elasticsearch集群是否支持script dotProduct?
-
CSS集群管理
- 如何查看CSS集群所分布的可用区?
- CSS服务中Filebeat版本与集群版本的关系是什么?
- 如何获取CSS服务的安全证书?
- CSS服务中如何转换CER安全证书的格式?
- CSS服务中Elasticsearch和OpenSearch集群支持修改安全组吗?
- CSS服务中Elasticsearch集群如何设置search.max_buckets参数?
- CSS服务中如何修改Elasticsearch和OpenSearch集群的TLS算法?
- CSS服务中如何开启Elasticsearch和OpenSearch集群的安全审计日志?
- CSS服务中是否支持停止集群?
- CSS集群冻结索引后如何查询OBS上的索引占用量?
- 如何查看Elasticsearch和OpenSearch集群的系统默认插件列表
- CSS集群备份与恢复
- CSS集群监控与运维
-
故障排除
-
访问集群类
- 无法正常打开Kibana
- Elasticsearch针对filebeat配置调优
- Spring Boot使用Elasticsearch出现Connection reset by peer问题
- 为什么集群创建失败
- Elasticsearch集群出现写入拒绝“Bulk Reject”,如何解决?
- Elasticsearch集群创建index pattern卡住,如何解决?
- 云搜索控制台页面提示系统繁忙
- Elasticsearch集群报错:unassigned shards all indices
- es-head插件连接Elasticsearch集群报跨域错误
- 单节点集群打开Cerebro界面显示告警
- ECS无法连接到集群
- 集群不可用
- 数据导入导出类
-
功能使用类
- 无法备份索引
- 无法使用自定义词库功能
- 快照仓库找不到
- 集群一直处于快照中
- 数据量很大,如何进行快照备份?
- 集群突现load高的故障排查
- 使用ElasticSearch的HLRC(High Level Rest Client)时,报出I/O Reactor STOPPED
- Elasticsearch集群最大堆内存持续过高(超过90%)
- Elasticsearch集群更改规格失败
- 安全集群索引只读状态修改报错
- Elasticsearch集群某一节点分配不到shard
- 集群索引插入数据失败
- CSS创建索引报错“maximum shards open”
- 删除索引报错“403 Forbidden”是什么原因?
- Kibana中删除index pattern报错Forbidden
- 执行命令update-by-query报错“Trying to create too many scroll contexts”
- Elasticsearch集群无法创建pattern
- 端口访问类
-
访问集群类
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
升级OpenSearch集群版本
OpenSearch集群的版本升级功能仅支持同版本升级和跨版本升级。
场景描述
升级场景
- 同版本升级是升级集群的内核补丁。集群升级至当前版本的最新镜像,用于修复问题或优化性能。例如,集群版本为“1.3.6(1.3.6_24.3.3_0102)”,同版本升级后,集群版本会升级到7.10.2版本最新的镜像“1.3.6(1.3.6_24.3.4_0109)”(版本号仅做示例,非现网实际版本号)。
- 跨版本升级是升级集群的版本。集群升级至目标版本的最新镜像,用于功能加强或版本收编。例如,集群版本为“1.3.6(1.3.6_24.3.3_1224)”,跨版本升级后,集群版本会升级到7.10.2版本最新的镜像“2.17.1(2.17.1_24.3.4_0109)”(版本号仅做示例,非现网实际版本号)。
升级原理
升级过程采用的是one-by-one的方式,不会中断业务。升级时,先下线一个节点,将该节点的数据迁移到其余节点,再创建一个目标版本的新节点,将已下线节点的网卡port挂载到新节点,以此保留节点IP地址,待新节点加入到集群后,再依次将其余节点进行替换。当集群的数据量很大时,升级耗时将依赖数据迁移耗时。
升级流程
约束限制
- 最多同时支持20个集群升级,建议在业务低峰期进行升级操作。
- 待升级的集群不能存在正在进行中的任务。
- 升级任务一旦启动就无法中止,直到升级任务的“任务状态”显示“失败”或“成功”才结束。
- 升级过程中,存在节点替换的过程,此时如果有请求发送到替换中的节点,请求可能会失败。为防止该情况出现,建议通过终端节点服务或者独享型负载均衡器接入集群进行访问。
- 升级过程中会重建OpenSearch Dashboard和Cerebro组件,重建过程中,OpenSearch Dashboard和Cerebro可能会访问失败。而且,由于不同OpenSearch Dashboard版本相互不兼容,升级过程中OpenSearch Dashboard还可能因为版本不兼容而无法访问。访问失败的问题,待集群升级成功后会自动恢复。
升级前检查
为了保证升级成功,需要做升级前检查,升级前检查主要包括如下事项:
检查项 |
检查方式 |
描述 |
正常状态 |
---|---|---|---|
集群状态 |
系统检查 |
升级任务启动后,系统会自动检查集群状态。集群状态为green或者yellow,表示集群可以正常提供服务,不存在未分配的主分片。 |
“集群状态”为“可用”。 |
节点个数 |
系统检查 |
升级任务启动后,系统会自动检查节点个数。为了保证业务的连续性,集群中数据节点和冷数据节点的个数之和要不小于3。 |
集群的数据节点和冷数据节点个数之和 ≥ 3 |
磁盘容量 |
系统检查 |
升级任务启动后,系统会自动检查磁盘容量。升级过程中会逐一下线节点再新建节点,需要保证单节点下线后,其余节点的磁盘容量能够接纳该节点的所有数据。 |
下线单节点后,剩余节点能够包含集群的所有数据。 |
数据副本 |
系统检查 |
检测集群中索引的最大主备分片数是否能够分配到剩余数据节点和冷数据节点中,防止升级过程中出现节点下线后副本无法分配的情况。 |
索引的主备分片数的最大值+1 ≤ 升级前的数据节点数和冷数据节点之和 |
数据备份 |
系统检查 |
升级前要做好数据备份,防止升级故障数据丢失。在提交升级任务时,可以选择是否需要系统检查全量索引的快照备份。 |
确认是否存在数据备份。 |
资源充足 |
系统检查 |
升级任务启动后,系统会自动检查资源。升级过程中会新建资源,需要保证有资源可用。 |
资源可用且配额充足。 |
自定义插件 |
系统检查+人工检查 |
历史版本的集群装有自定义插件才需要进行该项检查。如果集群装有自定义插件,则需要在插件管理界面上传目标版本的所有插件包,升级过程中才能将自定义插件转入新节点中,否则集群升级成功后,自定义插件将丢失。升级任务启动后,系统会自动检查是否已经上传自定义插件包,但是上传的插件包是否正确需要人工检查。 如果上传的插件包不正确或者不兼容将导致升级过程中无法自动安装插件包,升级任务会失败。如果需要恢复集群,可以终止升级任务,执行替换OpenSearch集群指定节点操作,修复当前升级失败的节点。 升级完成后,自定义插件对应的“插件状态”将会重置为“已上传”状态。 |
装有自定义插件的集群已经把对应版本的插件包上传到升级插件列表中。 |
自定义配置 |
系统检查 |
升级过程中,系统会自动同步集群配置文件“opensearch.yml”中的内容。 |
如果集群有自定义的参数配置,升级完成后,配置都未丢失。 |
非标操作 |
人工检查 |
确认是否存在非标操作。非标操作指的是没有被记录下来的手动操作,这些操作在升级过程中无法自动传递,比如“opensearch_dashboards.yml”配置文件修改、系统配置、回程路由等。 |
有些非标操作是兼容的,例如安全插件的修改,可以通过元数据保留下来;系统配置修改,可以通过镜像的操作保留下来。但是有些非标操作例如“opensearch_dashboards.yml”文件修改就无法保留,需要提前备份。 |
兼容性检测 |
系统检查+人工检查 |
跨版本升级的升级任务启动后,系统会自动检测集群升级前后两个版本是否有不兼容配置。如果集群装有自定义插件,则自定义插件的版本兼容性需要人工检测。 |
跨版本升级时,升级前后没有不兼容的配置。 |
集群负载检测 |
系统检查+人工检查 |
当集群负载过高时,升级任务大概率会卡住或失败,建议升级前进行集群负载检测,选择在低负载的时候进行升级。 升级配置中也支持选择进行“集群负载检测”。 |
|
创建升级任务
- 登录云搜索服务管理控制台。
- 左侧导航栏选择“集群管理”,进入集群列表页面,单击目标集群名称,进入集群基本信息页面。
- 选择“版本升级”。
- 在升级页面,配置升级参数。
表2 升级参数说明 参数
描述
升级类型
- 同版本升级:升级集群的内核补丁,集群升级至当前版本的最新镜像。
- 跨版本升级:升级集群的版本,集群升级至目标版本的最新镜像。
目标镜像
选择目标版本的镜像。选中镜像后,下方会显示镜像名称和目标版本的详细说明。
实际支持的目标版本请以升级页面中“目标镜像”的可选值为准。如果无可选择目标镜像,有如下几个原因:
- 当前集群已是最新版本集群。
- 当前集群是23年之前创建的旧集群,且存在向量索引。
- 当前局点暂未录入新版本镜像。
- 当前集群不支持该类型的升级。
配置委托
删除节点会释放网卡,需要VPC的操作权限。选择IAM委托,授权当前账号访问和使用VPC的权限。
- 当首次配置委托时,可以单击“自动创建委托”新建委托“css-upgrade-agency”直接使用。
- 当已有自动创建的委托时,可以单击“委托一键授权”,自动删除委托中VPC Administrator系统角色和VPC FullAccess系统策略的权限,且自动新增如下自定义策略授权委托到最小化权限。
"vpc:subnets:get", "vpc:ports:*"
- 执行“自动创建委托”和“委托一键授权”的用户需要如下最小权限。
"iam:agencies:listAgencies", "iam:roles:listRoles", "iam:agencies:getAgency", "iam:agencies:createAgency", "iam:permissions:listRolesForAgency", "iam:permissions:grantRoleToAgency", "iam:permissions:listRolesForAgencyOnProject", "iam:permissions:revokeRoleFromAgency", "iam:roles:createRole"
- 使用委托的用户需要如下最小权限。
"iam:agencies:listAgencies", "iam:agencies:getAgency", "iam:permissions:listRolesForAgencyOnProject", "iam:permissions:listRolesForAgency"
- 配置完成后,单击“确认提交”。确认是否进行“全量索引快照备份检测”和“集群负载检测”,单击“确定”启动升级任务。
当集群负载过高时,升级任务大概率会卡住或失败。增加“集群负载检测”可以有效避免失败。
检测中如果出现以下四种情况,请等待或者主动降低负载。如果需求紧急且已了解升级失败风险,也可以不做“集群负载检测”。“集群负载检测”检测项包含:
- 最大search队列排队数小于1000(nodes.thread_pool.search.queue < 1000)
- 最大write队列排队数小于200(nodes.thread_pool.write.queue < 200)
- 最大cpu使用率小于90%(nodes.process.cpu.percent < 90)
- 最大load相对核数占比小于80%( nodes.os.cpu.load_average / cpu核数 < 80%)
- 在“任务记录”列表,显示当前升级任务。当“任务状态”为“运行中”时,可以展开任务列表,单击“查看进度”查看详细的升级进度。
当“任务状态”为“失败”时,可以重试任务或者直接终止任务。
- 重试升级:在任务列表的操作列,单击“重试”,重新升级。
- 终止升级:在任务列表的操作列,单击“终止”,结束升级。
须知:
- 同版本升级:当升级的“任务状态”为“失败”即可终止升级任务。
- 跨版本升级:当升级的“任务状态”为“失败”时,且没有任何节点升级成功的,才可以终止升级任务。
当升级任务终止后,集群的“任务状态”将清空“升级失败”的状态,相当于集群回退到升级前状态,不影响集群进行其他任务。