Elasticsearch 许可证更新指南:使用 Update License API 管理集群许可证
什么是 Elasticsearch 许可证
Elasticsearch 提供多种许可证级别,从免费的基础版到包含全部功能的企业版。许可证决定了您可以使用哪些高级功能,如安全认证、监控、告警等。通过 Update License API,您可以在不重启集群的情况下动态更新许可证。
更新许可证的前提条件
在开始更新许可证前,请确保满足以下条件:
-
权限要求:
- 如果启用了安全功能,您需要具备
manage集群权限 - 如果启用了操作员权限功能,只有操作员用户可以使用此 API
- 如果启用了安全功能,您需要具备
-
安全配置:
- 当安装黄金版或更高级别许可证时,必须在传输网络层启用 TLS
更新许可证的两种方法
方法一:直接提交 JSON 格式许可证
您可以直接通过 API 提交包含许可证信息的 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 -XPUT -u <用户名> 'http://<主机>:<端口>/_license' -H "Content-Type: application/json" -d @license.json
Windows 用户可以使用 PowerShell:
Invoke-WebRequest -uri http://<主机>:<端口>/_license -Credential elastic -Method Put -ContentType "application/json" -InFile .\license.json
参数说明:
<用户名>:具有适当权限的用户 ID<主机>:集群中任意节点的主机名(本地执行时为 localhost)<端口>:HTTP 端口(默认为 9200)license.json:许可证 JSON 文件
许可证降级处理
当从高级许可证降级到基础许可证时,系统会返回需要确认的响应:
{
"acknowledged": false,
"license_status": "valid",
"acknowledge": {
"message": "This license update requires acknowledgement...",
"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: ..."]
}
}
此时,您需要重新提交请求并添加 acknowledge=true 参数:
curl -XPUT -u elastic 'http://<主机>:<端口>/_license?acknowledge=true' -H "Content-Type: application/json" -d @license.json
重要注意事项
-
HTTPS 配置:如果 Elasticsearch 节点在 HTTP 接口上启用了 SSL,URL 必须以
https://开头 -
功能影响:降级许可证会导致部分功能不可用,请仔细评估业务需求
-
有效期管理:定期检查许可证有效期,避免过期导致服务中断
最佳实践建议
-
测试环境验证:在生产环境更新前,先在测试环境验证许可证更新过程
-
备份原许可证:更新前备份当前许可证,以便在出现问题时快速回滚
-
监控功能变化:更新后检查各功能模块是否按预期工作
-
计划性更新:选择业务低峰期进行许可证更新操作
通过合理管理 Elasticsearch 许可证,您可以确保集群始终以最佳状态运行,同时满足组织的合规性和功能需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



