
# 修改集群参数
在使用OpenSearch集群时，经常需要根据业务需求调整集群行为，例如前端应用需要跨域访问集群接口、查询性能需要通过调整缓存来优化、Dashboards会话需要延长超时时间等。CSS服务提供参数配置功能，支持在线修改"opensearch.yml"、"opensearch_dashboards.yml"和"system.config"配置文件，实现集群核心参数、可视化平台参数的灵活调整，适用于跨域访问配置、查询性能优化、Dashboards可视化平台行为定制等场景。
#### 配置文件说明
CSS集群的运行依赖以下配置文件，各文件职责不同、修改入口不同，三者互不影响，需分别修改。
表1配置文件类型说明 
| 配置文件                      | 配置范围                                                                                                                                                             | 生效范围                                                                                             |
|:---|:---|:---|
| opensearch.yml            | 集群的核心配置参数，包括跨域访问、索引重建、查询缓存、线程池等。                                                                                                                                 | 修改后，所有节点在手动重启集群时加载新配置。                                                                           |
| opensearch_dashboards.yml | 可视化平台的独立配置参数，如会话超时时间、缺省跳转页面、界面显示等。                                                                                                                               | 修改后，仅Dashboards组件在重启Dashboards进程时加载新配置，不影响集群节点。仅对公网地址和内网地址访问的Dashboards生效，控制台一键访问的Dashboards不生效。 |
| system.config             | SAML身份提供商（idP）的元数据文件，详情请参见[SAML - OpenSearch Documentation](https://docs.opensearch.org/2.19/security/authentication-backends/saml/#identity-provider-metadata)。 | 配置后，会在OpenSearch config目录下生成"descriptor.xml"文件，所有节点在手动重启集群时加载该文件。                                |
   
参数修改的生效流程如下：
1. 修改参数：在参数配置页面编辑对应模块的参数值。
2. 保存参数：CSS将修改写入对应配置文件。
3. 重启集群/进程：各节点或组件重新加载配置文件。
4. 参数生效：重启完成后，新配置生效。
 
#### 约束限制
- 仅当OpenSearch集群版本号为2.19.0时，才支持修改"system.config"。
- 自定义参数必须配置为对应组件支持的参数，否则集群或组件重启会失败，建议谨慎操作。
- 修改"opensearch.yml"和"system.config"参数后需手动重启集群才能生效。
- 系统最多显示20条修改记录。
- 建议在业务低峰期修改参数并重启集群，避免影响业务运行。
 
#### 修改OpenSearch配置（opensearch.yml）
修改OpenSearch集群的核心运行参数，包括跨域访问、索引重建、查询缓存和线程池等。
1. 登录[云搜索服务管理控制台](https://console.huaweicloud.com/elasticsearch/)
2. 在左侧导航栏，选择"集群管理 \> OpenSearch"。
3. 在集群列表，单击目标集群的名称，进入集群详情页。
4. 选择"集群配置 \> 参数配置 \> OpenSearch配置"。
5. 单击"编辑"，根据需求修改对应模块的参数值。
   表2模块参数信息说明 
   | 模块名称    | 参数名称                         | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   |:---|:---|:---|
   | 跨域访问    | http.cors.allow-credentials  | 控制跨域请求是否携带身份验证信息，即是否返回头部的Access-Control-Allow-Credentials字段。 取值范围： - true：响应头将包含Access-Control-Allow-Credentials字段。  - false（默认值）：响应头不包含Access-Control-Allow-Credentials字段。   |
   | 跨域访问    | http.cors.allow-origin       | 指定允许跨域访问的源地址（IP地址或域名），多值时用英文逗号分隔。 示例格式："192.168.122.122:9200"或"192.168.1.1:9200, 192.168.1.2:9200"。                                                                                                                                                                                                                                                                                                                                                       |
   | 跨域访问    | http.cors.allow-headers      | 设置跨域访问允许的请求头字段，多值时用英文逗号加空格分隔。 示例："X-Requested-With, Content-Type, Content-Length"。 字符串长度限制：最大1024字符，仅允许字母、数字、"-"、"_"和"/"。                                                                                                                                                                                                                                                                                  |
   | 跨域访问    | http.cors.max-age            | 设置浏览器缓存预检请求响应的最大时间长度。 单位：秒 取值范围：0\~31536000（约1年） 默认值：1728000（20天）                                                                                                                                                                                                                                                                                          |
   | 跨域访问    | http.cors.enabled            | 是否启用跨域访问功能。 取值范围： - true：启用跨域访问。  - false（默认值）：禁用跨域访问。                                                                                                                                                  |
   | 跨域访问    | http.cors.allow-methods      | 跨域访问允许的HTTP方法，多值时用英文逗号加空格分隔。 示例："OPTIONS, GET, POST"。 取值范围：OPTIONS、HEAD、GET、POST、PUT、DELETE。                                                                                                                                                                                                                                                                                                              |
   | 集群索引重建  | reindex.remote.whitelist     | 指定允许通过Reindex接口迁移数据的远程集群地址，多值时用英文逗号分隔。 示例格式："192.168.122.122:9200"或"192.168.1.1:9200, 192.168.1.2:9200"。                                                                                                                                                                                                                                                                                                                                                |
   | 自定义缓存   | indices.queries.cache.size   | 控制查询缓存占用的内存比例。 单位：百分比（%） 取值范围：1\~100 默认值：10%                                                                                                                                                                                                                                                                                                           |
   | 线程池队列大小 | thread_pool.force_merge.size | 控制force_merge操作的线程池队列大小。 取值范围：正整数 默认值：1                                                                                                                                                                                                                                                                                                                                                                |
   | 自定义     | -                            | 单击"新增参数"，添加或修改OpenSearch支持的参数。 警告： 自定义参数必须配置为OpenSearch支持的参数，否则集群重启会失败，建议谨慎操作，以免影响业务。                                                                                                                                                                                                                                                                                                                   |
      
   
6. 修改完成后，单击"保存"，在弹窗中确认参数无误后勾选重启提示，单击"确定"。 当下方的参数配置任务列表显示"作业状态"为"成功"时，表示修改保存成功。
   
7. 在页面右上角单击"重启"，集群将重启以使配置更改生效。
8. 重启完成后，在集群列表确认"集群状态"为"可用"，表示参数已生效。
 
#### 修改Dashboards配置（opensearch_dashboards.yml）
修改Dashboards可视化平台的运行参数，例如调整会话超时时间、配置缺省跳转页面或修改界面显示语言等。
1. 登录[云搜索服务管理控制台](https://console.huaweicloud.com/elasticsearch/)。
2. 在左侧导航栏，选择"集群管理 \> OpenSearch"。
3. 在集群列表，单击目标集群名称，进入集群详情页。
4. 选择"集群配置 \> 参数配置 \> Dashboards配置"。
5. 单击"编辑"，根据需求修改对应模块的参数值。
   表3模块参数信息说明 
   | 模块名称 | 参数名称                   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   |:---|:---|:---|
   | 基础路径 | server.basePath        | 自定义Base Path的参数值。 当需要通过反向代理（如Nginx）访问OpenSearch Dashboards时，此参数值将会作为一个子路径跟在代理地址后面。例如反向代理的地址是"http://example.com"，"server.basePath"是"/test"，则通过地址"http://example.com/test"即可访问OpenSearch Dashboards。 取值范围： - 必须以"/"开头。  - 不能有连续的斜杠（如"//"）。  - 只能包含字母、数字、短横线"-"、下划线"_"、点"."和"/"。  - 允许多层路径，但长度不能超过254字符。  - 不能以"/"结尾。   |
   | 基础路径 | server.rewriteBasePath | 指定由OpenSearch Dashboards还是反向代理移除请求路径中server.basePath前缀。 可选配置，如果没有使用反向代理访问OpenSearch Dashboards的需求，则忽略此参数。 取值范围： - true，表示OpenSearch Dashboards会自动移除请求路径中的server.basePath前缀。  - false（默认值），表示需要由反向代理（如Nginx）来移除请求路径中的server.basePath前缀。此时只能通过反向代理访问OpenSearch Dashboards。                                                                                                                                                                                                                                                                                                                                                          |
   | 自定义  | -                      | 单击"新增参数"，添加或修改OpenSearch Dashboards支持的参数。 警告： 自定义参数必须配置为Dashboards支持的参数，否则Dashboards进程重启会失败，建议谨慎操作。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
      
   
6. 修改完成后，单击"保存"，在弹窗中确认参数无误后勾选重启提示，单击"确定"。修改Dashboards配置会自动重启Dashboards进程，该操作会短暂影响OpenSearch Dashboards访问，请稍后重试。 当下方的参数配置任务列表显示"作业状态"为"成功"时，表示参数已生效。
   
 
#### 修改系统配置（system.config）
![](https://support.huaweicloud.com/usermanual-css/public_sys-resources/caution_3.0-zh-cn.png)
仅当OpenSearch集群版本号为2.19.0时，才支持修改"system.config"。
修改系统配置参数，在"opensearch.yml"配置文件的同级目录下生成或修改"descriptor.xml"文件。
1. 登录[云搜索服务管理控制台](https://console.huaweicloud.com/elasticsearch/)。
2. 在左侧导航栏，选择"集群管理 \> OpenSearch"。
3. 在集群列表，单击目标集群名称，进入集群详情页。
4. 选择"集群配置 \> 参数配置 \> 系统配置"。
5. 单击"编辑"，在"系统配置"模块输入"descriptor.xml"文件内容。 文件内容大小不超过100KB（102400字节/字符，含换行符）。
   
6. 修改完成后，单击"保存"，在弹窗中确认参数无误后勾选重启提示，单击"确定"。 当下方的参数配置任务列表显示"作业状态"为"成功"时，表示修改保存成功。
   
7. 在页面右上角单击"重启"，集群将重启以使配置更改生效。
8. 重启完成后，在集群列表确认"集群状态"为"可用"，表示"descriptor.xml"文件已生效。
 
#### 相关文档
- 修改参数后需重启集群使配置生效，操作指导请参见[重启集群](https://support.huaweicloud.com/usermanual-css/css_01_0286.html)。
- 更多OpenSearch支持的参数，请参见[OpenSearch官方文档](https://opensearch.org/docs/latest/)。
- 更多OpenSearch Dashboards支持的参数，请参见[OpenSearch Dashboards官方文档](https://opensearch.org/docs/latest/dashboards/)。
 
#### 常见问题
- **问题1：修改参数后集群状态显示"配置错误"怎么办？**
  "配置错误"表示修改的参数配置文件存在不合法的参数值。请在参数配置任务列表中查看具体的错误信息，根据提示修正参数值后重新保存并重启。如果是自定义参数导致的错误，请确认该参数是否为对应组件官方支持的参数。
  
- **问题2：修改参数后忘记重启，会有什么影响？**
  - 修改"opensearch.yml"和"system.config"参数后未重启集群时，配置不会生效，集群仍使用旧配置运行。集群列表的"任务状态"栏会显示"配置未更新"提醒。建议在修改参数后及时重启集群。
  
  - 修改"opensearch_dashboards.yml"参数会自动重启Dashboards进程无需重启集群，进程重启成功配置立即生效。
   
 
