配置 OpenSearch
动态设置
动态索引设置是可以随时更新的设置。您可以通过集群设置 API 配置 OpenSearch 动态设置。有关详细信息,请参阅使用 API 更新集群设置。
如果可能,请使用集群设置 API;opensearch.yml
是每个节点的本地文件,而 API 将设置应用于集群中的所有节点。
静态设置
某些操作是静态的,需要您修改 opensearch.yml
配置文件并重启集群。一般来说,这些设置与网络、集群形成和本地文件系统有关。要了解更多信息,请参阅集群形成。
将设置指定为环境变量
您可以通过以下方式指定环境变量。
启动时的参数
您可以在启动 OpenSearch 时使用 -E
将环境变量指定为参数
./opensearch -Ecluster.name=opensearch-cluster -Enode.name=opensearch-node1 -Ehttp.host=0.0.0.0 -Ediscovery.type=single-node
直接在 shell 环境中
您可以在启动 OpenSearch 之前直接在 shell 环境中配置环境变量,如下例所示
export OPENSEARCH_JAVA_OPTS="-Xms2g -Xmx2g"
export OPENSEARCH_PATH_CONF="/etc/opensearch"
./opensearch
Systemd 服务文件
当 OpenSearch 作为由 systemd
管理的服务运行时,您可以在服务文件中指定环境变量,如下例所示
# /etc/systemd/system/opensearch.service.d/override.conf
[Service]
Environment="OPENSEARCH_JAVA_OPTS=-Xms2g -Xmx2g"
Environment="OPENSEARCH_PATH_CONF=/etc/opensearch"
创建或修改文件后,使用以下命令重新加载 systemd 配置并重启服务
sudo systemctl daemon-reload
sudo systemctl restart opensearch
Docker 环境变量
在 Docker 中运行 OpenSearch 时,您可以使用 docker run
命令的 -e
选项指定环境变量,如下所示
docker run -e "OPENSEARCH_JAVA_OPTS=-Xms2g -Xmx2g" -e "OPENSEARCH_PATH_CONF=/usr/share/opensearch/config" opensearchproject/opensearch:latest
使用 API 更新集群设置
更改设置的第一步是通过发送以下请求来查看当前设置
GET _cluster/settings?include_defaults=true
有关非默认设置的更简洁摘要,请发送以下请求
GET _cluster/settings
集群设置 API 中存在三类设置:持久设置、瞬态设置和默认设置。持久设置在集群重启后仍会保留。重启后,OpenSearch 会清除瞬态设置。
如果您在多个位置指定相同的设置,OpenSearch 将使用以下优先级
- 瞬态设置
- 持久设置
- 来自
opensearch.yml
的设置 - 默认设置
要更改设置,请使用集群设置 API 并将新值指定为持久或瞬态。此示例显示了平面设置形式
PUT _cluster/settings
{
"persistent" : {
"action.auto_create_index" : false
}
}
您还可以使用扩展形式,它允许您从 GET 响应中复制和粘贴并更改现有值
PUT _cluster/settings
{
"persistent": {
"action": {
"auto_create_index": false
}
}
}
配置文件
opensearch.yml
位于每个节点的 /usr/share/opensearch/config/opensearch.yml
(Docker)或 /etc/opensearch/opensearch.yml
(大多数 Linux 发行版)中。
您可以编辑 OPENSEARCH_PATH_CONF=/etc/opensearch
以更改配置目录位置。此变量来源于 /etc/default/opensearch
(Debian 包)和 /etc/sysconfig/opensearch
(RPM 包)。
如果您设置了自定义的 OPENSEARCH_PATH_CONF
变量,请注意其他默认环境变量将不会被加载。
您无需将 opensearch.yml
中的设置标记为持久或瞬态,并且设置使用平面形式
cluster.name: my-application
action.auto_create_index: true
compatibility.override_main_response_version: true
演示配置包含一些安全插件设置,您应该在使用 OpenSearch 进行生产工作负载之前对其进行修改。要了解更多信息,请参阅安全性。
(可选)CORS 标头配置
如果您正在处理在不同域上针对 OpenSearch 集群运行的客户端应用程序,您可以在 opensearch.yml
中配置标头,以允许在同一台机器上开发本地应用程序。使用 跨域资源共享,以便您的应用程序可以调用本地运行的 OpenSearch API。在您的 custom-opensearch.yml
文件中添加以下行(请注意,“-“ 必须是每行的第一个字符)。
- http.host:0.0.0.0
- http.port:9200
- http.cors.allow-origin:"https://"
- http.cors.enabled:true
- http.cors.allow-headers:X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
- http.cors.allow-credentials:true