跳到主要内容
搜索

常见问题

通用

什么是 OpenSearch?

OpenSearch 是一个完全开源的搜索和分析套件。OpenSearch 包含 OpenSearch(源自 Elasticsearch 7.10.2)和 OpenSearch Dashboards(源自 Kibana 7.10.2),以及一系列功能,如内置安全、异常检测、警报、可观察性体验等。

为什么创建 OpenSearch?

开发者选择开源软件的原因有很多,其中最重要的是可以随心所欲地使用该软件。Elastic 停止为 Elasticsearch 和 Kibana 提供开源选项,转而以 Elastic 许可发布它们,源代码则在 Elastic 许可或 SSPL 下可用。这些并非开源,不为用户提供相同的自由度。因此,我们决定从 Elasticsearch 和 Kibana 的最后一个 Apache 2.0 版本分叉,并在 Apache 许可证 2.0 版 (ALv2) 下提供 OpenSearch。

ALv2 授予了清晰且宽容的使用权,这与人们对开源软件所期望的自由相符;这些自由包括能够随心所欲地使用、修改、扩展、商业化和转售开源软件。对于 OpenSearch,我们相信这将促进其广泛采用和贡献,从而惠及社区所有成员。

为什么我应该使用 OpenSearch?

OpenSearch 使人们能够轻松地摄取、保护、搜索、聚合、查看和分析数据。这些功能使其在应用程序搜索、日志分析等用例中广受欢迎。使用 OpenSearch,您将受益于一个您可以随心所欲地使用、修改、扩展、商业化和转售的开源产品。同时,我们将继续提供一个安全、高质量的搜索和分析套件,并拥有丰富的新颖创新功能路线图。

OpenSearch 适合生产环境使用吗?

OpenSearch 于 2021 年 7 月随 OpenSearch 1.0 的正式发布而投入生产使用。

OpenSearch 是在什么许可下发布的?

OpenSearch 项目中的所有软件均在 Apache 许可证 2.0 版 (ALv2) 下发布。ALv2 许可证授予您对 OpenSearch 清晰的使用权。您可以将 OpenSearch 用于您的产品和服务中,进行使用、修改、扩展、嵌入、商业化、转售和提供。我们还发布了 OpenSearch 商标的宽容使用指南,因此您可以使用该名称来推广您的产品。

现有的 Open Distro for Elasticsearch 项目与 OpenSearch 之间有什么关系?

Open Distro for Elasticsearch 的最终版本是 1.13。随 Open Distro for Elasticsearch 分发的插件和高级功能的未来版本将在 OpenSearch 项目中提供。

OpenSearch 与 Elasticsearch 兼容吗?

是的。OpenSearch 是开源 Elasticsearch 7.10 的一个分支。因此,它提供用于摄取、搜索和管理的向后兼容 REST API。查询语法和响应也相同。此外,OpenSearch 可以使用 Elasticsearch 6.0 到 7.10 版本的索引。我们还旨在支持与 Elasticsearch 7.10 配合使用的现有 Elasticsearch 客户端。

请注意,虽然 OpenSearch API 向后兼容,但某些客户端或工具可能包含代码(例如版本检查),这可能导致客户端或工具无法与 OpenSearch 配合使用。

有关向后兼容性的更多信息,请参阅升级常见问题

OpenSearch API 在未来版本中会改变吗?

所有未来的 OpenSearch 1.x 版本都将与 Elasticsearch 7.10 向后兼容,尽管某些 API 将被弃用。如果功能需要破坏性更改,我们将引入 OpenSearch 的新主要版本,并提供工具使迁移到新主要版本变得简单。当新功能需要添加 API 时,我们将与社区合作,在流行的客户端中添加对这些功能的支持。

有关弃用 API 的更多详细信息,请参阅升级常见问题

Logstash 和 Beats 等 Elasticsearch 客户端可以与 OpenSearch 配合使用吗?

由于 OpenSearch 与 Elasticsearch 7.10 兼容,因此目前与 Elasticsearch 7.10 配合使用的任何客户端也应与 OpenSearch 配合使用。有关开源 Logstash 和 Beats 兼容性的具体详细信息,请参阅文档

请在我们的项目GitHub 问题中报告您在使用这些客户端或其他客户端时遇到的任何问题。

有关升级客户端的更多问题,请参阅升级常见问题

OpenSearch 包含 Logstash 和 Beats 的分支吗?

不。有关哪些版本的 Logstash 和 Beats 与 OpenSearch 配合使用的文档。我们将提供更多关于如何将它们与 OpenSearch 配合使用以及 OpenSearch 兼容版本的下载链接。

我可以从 Elasticsearch 升级到 OpenSearch 吗?

是的。从 Elasticsearch 7.0 – 7.10 版本升级到 OpenSearch 时,您可以使用滚动升级(一次一个节点)过程。对于 Elasticsearch 6.x 版本,您需要执行集群重启升级。OpenSearch 可以使用 Elasticsearch 6.0 到 7.10 版本的索引。早于 Elasticsearch 6.0 或晚于 7.10 版本的索引需要从升级到 OpenSearch 的集群中移除,或者重新索引到兼容的 Elasticsearch 版本中,然后再升级到 OpenSearch。

您未来计划提供哪些 Elasticsearch 功能?OpenSearch 会跟上上游 Elasticsearch 版本的步伐吗?这将如何演变?

OpenSearch 的未来投资和计划应被视为独立于 Elasticsearch。我们的路线图将由社区的需求驱动。在可能的情况下,如果 OpenSearch 中的新功能与 Elasticsearch 相似,我们将努力使 API 保持相似。然而,这两个项目是独立的。OpenSearch 项目是开源的,专注于提供社区和客户所需创新功能。

OpenSearch 可以读取之前版本的 Elasticsearch 索引吗?

是的。OpenSearch 与 Elasticsearch 6.0 到 7.10 版本创建的索引兼容。

您会回馈 Elasticsearch 开源项目吗?

不会。开源 Elasticsearch 的开发在 7.10 版本结束,当时它被转移到非开源许可证下。OpenSearch 软件将根据社区的需求向前发展。也就是说,所有为客户和社区构建的 OpenSearch 软件均在 ALv2 许可下发布,我们欢迎任何人根据 ALv2 的条款和条件使用该软件。

我想贡献,我能做什么?

我们欢迎多种形式的贡献。您可以在任何 OpenSearch GitHub 存储库中提交拉取请求、开启问题并留下评论。您可以加入我们的社区会议。您还可以在社区论坛中留下评论。如果您有特定的贡献方式但不确定如何操作,请在我们的社区论坛中留言。

新功能、错误修复和其他开发决策是如何制定的?

为 OpenSearch 开发的新软件是基于项目开发原则而创建的。要了解更多信息,请访问我们的网站

我如何贡献功能并将其纳入公共路线图?

如果您想为 OpenSearch 添加公共路线图中没有的内容,那是一个完美的贡献机会!您可以做几件事。

您可以在相关 GitHub 存储库中为该功能创建功能请求并推广该请求。人们一直在寻找热门功能来构建。维护者或社区中的其他人可能会着手开发此功能。随着进展,存储库的维护者将帮助将该功能纳入路线图。

另一个选择是自己构建该功能。为此,您可以在相关存储库中创建一个 GitHub 问题作为提案,并使用提案模板(感谢jkowall贡献此模板!)。表达您构建它的承诺。存储库的维护者将与您合作,找出最佳的进行方式。这可能是进一步的讨论、设计文档,或者只是开始编写代码。随着功能的开发,存储库的维护者也将与您合作,将其纳入路线图。

您推荐哪些工具用于日志和指标收集?

OpenSearch 支持 Beats、Fluentd、Fluent Bit 和 OpenTelemetry Collector 等一系列工具。未来,我们将致力于改进 Data Prepper、Fluentd 和 FluentBit。使用 Beats <= 7.12.x 作为代理工具并考虑开源替代方案的用户应迁移到 Fluent Bit >= 1.9 或 Open Telemetry Collector。Beats 版本 >= 7.13 不支持 OpenSearch。

您推荐哪些工具用于日志聚合?

OpenSearch 支持 Data Prepper、Fluentd、Logstash 和 Kafka 等一系列工具。OpenSearch 相信多种开源选择,并将致力于未来改进 Data Prepper、Fluentd 和 Kafka 的支持。

工具和插件

我可以将 OpenSearch 插件与专有的 Elastic Stack 配合使用吗?

这些插件已通过测试,可与 OpenSearch 配合使用。它们尚未与 Elastic 的专有软件进行测试。由于这些插件是开源的,我们欢迎任何希望与 Elastic Stack 一起测试它们的人。但是,我们不打算投入精力使 OpenSearch 插件在 Elastic Stack 上运行。

我可以将 OpenSearch 插件作为独立插件安装吗?

是的。您可以独立于其他插件安装 OpenSearch 插件。例如,如果您想在仅安装我们的安全插件的情况下使用 OpenSearch,您可以使用 OpenSearch 插件删除命令删除其他插件。

OpenSearch 包含 Logstash 和 Beats 的分支吗?

不。有关哪些版本的 Logstash 和 Beats 与 OpenSearch 配合使用的更多信息,请参阅Logstash 兼容性矩阵

什么是 OpenSearch Data Prepper?

OpenSearch Data Prepper 是一个服务器端数据收集器,能够对数据进行过滤、丰富、转换、标准化和聚合,以供下游分析和可视化。此外,Data Prepper 允许用户构建自定义管道,以改善应用程序的运营视图。

OpenSearch Data Prepper 的两个常见用例是跟踪和日志分析。跟踪分析可帮助您可视化事件流并识别性能问题。日志分析可以改进搜索功能,并帮助您分析应用程序并提供洞察。

要开始使用 Data Prepper 构建自己的自定义管道,请参阅 OpenSearch Data Prepper 入门

什么是 Fluentd 和 Fluent Bit?

Fluentd 是一个用于日志数据收集、处理和转发的数据收集器。它用 Ruby 编写,支持 500 多个插件,包括数据源、数据输出、解析器、格式化程序和过滤器。

Fluent Bit 是一个代理,可从不同来源收集数据,通过过滤器丰富数据,并将其发送到多个目的地。它在设计时考虑了性能,这意味着它针对高吞吐量和低 CPU 及内存使用进行了优化。它用 C 语言编写,其架构支持 70 多个用于输入、过滤器和输出的插件。

升级到 OpenSearch

如何将多节点 Elasticsearch OSS 和 Kibana OSS 集群升级到 OpenSearch 和 OpenSearch Dashboards?

OpenSearch 支持与 Elasticsearch OSS 相同的滚动升级方式。您可以将 OpenSearch 部署到与 Elasticsearch OSS 或 Open Distro for Elasticsearch 节点混合的集群中。您可以逐个替换旧节点,几乎无需额外的手动操作。

与 Kibana OSS 类似,OpenSearch Dashboards 不支持滚动升级,但支持重启升级。您可以停止所有 Kibana OSS 实例,部署一个新的 OpenSearch Dashboards 实例并将流量导向它。

如何将单节点部署的 Elasticsearch OSS 和 Kibana OSS 升级到 OpenSearch 和 OpenSearch Dashboards?

您可以停止 Elasticsearch OSS 和 Kibana OSS,安装 OpenSearch 和 OpenSearch Dashboards,手动配置它们以指向您的 Elasticsearch OSS 和 Kibana OSS 数据,审查并可能更新设置,然后启动 OpenSearch 和 OpenSearch Dashboards。

哪些版本的 Elasticsearch OSS 和 Kibana OSS 可以直接升级到 OpenSearch 和 OpenSearch Dashboards?

您可以直接从 Elasticsearch OSS 和 Kibana OSS 6.8.0-7.10.2 以及 Open Distro 1.x 升级到 OpenSearch 1.x。有关升级的更多信息,请参阅文档

我可以将旧版本的 Elasticsearch OSS 和 Kibana OSS 升级到 OpenSearch 和 OpenSearch Dashboards 吗?

Elasticsearch OSS 和 Kibana OSS 5.x 至 6.7.2 可以首先升级到 6.8.0,然后建议升级到 Elasticsearch OSS 7.10.2 或 ODFE 1.13,然后再升级到 OpenSearch 和 OpenSearch Dashboards。

请注意,OpenSearch 支持的最低索引版本是 6.0。因此,所有 5.x 索引在升级到 OpenSearch 之前都必须重新索引。

我可以将非 OSS 的 Elasticsearch 和 Kibana 集群升级到 OpenSearch 吗?

是的。但是,Elasticsearch OSS 和 Kibana OSS 中不具备的功能仍然不可用。我们建议评估 OpenSearch 中可能提供类似功能的额外功能。

我的 ODFE 插件在升级后还能继续工作吗?

基于 Open Distro for Elasticsearch (ODFE) 插件的 OpenSearch 插件已包含在 OpenSearch 1.0 中,并且在功能上与其前身向后兼容。

升级过程何时完成?

当所有节点都运行 OpenSearch 和 OpenSearch Dashboards 1.0 时。

升级到 OpenSearch 需要停机吗?

您可以执行从 Elasticsearch OSS 到 OpenSearch 的滚动升级,这不需要停机。Kibana OSS 升级需要重启,这将导致 Kibana OSS 和 OpenSearch Dashboards 停机。如果您是单节点部署并希望就地升级,则会发生停机。

我可以进行包含数据迁移的蓝绿升级吗?

是的。您可以选择进行蓝绿升级而不是滚动升级。

我可以在 OpenSearch 中安装 elasticsearch-xyz-plugin 吗?

依赖 Elasticsearch JARs 的 Elasticsearch 插件若不修改代码以依赖 OpenSearch JARs 则无法工作。

我可以在升级进行到一半时(例如,4 个节点中有 2 个正在运行 OpenSearch)回滚吗?

这是可能的,但有注意事项。例如,将 Kibana OSS 升级到 OpenSearch Dashboards 会迁移 Kibana OSS 索引,并且不允许回滚。

我的现有 Elasticsearch OSS 客户端需要进行任何更改才能继续工作吗?

虽然 OpenSearch API 向后兼容,但某些客户端或工具可能包含代码(例如版本检查),这可能导致客户端或工具无法与 OpenSearch 配合使用。

我可以运行混合的 OpenSearch 和 Elasticsearch OSS 异构集群吗?

这仅在 OpenSearch 中用于滚动升级目的时受支持。

升级后 OpenSearch 安全功能默认启用吗?

是的。安全功能默认启用。

升级期间哪些设置会改变?

包含品牌词(如 ES 或 OPENDISTRO)的环境变量已重命名。

包含品牌词(如 es. 或 opendistro.)的集群设置可以继续使用,但已被弃用。

升级期间哪些 REST API 会改变?

包含品牌词(如 ES 或 OPENDISTRO)的 REST API 已被弃用。

我如何升级或迁移安全索引或系统索引?

升级到 OpenSearch 1.0 不需要迁移安全索引或系统索引。这是因为这些索引没有被重命名。在未来的升级中,可能会引入索引别名或针对安全索引或系统索引的迁移。

Elasticsearch-OSS 和 OpenSearch 之间是否存在二进制兼容性?

虽然 OpenSearch 节点能够加入 Elasticsearch OSS 集群,但 OpenSearch 中的命名空间和类名已更改。如果您的插件代码依赖于 Elasticsearch OSS JARs,您将需要将这些依赖升级到 OpenSearch JARs。

在哪里可以找到更多信息并跟踪确保向后兼容性的进展?

向后兼容性的总问题是OpenSearch#671。opensearch-project 存储库中的问题都被标记为向后兼容性

Kibana 能在 OpenSearch 1.0 上运行吗?

不。您需要升级到 OpenSearch Dashboards。

我为 Elasticsearch 构建了一个自定义插件,它能否在 OpenSearch 上无需修改即可运行?

由于 OpenSearch 向后兼容,它会运行。如果您发现不兼容,请在 OpenSearch 中提出问题。

我可以在 OpenSearch Dashboards 1.0 中安装只使用 REST API 的 kibana-xyz-plugin 吗?

虽然 API 没有改变,但我们尚未测试 kibana-xyz-plugin。

我为 Kibana 构建了一个自定义可视化,它能否在 OpenSearch Dashboards 上无需修改即可使用?

由于 OpenSearch Dashboards 向后兼容,它会。如果您发现不兼容,请在 OpenSearch Dashboards 中提出问题。

OpenSearch 可以读取之前版本的 Elasticsearch 索引吗?

是的。OpenSearch 与 Elasticsearch 6.0 到 7.10 版本创建的索引兼容。

OpenSearch API 在未来版本中会改变吗?

所有未来的 OpenSearch 1.x 版本都将与开源 Elasticsearch 7.10 向后兼容。如果功能需要破坏性更改,我们将引入 OpenSearch 的新主要版本,并提供工具使迁移到新主要版本变得简单。当新功能需要添加 API 时,我们将与社区合作,在流行的客户端中添加对这些功能的支持。

我应该使用哪个 OpenSearch 版本?

对于 OpenSearch 和 OpenSearch 项目中的其他软件,新功能和积极开发始终针对最新版本进行。OpenSearch 项目遵循语义版本控制规范来分配版本号,因此在大多数情况下,您应该能够升级到任何软件的最新版本而不会遇到不兼容的更改。

有时不兼容的更改是不可避免的。当这种情况发生时,软件的维护者将增加主版本号(例如从 OpenSearch 1.y.z 增加到 OpenSearch 2.0.0),并且之前主版本的最新发布版本将进入维护状态。在维护窗口期间,软件将继续接收错误修复和安全补丁,但不会有新功能。

维护窗口的持续时间因产品和版本而异。它将基于软件包含的依赖项的修补和支持计划、社区输入、新版本引入的更改范围以及继续维护先前版本所需工作量的估计。

我可以使用需要特定 Elasticsearch 版本的工具吗?

默认情况下,OpenSearch 报告其版本号,但 OpenSearch 可以配置为报告 7.10.2 以兼容为 Elasticsearch 版本控制设计的现有工具。此配置选项已被弃用,并将记录弃用消息,并在 OpenSearch 的未来主要版本(3.0.0 或更高版本)中移除。

OpenSearch 支持版本降级吗?

OpenSearch 不支持直接版本降级。如果您的环境必须降级,我们建议使用快照创建恢复点,然后将快照恢复到使用目标版本构建的集群。

社区与协作

如何将项目添加到 opensearch.org 上的社区项目页面?

要添加项目

  • 派生(Fork)opensearch 网站存储库
  • 创建一个分支。建议的命名约定是 adds-<您的项目名称>-to-community-projects
  • 为您的项目添加一个Markdown 文件到 ./_community_projects/your-project.md
  • 最后,创建一个拉取请求,网站维护者之一将对其进行审查并与您合作将其合并。

要查看拉取请求示例,请查看此处)。

社区项目页面欢迎哪些类型的项目?

任何有利于 OpenSearch 社区的项目都受到欢迎。这既可以是开源许可项目,也可以是专有许可项目。

项目在移入 OpenSearch 项目 GitHub 组织之前有哪些要求?

有三个要求

  • 该项目在宽容的开源许可下授权,例如 Apache 2.0。
  • 该项目对 OpenSearch 社区具有广泛的实用性
  • 该项目目前正在积极维护中

将项目移至 OpenSearch 项目 GitHub 组织下的好处是什么?

主要好处包括提高可见性,而且如果有一天您无法或不想继续维护该项目,项目将帮助找到新的维护者来转移所有权。其他一切保持不变,包括您保留 GitHub 存储库的管理员权限。

如何将我的项目纳入 OpenSearch 项目 GitHub 组织?

如果您有兴趣移动您的项目,请在您的存储库中创建一个问题,与您的共同维护者明确确认您希望进行移动,并标记dblockelfisher以启动移动您项目的过程。

什么是 OpenSearch 项目 GitHub 组织存储库管理员?

管理员拥有存储库及其设置的管理权。管理员在存储库上拥有管理员级别的权限。请使用这些权限为社区服务并保护存储库,具体如下。管理员职责可在 OpenSearch .github 存储库的管理员文件中找到。

什么是 OpenSearch 项目 GitHub 组织存储库维护者?

维护者是社区中活跃且可见的成员,并在存储库上拥有维护者级别的权限。他们使用这些权限为社区服务并改进他们所维护存储库中的软件。维护者职责可在 OpenSearch .github 存储库的维护者文件中找到。

在 OpenSearch 项目 GitHub 组织存储库中开发时,我的安全义务是什么?

安全是您的首要任务。维护者的 GitHub 密钥必须受到安全密码保护,并且在功能或错误之前解决任何报告的安全漏洞。请注意,OpenSearch GitHub 组织中的存储库由 Amazon Security 24/7 全天候监控和支持,详情请参阅报告漏洞

OpenSearch 项目 GitHub 组织存储库的路线图应如何管理?

维护者可以以最适合他们的方式管理存储库路线图。路线图/项目面板示例可在此处找到。