Elastic 托管连接器

edit

托管的 Elastic 连接器 可以直接在您的 Elastic Cloud 部署中使用。 无需额外的基础设施。

托管连接器直接将数据源同步到 Elasticsearch 索引。 使用 Kibana 中的 连接器 工作流程创建这些索引。

以下连接器作为Elastic托管连接器提供。 请参阅每个连接器的参考文档以获取特定于每个连接器的更多信息。

可用性和前提条件

edit

托管连接器在 Elastic 版本 8.5.0 中引入。

您的 Elastic Cloud 部署必须包括以下 Elastic 服务:

请参阅Elastic订阅页面上的原生集成,在Elastic Search部分中了解托管连接器的许可要求。

在 Kibana UI 中的使用

edit

按照 Kibana 中的 连接器 工作流程选择 连接器 摄取方法。 选择数据源,创建一个 Elasticsearch 索引,并配置一个托管连接器来管理该索引。

use a connector workflow

选择一个连接器

edit

从可用选项中选择数据源并选择继续

创建索引

edit

创建一个由连接器管理的新索引:

  1. 为您的索引命名,并可选择更改语言分析器以匹配您的数据源的人类语言。 (索引名称将自动加上前缀search-。)
  2. 选择创建索引

索引已创建并准备好进行配置

此操作需要:

  1. 访问Kibana
  2. 创建或管理索引的权限
  3. write 索引权限 用于 .elastic-connectors 索引
  4. manage_api_key 集群权限 以允许创建API密钥
  5. write_connector_secrets 集群权限 以允许将API密钥存储为秘密

配置连接器

edit

创建一个由连接器管理的新索引。

继续从上面操作,或在 Kibana UI 中导航到以下位置:

搜索 > 内容 > Elasticsearch 索引

选择要配置的索引,然后选择配置选项卡。

配置连接器:

  1. 编辑连接器的名称和描述。 您的团队可以使用此信息来区分此索引与其他连接器索引。 (这些字段描述了连接器,并且与Elasticsearch索引名称无关。)
  2. 保存您的更改。
  3. 编辑数据源配置。 这里的字段因连接器而异。 有关详细信息,请参阅每个连接器的文档(参见上文的Elastic管理连接器列表)。 有关安全注意事项,请参阅安全
  4. 保存您的更改。

可选择 编辑同步计划 以开始 管理连接器

此操作需要:

  1. 访问Kibana
  2. 创建或管理索引的权限
  3. write 索引权限 用于 .elastic-connectors 索引
  4. manage_api_key 集群权限 以允许创建API密钥
  5. write_connector_secrets 集群权限 以允许将API密钥存储为秘密

管理连接器

edit

要管理文档、同步、同步规则、摄取管道和其他连接器功能,请参阅 Kibana 中的连接器 UI

管理 API 密钥

edit

Elastic 托管连接器的 API 密钥是在 Elastic 版本 8.13.0 中引入的。 在早期版本中创建的托管连接器在升级到 8.13.0 后不会自动使用 API 密钥。 有关更多信息,请参阅 启用 API 密钥

托管连接器使用 API 密钥与 Elasticsearch 进行通信。 在 Kibana UI 的连接器页面中管理托管连接器时,API 密钥管理会自动处理。 Elastic 托管连接器的 API 密钥具有三个索引的 manage 权限:

  1. 附加的索引
  2. 用于文档级安全性的访问控制(ACL)索引
  3. 内部.elastic-connectors索引。

通过Kibana更改附加的索引将自动使现有的API密钥失效并生成一个新的密钥。 如果你想轮换现有的API密钥,请导航到配置选项卡。 向下滚动到管理API密钥并选择生成API密钥。 此操作将使之前的API密钥失效,创建一个新的API密钥,并更新连接器密钥。

Elastic 托管连接器的 API 密钥存储在一个名为 .connector-secrets 的内部系统索引中。 此索引只能通过具有 write_connector-secrets 集群权限的用户发出的 API 请求进行写入。 只有 Enterprise Search 实例有权从此索引中读取数据。

管理 Elastic 托管连接器的用户需要将其角色分配给 write_connector_secrets 集群权限。 有关安全注意事项,请参阅 安全

以编程方式管理 API 密钥

edit

您还可以以编程方式创建和存储 API 密钥。

展开以下部分以查看详细信息。

用户需要集群权限 manage_api_keymanage_connectorwrite_connector_secrets 才能以编程方式生成 API 密钥。

要为连接器创建API密钥:

  1. 运行以下命令,替换指示的值。 注意响应中的 idencoded 返回值:

    POST /_security/api_key
    {
      "name": "my-connector-api-key",
      "role_descriptors": {
        "my-connector-connector-role": {
          "cluster": [
            "monitor",
            "manage_connector"
          ],
          "indices": [
            {
              "names": [
                "my-index_name",
                ".search-acl-filter-my-index_name",
                ".elastic-connectors*"
              ],
              "privileges": [
                "all"
              ],
              "allow_restricted_indices": false
            }
          ]
        }
      }
    }
  2. 使用 encoded 值来存储连接器密钥,并注意此响应返回的 id 值:

    POST _connector/_secret
    {
      "value": "encoded_api_key"
    }
  3. 使用 API 密钥 id 和连接器密钥 id 来更新连接器:

    PUT /_connector/my_connector_id>/_api_key_id
    {
      "api_key_id": "API key_id",
      "api_key_secret_id": "secret_id"
    }

为升级的连接器启用API密钥

edit

在升级之前创建的托管连接器(版本早于8.13.0)在升级后最初没有API密钥。 在这些连接器转换为使用API密钥之前,无法更改这些连接器的附加索引。

展开以下部分以了解为升级后的Elastic托管连接器启用API密钥的步骤。
  1. 开发者工具中运行以下命令,以启用连接器的API密钥,并替换指示的值。

    POST .elastic-connectors/_update/connector_id
    {
      "doc": {
        "features": {
          "native_connector_api_keys": {
            "enabled": true
          }
        }
      }
    }
  2. 返回连接器页面并导航到配置选项卡。
  3. 向下滚动到管理API密钥并选择生成API密钥

您的托管连接器现在使用API密钥来授权将数据导入Elasticsearch。

通过API使用

edit

在8.12中,我们引入了一组连接器API,用于创建和管理Elastic连接器和同步作业,以及一个CLI工具。 如果您希望以编程方式使用连接器和同步作业,请使用这些工具。

端到端示例

edit

以下示例演示了如何在Elastic Cloud上使用托管连接器:托管连接器教程(MongoDB)

转换一个托管连接器

edit

您可以将托管连接器转换为自托管连接器,以便在您自己的基础设施上运行。 您将在连接器索引的概述页面的UI中找到相关说明。

将托管连接器转换为自托管连接器是一个不可逆的操作!

MongoDB 托管连接器教程

edit

本教程解释了如何从 MongoDB 数据库设置自动、持续的同步到 Elastic Cloud 上的搜索优化索引。 我们将在此教程中使用 Atlas 部署以及内置的示例数据集,但您也可以使用自己的数据。

本教程是一个示例:

  • 如何使用MongoDB 连接器,该连接器兼容 MongoDB Atlas 和本地 MongoDB 服务器。 请参阅兼容性
  • 如何使用任何可用的托管连接器。 本教程中的工作流程适用于所有 Elastic 托管连接器。

本教程分为三个主要部分:

  • 设置 MongoDB Atlas: 首先,您需要启动 MongoDB Atlas。 (跳过此步骤 如果您已经有想要使用的 MongoDB 实例。)

    • 您将创建一个免费账户,设置一个免费的 Atlas 集群,并加载一些示例数据。
  • 收集有关您的 MongoDB 实例的详细信息 一旦完成,您需要收集一些有关您的 Atlas 集群的详细信息,以便将其连接到 Elastic Cloud 部署。
  • 设置 Elastic Cloud: 接下来,您需要启动 Elastic Cloud

    • 然后,您需要创建一个 Elasticsearch 索引并配置 Elastic 连接器以与您的 Atlas 集群接口。 我们将在 Kibana UI 中完成所有这些操作。
    • 配置完成后,您将设置一个同步计划,以开始将您的 MongoDB 数据索引到 Elasticsearch 并确保其保持最新。

设置 MongoDB Atlas

edit

按照 MongoDB 文档中的步骤 创建一个免费的 Atlas 账户

  • 创建并部署一个免费的Atlas集群。
  • 安全 > 网络访问下,添加IP访问到0.0.0.0/0。 这个CIDR表示法允许从任何IP地址连接。 这使得运行在Elastic Cloud上的Elastic连接器能够访问Atlas。 有关完整说明,请参阅Atlas文档
  • 创建一个数据库用户,使用用户名和密码组合。 在安全 > 数据库访问中选择添加新数据库用户。 请妥善保管这些信息,因为稍后配置连接器时会需要它们。

将示例数据加载到Atlas

edit

在这个示例中,我们将使用MongoDB Atlas提供的示例数据。 您可以在MongoDB Atlas用户界面中执行此操作。

在Atlas UI中,使用加载示例数据集按钮,位于数据库部署下。 通过选择集群名称旁边的"…​"按钮找到此选项。

Load sample data in Atlas UI
Figure 13. Loading sample data in Atlas UI

详细说明可在Atlas文档中找到。

在Atlas UI中浏览示例数据

edit

加载完成后,您可以通过选择数据库部署的浏览集合按钮,在Atlas UI中查看您的样本数据。 确认样本数据库已添加到您的数据库部署中。

在这个示例中,我们将使用sample_mflix数据集,其中包含有关电影和电影院的数据。 该数据库包含用于某些元数据的集合,包括用户和对特定电影的评论。 在这个示例中,我们将重点关注comments集合。 每个文档包含一条评论,以及评论者的姓名和电子邮件地址等信息。

Sample document from the comments collection
Figure 14. A sample MongoDB document from the comments collection

后来,一旦连接器将MongoDB文档转换为Elasticsearch文档,您就可以比较它们的结构。

我们已经将数据添加到我们的 MongoDB Atlas 集群中,现在我们需要配置 Elastic MongoDB 连接器。

收集有关您的 MongoDB 实例的详细信息

edit

在我们切换到在 Elastic Cloud 中工作之前,我们需要收集一些关于我们的 MongoDB Atlas 集群的详细信息。 我们将需要这些详细信息来配置 Elastic MongoDB 连接器。 您可以在 Atlas UI 中找到这些详细信息。

查找以下详细信息:

  • 主机: 您的 MongoDB Atlas 集群的 URI。 这应该看起来像 mongodb+srv://.hjksqfc.mongodb.net。 通过在 MongoDB Atlas UI 中连接到您的集群来找到这个 URI。

    • 找到这个 URI 的一种方法是选择 使用 MongoDB Shell 连接 并从 CLI 指令中复制连接字符串。
  • 数据库: 您想要同步的数据库的名称。 在这个例子中,我们将使用 sample_mflix 数据库。
  • 集合: 您想要同步的集合的名称。 在这个例子中,我们将使用 sample_mflix 数据库的 comments 集合。
  • 用户名: 您在设置阶段创建的用户名。
  • 密码: 您在设置阶段创建的密码。

请随时准备好这些细节!

设置 Elastic Cloud

edit

一切都在 MongoDB Atlas 中设置好了,我们有了配置 Elastic MongoDB 连接器所需的详细信息。 首先,我们需要启动并运行一个 Elastic Cloud 部署。

创建一个 Elastic Cloud 部署

edit

此步骤适用于不熟悉 Elastic Cloud 的新用户。 如果您的团队已经拥有 Elastic Cloud 部署,请跳过此步骤。

登录到 Elastic Cloud,并使用界面创建一个部署。 您需要运行版本 8.5.0+ 或更高版本。

阅读Elastic 托管连接器的前提条件以获取详细信息。

一旦您的部署创建完成,导航至搜索

创建一个 Elasticsearch 索引

edit

Elastic 连接器会将您的 MongoDB 数据同步到经过搜索优化的 Elasticsearch 索引中。 第一步是在 Kibana UI 中创建您的索引。

在主菜单中导航到 搜索 > 内容 > 索引

按照以下步骤创建您的索引:

  • 选择创建一个Elasticsearch索引
  • 选择连接器作为您的摄取方法。
  • 选择MongoDB连接器类型。
  • 命名您的新索引,例如search-mongo-sample,然后保存。 这将带您到索引概览页面的配置选项卡。

接下来,我们需要输入我们的Atlas详细信息以配置连接器。

配置 MongoDB 连接器

edit

使用之前收集的详细信息,配置MongoDB连接器。 在配置步骤下输入详细信息。

直接连接选项设置为false以进行此示例。 您必须为MongoDB Atlas启用SSL/TLS,因此请打开SSL/TLS连接选项。

Example configuration for the MongoDB connector
Figure 15. Example configuration for the MongoDB connector

输入这些详细信息后,选择保存配置

开始同步

edit

一旦配置好您的 MongoDB 连接器,就可以安排同步了。

界面将引导您进入索引概览页面的调度选项卡。 在这个示例中,我们将安排一个每日午夜运行的定期同步。

调度选项卡中:

  • 切换启用以下计划的定期同步
  • 选择频率,“每”
  • 选择时间,“在”00:00
  • 保存此同步计划。

一旦您保存了同步计划,连接器将开始将您的 MongoDB Atlas 数据同步到 Elasticsearch 中。

验证文档

edit

我们的参考文档解释了如何将MongoDB数据库和集合中的文档提取并转换为Elasticsearch索引中的文档。

如果所有配置细节都正确,同步将开始,文档将开始出现在您的 Elasticsearch 索引中。

一旦您的第一个文档同步完成,您可以查看这些文档并检查索引的映射:

  • 在 Kibana 中,导航到 搜索 > 内容 > 索引
  • 选择您的索引,例如 search-mongo-sample
  • 选择 文档 选项卡以查看同步的文档。 展开文档以查看其字段。

了解更多

edit