项目启动报错
org.elasticsearch.client.ResponseException: method [GET], host [http://127.0.0.1:9200], URI [/_cluster/health/], status line [HTTP/1.1 403 Forbidden]
{"error":{"root_cause":[{"type":"security_exception","reason":"current license is non-compliant for [security]","license.expired.feature":"security"}],"type":"security_exception","reason":"current license is non-compliant for [security]","license.expired.feature":"security"},"status":403}
原因是es许可证过期了,过期会导致X-pack等认证功能不可用,需要重新申请或更新
curl -X GET "http://localhost:9200/_license" -u elastic:your_password #替换为自己密码
{
"license" : {
"status" : "expired",
"uid" : "81fdd2e4-bddb-41bc-849d-e8838c122ef0",
"type" : "trial",
"issue_date" : "2025-03-19T09:09:58.157Z",
"issue_date_in_millis" : 1742375398157,
"expiry_date" : "2025-04-18T09:09:58.157Z",
"expiry_date_in_millis" : 1744967398157,
"max_nodes" : 1000,
"issued_to" : "elasticsearch",
"issuer" : "elasticsearch",
"start_date_in_millis" : -1
}
}
trial
表示试用版许可证,通常有一个月有效期
如果启用了安全功能(如用户认证,Kibana 的 Monitoring 功能等),许可证过期将导致以下问题:
curl
命令更新许可证需要先去es官网申请许可证并下载
curl -XPUT -u elastic -H "Content-Type: application/json" -d @license.json -v "http://localhost:9200/_xpack/license?acknowledge=true"
elastic
是默认的超级用户,your_password
是该用户的密码。license.json
为自己上传的许可证@license.json
表示从文件中读取许可证内容。?acknowledge=true
是关键参数,表示您已阅读并接受新许可证的条款curl
命令切换到基本许可证如果您不打算继续使用高级功能,可以切换到基本许可证(Basic License),以恢复部分功能:
curl -u elastic -XPOST "http://localhost:9200/_xpack/license/start_basic?acknowledge=true"
查看许可证状态
{
"license" : {
"status" : "active",
"uid" : "c5ef7eaf-d63b-44f0-9b63-11ae2ebfe796",
"type" : "basic",
"issue_date" : "2025-05-29T02:40:50.106Z",
"issue_date_in_millis" : 1748486450106,
"max_nodes" : 1000,
"issued_to" : "elasticsearch",
"issuer" : "elasticsearch",
"start_date_in_millis" : -1
}
}
需保证kibana可用,通常过期后kibana也不可用