OpenSearch执行securityadmin.sh报.opendistro_security主分片未激活超时错误
OpenSearch securityadmin执行报错解决方案
问题1:.opendistro_security索引主分片未激活超时
- 优先排查集群基础状态,执行
GET _cluster/health确认集群状态:- 若集群为red状态,先检查4台节点的9200、9300端口互通性,确认防火墙、安全组规则已放通对应端口
- 核对所有节点
opensearch.yml中discovery.seed_hosts、cluster.initial_master_nodes配置一致,无节点IP/hostname填写错误 - 检查所有节点的证书权限是否正确:证书文件需设置为600权限,属主为OpenSearch运行用户,根证书
root-ca.pem所有节点保持一致
- 若集群状态正常但分片未分配,执行
GET _cluster/allocation/explain查看具体原因:- 若为分配策略限制,执行
PUT _cluster/settings {"persistent": {"cluster.routing.allocation.enable": "all"}}放开分配限制 - 若为节点磁盘使用率超出阈值,清理磁盘空间或调整磁盘水位线配置
- 首次初始化场景下可删除损坏的旧安全索引:执行
DELETE .opendistro_security,重新运行securityadmin脚本时会自动重建该索引
- 若为分配策略限制,执行
问题2:配置内容长度超出上限
该报错是因为OpenSearch默认单文档写入上限为2kb,安全配置文件体积超出阈值导致,按以下步骤调整:
- 临时关闭所有节点的安全插件校验:在
opensearch.yml中添加plugins.security.disabled: true配置,重启整个集群 - 调整集群全局写入上限:
PUT _cluster/settings { "persistent": { "http.max_content_length": "10mb" } } - 调整安全索引的字段限制:
PUT .opendistro_security/_settings { "index.mapping.total_fields.limit": 1000 } - 移除所有节点
opensearch.yml中的plugins.security.disabled: true配置,重启集群 - 可选优化:精简securityconfig目录下的配置文件,删除未使用的角色、认证域配置,降低配置体积
修正后的securityadmin执行命令
原执行命令中-h参数后未填写主节点地址,也是执行失败的常见原因,修正后参考命令:
./securityadmin.sh -cd ../securityconfig/ -nhnv \ -cacert ../../../config/root-ca.pem \ -cert ../../../config/kirk.pem \ -key ../../../config/kirk-key.pem \ -h <主节点IP或主机名> \ -cn apm-cluster-1 -arc -diagnose
将<主节点IP或主机名>替换为实际的OpenSearch主节点地址即可。
内容的提问来源于stack exchange,提问作者noamsh88
相关产品推荐
相关产品推荐

