更新许可证 API
编辑更新许可证 API编辑
更新 Elasticsearch 集群的许可证。
先决条件编辑
- 如果启用了 Elasticsearch 安全功能,则需要
manage
集群权限 才能安装许可证。 - 如果启用了 Elasticsearch 安全功能并且您要安装黄金级或更高级别的许可证,则必须在安装许可证之前在传输网络层上启用 TLS。请参阅 使用 TLS 加密节点间通信。
- 如果启用了 操作员权限 功能,则只有操作员用户可以使用此 API。
描述编辑
您可以在运行时更新许可证,而无需关闭节点。许可证更新会立即生效。但是,如果您要安装的许可证不支持先前许可证提供的所有功能,则会在响应中收到通知。然后,您必须重新提交 API 请求,并将 acknowledge
参数设置为 true
。
有关不同类型许可证的更多信息,请参阅 https://elastic.ac.cn/subscriptions。
查询参数编辑
-
acknowledge
- (可选,布尔值)指定您是否确认许可证更改。默认值为
false
。
请求正文编辑
-
licenses
- (必填,数组)包含许可证信息的一个或多个 JSON 文档的序列。
示例编辑
以下示例更新为基本许可证
PUT _license { "licenses": [ { "uid":"893361dc-9749-4997-93cb-802e3d7fa4xx", "type":"basic", "issue_date_in_millis":1411948800000, "expiry_date_in_millis":1914278399999, "max_nodes":1, "issued_to":"issuedTo", "issuer":"issuer", "signature":"xx" } ] }
这些值无效;您必须从许可证文件中替换适当的内容。
您还可以使用 curl
命令安装许可证文件。请确保在许可证文件路径前添加 @
,以指示 curl 将其视为输入文件。
curl -XPUT -u <user> 'http://<host>:<port>/_license' -H "Content-Type: application/json" -d @license.json
在 Windows 上,使用以下命令
Invoke-WebRequest -uri http://<host>:<port>/_license -Credential elastic -Method Put -ContentType "application/json" -InFile .\license.json
在这些示例中,
-
<user>
是具有相应权限的用户 ID。 -
<host>
是 Elasticsearch 集群中任何节点的主机名(如果在本地执行,则为localhost
) -
<port>
是 http 端口(默认为9200
) -
license.json
是许可证 JSON 文件
如果您的 Elasticsearch 节点在 HTTP 接口上启用了 SSL,则必须在 URL 前面加上 https://
如果您之前的许可证具有比基本许可证更多的功能,则会收到以下响应
{ "acknowledged": false, "license_status": "valid", "acknowledge": { "message": """This license update requires acknowledgement. To acknowledge the license, please read the following messages and update the license again, this time with the "acknowledge=true" parameter:""", "watcher": [ "Watcher will be disabled" ], "logstash": [ "Logstash will no longer poll for centrally-managed pipelines" ], "security": [ "The following X-Pack security functionality will be disabled: ..." ] } }
要完成更新,您必须重新提交 API 请求并将 acknowledge
参数设置为 true
。例如
PUT _license?acknowledge=true { "licenses": [ { "uid":"893361dc-9749-4997-93cb-802e3d7fa4xx", "type":"basic", "issue_date_in_millis":1411948800000, "expiry_date_in_millis":1914278399999, "max_nodes":1, "issued_to":"issuedTo", "issuer":"issuer", "signature":"xx" } ] }
或者
curl -XPUT -u elastic 'http://<host>:<port>/_license?acknowledge=true' -H "Content-Type: application/json" -d @license.json
有关许可证过期后禁用的功能的更多信息,请参阅 许可证过期。