Elastic 托管连接器
编辑Elastic 托管连接器
编辑托管的 Elastic 连接器可以直接在您的 Elastic Cloud 部署中使用。无需额外的基础设施。
托管连接器将数据源直接同步到 Elasticsearch 索引。使用 Kibana 中的 连接器 工作流程创建这些索引。
以下连接器可用作 Elastic 托管连接器。有关每个连接器的特定信息,请参阅每个连接器的参考文档。
- Azure Blob 存储
- Box
- Confluence (包括 Confluence Data Center)
- Dropbox
- GitHub
- Gmail
- Google Cloud Storage
- Google Drive
- Jira (包括 Jira Data Center)
- Microsoft SQL
- MongoDB
- MySQL
- 网络驱动器
- Notion
- OneDrive
- Oracle
- Outlook
- PostgreSQL
- Amazon S3
- Salesforce
- ServiceNow
- SharePoint Online
- SharePoint Server
- Slack
- Teams
- Zoom
可用性和先决条件
编辑托管连接器在 Elastic 版本 8.5.0 中引入。
您的 Elastic Cloud 部署必须包括以下 Elastic 服务
- Elasticsearch
- Kibana
- 企业搜索
请参阅 Elastic 订阅页面上 Elastic 搜索 部分的原生集成,了解托管连接器的许可要求。
在 Kibana UI 中的使用
编辑按照 Kibana 中的 连接器 工作流程选择 连接器 摄取方法。选择一个数据源,创建一个 Elasticsearch 索引,并配置一个托管连接器来管理该索引。
选择一个连接器
编辑从可用选项中选择要同步的数据源,然后选择 继续。
创建索引
编辑创建一个将由连接器管理的新的索引
- 命名您的索引,并可选择更改语言分析器以匹配您数据源的人类语言。(索引名称将自动以
search-
为前缀。) - 选择 创建索引。
索引已创建并准备好进行配置。
此操作需要
配置连接器
编辑创建一个将由连接器管理的新索引。
从上面继续,或者导航到 Kibana UI 中的以下位置
从主菜单中选择 搜索 > 内容 > Elasticsearch 索引,或使用 全局搜索字段。
选择要配置的索引,然后选择 配置 选项卡。
配置连接器
- 编辑连接器的名称和描述。您的团队可以使用此信息来区分此索引与其他连接器索引。(这些字段描述了连接器,并且独立于 Elasticsearch 索引名称。)
- 保存您的更改。
- 编辑数据源配置。此处的字段因连接器而异。有关详细信息,请参阅每个连接器的文档(请参阅上面的 Elastic 托管连接器列表)。有关安全注意事项,请参阅 安全。
- 保存您的更改。
或者,选择 编辑同步计划 以开始管理连接器。
此操作需要
管理连接器
编辑要管理文档、同步、同步规则、摄取管道和其他连接器功能,请参阅 Kibana 中的连接器 UI。
管理 API 密钥
编辑Elastic 托管连接器的 API 密钥在 Elastic 版本 8.13.0 中引入。在早期版本中创建的托管连接器在升级到 8.13.0 后不会自动使用 API 密钥。有关更多信息,请参阅启用 API 密钥。
托管连接器使用 API 密钥与 Elasticsearch 通信。通过 Kibana UI 中的“连接器”页面管理托管连接器时,API 密钥管理将自动处理。Elastic 托管连接器的 API 密钥具有三个索引的 manage
权限
- 附加的索引
- 用于文档级安全性的访问控制 (ACL) 索引
- 内部
.elastic-connectors
索引。
通过 Kibana 更改附加的索引将自动使现有的 API 密钥失效并生成一个新的 API 密钥。如果要轮换现有的 API 密钥,请导航到 配置 选项卡。向下滚动到 管理 API 密钥 并选择 生成 API 密钥。此操作将使之前的 API 密钥失效,创建一个新的 API 密钥,并更新连接器机密。
Elastic 托管连接器的 API 密钥存储在名为 .connector-secrets
的内部系统索引上。只有具有 write_connector-secrets
集群权限的用户才能通过 API 请求写入此索引。只有 Enterprise Search 实例才有权从此索引读取数据。
管理 Elastic 托管连接器的用户需要将其角色分配 write_connector_secrets
集群权限。有关安全注意事项,请参阅安全。
以编程方式管理 API 密钥
编辑您也可以以编程方式创建和存储 API 密钥。
展开以下部分了解详细信息。
用户需要 manage_api_key
、manage_connector
和 write_connector_secrets
集群权限才能以编程方式生成 API 密钥。
要为连接器创建 API 密钥
-
运行以下命令,替换指示的值。请注意响应中的
id
和encoded
返回值resp = client.security.create_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 } ] } }, ) print(resp)
const response = await client.security.createApiKey({ 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, }, ], }, }, }); console.log(response);
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 } ] } } }
-
使用
encoded
值存储连接器机密,并注意此响应中的id
返回值resp = client.connector.secret_post( body={ "value": "encoded_api_key" }, ) print(resp)
const response = await client.connector.secretPost({ body: { value: "encoded_api_key", }, }); console.log(response);
POST _connector/_secret { "value": "encoded_api_key" }
-
使用 API 密钥
id
和连接器机密id
更新连接器resp = client.connector.update_api_key_id( connector_id="my_connector_id>", api_key_id="API key_id", api_key_secret_id="secret_id", ) print(resp)
const response = await client.connector.updateApiKeyId({ connector_id: "my_connector_id>", api_key_id: "API key_id", api_key_secret_id: "secret_id", }); console.log(response);
PUT /_connector/my_connector_id>/_api_key_id { "api_key_id": "API key_id", "api_key_secret_id": "secret_id" }
为升级的连接器启用 API 密钥
编辑在 8.13.0 之前创建的托管连接器在升级后最初没有 API 密钥。在将连接器转换为使用 API 密钥之前,无法更改这些连接器的附加索引。
展开以下部分,了解为升级的 Elastic 托管连接器启用 API 密钥的步骤。
-
在 Dev Tools 中运行以下命令,以启用连接器的 API 密钥,替换指示的值。
resp = client.update( index=".elastic-connectors", id="connector_id", doc={ "features": { "native_connector_api_keys": { "enabled": True } } }, ) print(resp)
const response = await client.update({ index: ".elastic-connectors", id: "connector_id", doc: { features: { native_connector_api_keys: { enabled: true, }, }, }, }); console.log(response);
POST .elastic-connectors/_update/connector_id { "doc": { "features": { "native_connector_api_keys": { "enabled": true } } } }
- 返回“连接器”页面,并导航到 配置 选项卡。
- 向下滚动到 管理 API 密钥 并选择 生成 API 密钥。
您的托管连接器现在正在使用 API 密钥来授权摄取到 Elasticsearch 中。
通过 API 使用
编辑在 8.12 中,我们引入了一组 连接器 API 来创建和管理 Elastic 连接器和同步作业,以及一个 CLI 工具。如果您想以编程方式处理连接器和同步作业,请使用这些工具。
端到端示例
编辑以下示例演示了如何在 Elastic Cloud 上使用托管连接器:托管连接器教程 (MongoDB)。
转换托管连接器
编辑您可以将托管连接器转换为自托管连接器,以便在您自己的基础设施上运行。您将在 UI 的连接器索引的概述页面上找到相关说明。
将托管连接器转换为自托管连接器是不可逆的操作!