各位 Elasticsearch 用户,如果你使用的 Elasticsearch 是直接从官方下载,并且是 6.3 之后的版本,那么按照 Elastic License 的条款,你很可能已经违反了使用许可,Elastic 公司会保留追究权利。
2021 年 1 月,Elastic 公司宣布将采用 Apache License 2.0 的 Elasticsearch 和 Kibana 的源代码变更为双重许可模式:Elastic License + SSPL。
按照 Elastic License 和 SSPL 的条款,两者对于商用都有严格的要求。
比如,SSPL 针对云服务商提出了严格的限制:“如果您将本程序或修改版的功能作为服务提供给第三方,则必须根据本许可的条款,需要通过网络下载免费向所有人提供服务源代码。”
Elastic License 虽然允许免费使用、修改、创建衍生作品和重新分发,但有三个基本的限制条件:
- 不得将产品作为托管服务提供给其他人
- 不得规避许可密钥功能或删除/隐藏受许可密钥保护的功能
- 不得删除或隐藏任何许可协议、版权或其他声明
(来自 https://www.elastic.co/cn/licensing/elastic-license/faq)
具体来说,Elastic License 禁止下列操作:
- 将 Elastic 公司的产品直接作为一项服务对外出售(如 Amazon Elasticsearch Service)
- 篡改源代码以达到在不订阅的情况下使用 Elastic 付费功能的目的,或者将修改后的版本投入生产之用
(来自:https://www.elastic.co/cn/blog/license-change-clarification)
由于双重许可模式从 Elasticsearch 7.11 开始生效,为了规避上述限制,许多人会选择使用不受影响的 7.10.2 及更早的版本。
如果用户直接从官方下载了上述版本的免费 Elasticsearch 发行版,并且基于 Elasticsearch 向第三方提供服务,那么按照 Elastic License 的条款,这已经违反了使用许可,Elastic 会保留追究权利。
因为从 Elasticsearch 6.3 开始,原本闭源的「X-Pack」功能开放了源代码——采用 Elastic License,并被默认打包到发行版里面。
所以,从 6.3 起的所有免费发行版都包含了一个使用 Elastic License 的组件:X-Pack。根据 Elastic License 的条款,X-Pack 隐藏着“潜在风险”。
因为无论你是否使用 X-Pack,你下载的 Elasticsearch 都包含了该组件,如果基于该 Elasticsearch 向第三方提供服务。根据 Elastic License 的限制,这已经违反了许可,所以 Elastic 公司会保留追究权利。
前文提到,这是一种“潜在风险”。之所以称为“潜在风险”,是因为到目前为止,尚未出现因 X-Pack 使用的 Elastic License 而出现纠纷的案例。
此外,根据开源专家的介绍,即使用户下载的 Elasticsearch 发行版包含了 X-Pack,并且它采用的是 Elastic License。如果用户没有启用它,那就无需遵循 License 的条款。而 X-Pack 正好是没有默认启用的功能——需要用户手动开启。
如果用户手动启动了 X-Pack,将被视为接受 Elastic License。所以这名开源专家认为,默认情况下,用户使用 6.4 到 7.10 版本,依旧是只需遵循 Apache License 2.0。
可以看到,「X-Pack」是导致问题的重要成因。如果要规避此“潜在”问题,要么遵循 Elastic License 许可,要么可以选择自行从 Elasticsearch 源代码构建不包含 X-Pack 的版本。当然,还可以考虑使用其他开源替代方案。。