Elasticsearch X-Pack许可证过期解决办法
- 事发原因
- 解决办法
事发原因
在那天下午,我写搭建ELK笔记系列博客-Kibana篇的中途,想进入kibana页面进行一些操作,进入发现ES集群和索引状态相关的收集、监控、查看的功能都将被禁用,只能进行数据的读写操作可以正常工作。然后我就查看了ES的日志,发现ES全部抛:ElasticsearchSecurityException: current license is non-compliant for [security] 异常
仔细查看日志,我们发现日志已经把错误告诉你了
这一段详细说了:经营许可证过期,集群健康状态、集群统计信息和索引统计信息。许可证到期时将阻止操作。所有数据操作(读和写)继续工作。看到这里,应该就明白了,是许可证过期导致的问题。
解决办法
通过ES的官网中X-Pack的文档的说明,初次安装X-Pack会提供三十天的试用期,想继续使用,您可以购买订阅以继续使用X-Pack组件的全部功能
我们可以通过注册账号获得一个免费的许可证证书。证书分为付费版和免费版,免费版会对节点数量有限制,但是一般的工作环境足够使用,因此我们采用BASIC授权文件。
1.注册elasticsearch账号,注册地址 https://register.elastic.co/
根据你填写的邮箱,会收到一封邮件,如下图
把许可证下载好上传到ES服务器,根据手册执行安装命令:curl -XPUT -u elastic ‘http://_xpack/license’ -H “Content-Type: application/json” -d @ license.json
elastic是X-Pack内置的超级用户。默认密码是changeme。如果您还没有,请更改默认密码。具有群集管理员权限的任何用户都可以安装许可证
<host>是Elasticsearch节点的主机名(localhost如果在本地执行)
<port>是http端口(默认为9200)
license.json 是许可证JSON文件名称
例如我的安装命令:curl -XPUT -u elastic ‘http://172.17.32.8:9200/_xpack/license?acknowledge=true’ -H “Content-Type: application/json” -d @guhui-gu-08913f85-bb8b-4d4d-88dd-b34ecaa94c7a-v5.json
官方文档中有一段这样的话:
意思是:如果您要安装的许可证不支持以前许可证中提供的所有功能,则会在响应中通知您。要完成许可证安装,必须重新提交许可证更新请求并将acknowledge参数设置为true以指示您了解更改。
就是你执行许可证安装命令的时候,如果出现下图响应信息
出现这种情况,代表许可证安装失败,按照那一段话的提示,在安装命令中加入acknowledge=true参数,我的安装命令中就有此参数,安装手册中的安装命令是没有加入此参数的。
许可证安装好之后,看看许可证信息更新好了没有,输入查看许可证命令:
curl -XGET -u 用户名:密码 ‘http:///_license’
例如:curl -XGET -u elastic:changeme ‘http://1.1.1.1:9200/_license’
查出来的信息表示,该许可证有效期为一年。一年之后到期可以更新一份新的许可证。不需要重启ES服务,服务会自动更新为正常状态,可用正常使用
丶clearwater