Elasticsearch集群许可证管理

1.许可证有效期管理

Elasticsearch集群许可证有效期查看


1.通过kibana查看:

Your Basic license is active
Your license will expire on May 30, 2019 7:59 AM CST.

2.通过ES的http接口查看:

curl -XGET -u admin:password 'http://<host>:<port>/_license'
集群没有帐号密码的,忽略-u参数

看到的帐号信息如下:

"license" : {
"status" : "active",
"uid" : "6187622c-8372-4cab-95ff-00ae82de241f",
"type" : "basic",
"issue_date" : "2018-05-29T00:00:00.000Z",
"issue_date_in_millis" : 1527552000000,
"expiry_date" : "2019-05-29T23:59:59.999Z",
"expiry_date_in_millis" : 1559174399999,
"max_nodes" : 100,
"issued_to" : "david xu (tengyun)",
"issuer" : "Web Form"
}


2.许可证快过期了,如何更新?

如果许可证快过期了,需要先申请许可证,根据需要可以申请免费的basic许可,也可以花钱购买更高级的许可,其他非官方的途径仅限学习交流,不推荐用于生产环境,不符合腾讯的气质。


获取许可证书

许可类型:
BASIC:免费,有效期一年,功能受限,好像只允许最大100个节点机器
GOLD,PLATINUM,ENTERPRISE 收费,功能相对丰富一些
https://www.elastic.co/subscriptions

以BASIC许可更新为例,目前集群节点在100以内,直接使用BASIC版本。
https://register.elastic.co/

Register below to receive a free 1 year Basic license, which enables many great features in X-Pack. See the subscription page for more details. And yes, when the 1 year is up, you can come back and register for another year. Happy searching!

一年到期后,可以继续申请重新更新。

填写完页面的资料后,会收到一封标题为“Elastic License”的邮件,邮件内容大概长这个样子:

Thank you for using the Elastic Stack and registering for your free Basic license! This license expires on May 29, 2019.

To download your license, please go to:

--> http://license.elastic.co/registration/download/********-b564-4b00-a079-b0b5802ba27f

For license installation instructions:

Elasticsearch 6.x -- https://www.elastic.co/guide/en/x-pack/current/license-management.html
Elasticsearch 5.x -- https://www.elastic.co/guide/en/x-pack/5.6/installing-license.html
Elasticsearch 2.x -- https://www.elastic.co/guide/en/marvel/current/license-management.html
Elasticsearch 1.x -- Use license code '1010' to register

If you have any questions or issues, please visit us on the forums: https://discuss.elastic.co/ or reach out to us directly at info@elastic.co.

Best,
The Elastic Team


根据邮件中的链接就可以下载basic版本的授权许可文件。

根据需要选择相应版本的BASIC授权文件。
Please download the license for your Elasticsearch version.


导入许可证书

无需重启ES集群的节点,即可更新集群的许可授权证书,但是需要拥有ES集群的admin权限来安装授权许可。
许可的更新是立即生效的,kibana页面上的展示可能有缓存需要过几分钟后才能更新。

curl -XPUT -u admin 'http://<host>:<port>/_license' -d @license.json
如果没有权限限制,可以去掉-u admin

license.json需要更换为获取到的授权许可license文件的具体名字,也可以将获取到的文件改名为license.json。

如果您正在安装的许可证不支持您以前的许可证提供的所有功能,则会在回复中收到通知。要完成许可证安装,您必须重新提交许可证更新请求并将acknowledge参数设置为true以表示您知道这些更改。

如果之前安装了一个收费的许可,到快到期时,导入的是免费的BASIC许可,那可能无法直接导入,会有提示信息。此时需要通过将acknowledge参数设置为true,来导入许可文件。

curl -XPUT  'http://<host>:<port>/_license?acknowledge=true' -d @license.json


许可过期的风险

许可过期有什么风险?
过期之前有没有提示,会不会突然发现证书过期了?
万一我忘记更新许可证书了,集群会不会拒绝服务?

许可证到期之前会有提醒,只是你千万不要不当回事。
如果使用2.x版本的Marvel,许可证在30天内到期时会显示许可证到期警告,不过显示的地方不太明显。
许可过期的警告信息也会在启动时显示,并且会写入Elasticsearch日志。

这些错误消息会告诉您许可证何时到期,如果您无法更新,哪些功能将被禁用:
跟集群和索引状态相关的收集、监控、查看的功能都将被禁用,请求的时候返回401错误;
所有数据的读写操作可以正常工作。

{
"error": {
"root_cause": [{
"type": "security_exception",
"reason": "current license is non-compliant for [shield]",
"license.expired.feature": "shield"
}],
"type": "security_exception",
"reason": "current license is non-compliant for [shield]",
"license.expired.feature": "shield"
},
"status": 401
}


许可过期应及时更新,否则就如黑夜中闭着眼睛狂奔,集群出问题是迟早的问题。


详见官网内容:

https://www.elastic.co/guide/en/shield/current/license-management.html