📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

适用版本: 6.8-7.15

1. 错误异常的基本描述 #

Unknown license version found; please upgrade all nodes to the latest elasticsearch-license plugin 表示集群中某些节点的许可证插件版本低于许可证本身的版本。

从源码可见,这个异常在许可证解析路径中抛出,当许可证版本号大于当前节点支持的最大版本时触发。

典型报错 #

ElasticsearchException: Unknown license version found; please upgrade all nodes to the latest elasticsearch-license plugin

2. 为什么会发生这个错误 #

  • 集群版本不一致:部分节点版本较旧,不支持新的许可证格式。
  • 许可证升级后未重启:许可证已升级,但部分节点未重启加载新插件。
  • 滚动升级未完成:集群正在进行滚动升级,部分节点尚未升级。
  • 插件版本不匹配:许可证插件版本与 Elasticsearch 版本不匹配。

3. 排查步骤 #

  1. 检查集群节点版本
    GET /_cat/nodes?v
    
  2. 检查许可证状态
    GET /_license
    
  3. 确认插件版本:检查各节点的许可证插件版本。
  4. 查看升级状态:确认是否有节点未完成升级。

4. 修复建议 #

方案一:升级所有节点 #

将所有节点升级到相同版本:

# 逐个节点升级,确保所有节点版本一致
# 参考官方滚动升级文档

方案二:降级许可证 #

如果无法立即升级节点,考虑使用与当前节点兼容的许可证版本。

方案三:重启节点 #

如果插件已更新但未生效,重启相关节点:

# 滚动重启受影响节点

方案四:重新安装插件 #

确保许可证插件正确安装:

bin/elasticsearch-plugin install --batch repository-url

5. 小结 #

Unknown license version found 通常意味着集群节点版本不一致或许可证插件需要更新。优先确保所有节点版本一致。

相关错误 #

附:日志上下文 #

version *= -1;
}
if (version == 0) {
    throw new ElasticsearchException("malformed signature for license [" + builder.uid + "]");
} else if (version > VERSION_CURRENT) {
    throw new ElasticsearchException("Unknown license version found; please upgrade all nodes to the latest " +
        "elasticsearch-license plugin");
}
// signature version is the source of truth
builder.version(version);
}