005 ElasticSearch 许可证过期问题

ElasticSearch 许可证过期问题

项目启动报错

shell 复制代码
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等认证功能不可用,需要重新申请或更新

1.查看当前许可证信息

shell 复制代码
curl -X GET "http://localhost:9200/_license" -u elastic:your_password  #替换为自己密码
shell 复制代码
{
  "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 功能等),许可证过期将导致以下问题:

  • 安全功能受限:无法使用安全功能(如用户认证,IP 过滤、审计等)。
  • 监控功能受限:无法访问集群健康状态、索引统计等信息。
  • 插件功能受限:如 Watcher、Graph、ML 等插件将被禁用。

2.解决办法

1.✅ 使用 curl 命令更新许可证

需要先去es官网申请许可证并下载

shell 复制代码
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 是关键参数,表示您已阅读并接受新许可证的条款
2.✅ 使用 curl 命令切换到基本许可证

如果您不打算继续使用高级功能,可以切换到基本许可证(Basic License),以恢复部分功能:

shell 复制代码
curl -u elastic -XPOST "http://localhost:9200/_xpack/license/start_basic?acknowledge=true"
  • 该命令将禁用所有高级功能,但允许基本的数据读写操作。
  • 基本许可证(Basic License) 是 Elasticsearch 的最低版本许可证,它允许用户在不使用付费 X-Pack 插件的情况下,启用基本的安全功能。
  • 通过基本许可证,用户可以配置 基本身份验证(Basic Authentication) ,即通过 HTTP Basic 认证方式,使用用户名和密码访问 Elasticsearch 集群
  • 以上方式只是 暂时 解决问题,到一定时间以后,依然会出现 证书过期 的错误,到时候依然需要再次执行以上命令来保证 es 正常运行

查看许可证状态

shell 复制代码
{
  "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
  }
}
3.通过 Kibana UI 更新许可证

需保证kibana可用,通常过期后kibana也不可用

  1. 登录 Kibana。
  2. 点击左侧菜单中的 Stack Management(管理)。
  3. 导航到 License Management(许可证管理)。
  4. 上传新的许可证文件或选择 Start basic license(启动基本许可证)。
相关推荐
MyikJ21 分钟前
Java求职面试:从Spring到微服务的技术挑战
java·数据库·spring boot·spring cloud·微服务·orm·面试技巧
MyikJ24 分钟前
Java 面试实录:从Spring到微服务的技术探讨
java·spring boot·微服务·kafka·spring security·grafana·prometheus
ShiinaMashirol1 小时前
代码随想录打卡|Day50 图论(拓扑排序精讲 、dijkstra(朴素版)精讲 )
java·图论
cui_hao_nan1 小时前
Nacos实战——动态 IP 黑名单过滤
java
惜.己1 小时前
MySql(十一)
java·javascript·数据库
10000hours2 小时前
【存储基础】NUMA架构
java·开发语言·架构
伍六星2 小时前
动态拼接内容
java·jsp
TeamDev3 小时前
从 SWT Browser 迁移到 JxBrowser
java·前端·eclipse
迢迢星万里灬3 小时前
Java求职者面试指南:DevOps技术栈深度解析
java·ci/cd·docker·kubernetes·jenkins·devops
oioihoii3 小时前
C++23 已移除特性解析
java·jvm·c++23