更新许可证 API
编辑更新许可证 API
编辑更新您的 Elasticsearch 集群的许可证。
先决条件
编辑- 如果启用了 Elasticsearch 安全功能,您需要
manage
集群权限才能安装许可证。 - 如果启用了 Elasticsearch 安全功能,并且您正在安装黄金或更高级别的许可证,则必须在安装许可证之前在传输网络层上启用 TLS。请参阅使用 TLS 加密节点间通信。
- 如果启用了操作员权限功能,则只有操作员用户可以使用此 API。
描述
编辑您可以在运行时更新许可证,而无需关闭节点。许可证更新会立即生效。但是,如果您安装的许可证不支持之前许可证提供的所有功能,您将在响应中收到通知。然后,您必须重新提交 API 请求,并将 acknowledge
参数设置为 true
。
有关不同类型许可证的更多信息,请参阅 https://elastic.ac.cn/subscriptions。
查询参数
编辑-
acknowledge
- (可选,布尔值)指定您是否确认许可证更改。默认值为
false
。
请求体
编辑-
licenses
- (必需,数组)包含许可证信息的一个或多个 JSON 文档的序列。
示例
编辑以下示例更新为基本许可证
resp = client.license.post( 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" } ], ) print(resp)
const response = await client.license.post({ 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", }, ], }); console.log(response);
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,则必须使用 https://
启动您的 URL
如果您之前拥有比基本许可证更多功能的许可证,您将收到以下响应
{ "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
。例如
resp = client.license.post( 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" } ], ) print(resp)
const response = await client.license.post({ 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", }, ], }); console.log(response);
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
有关许可证过期时禁用的功能的更多信息,请参阅许可证过期。