Elastic Confluence 连接器参考
编辑Elastic Confluence 连接器参考
编辑Elastic Confluence 连接器 是一个用于 Atlassian Confluence 的连接器。此连接器使用 Elastic 连接器框架用 Python 编写。
查看此连接器的源代码(分支 8.17,与 Elastic 8.17 兼容)。
Elastic 托管连接器参考
编辑查看 Elastic 托管连接器 参考
可用性和先决条件
编辑此连接器自 8.9.1 版本起,可在 Elastic Cloud 上作为托管连接器使用。
Confluence Data Center 支持在 8.13.0 版本中添加了技术预览,并且可能会发生更改。其设计和代码不如官方 GA 功能成熟,按原样提供,不提供任何保证。技术预览功能不受官方 GA 功能的支持 SLA 约束。
要在 Elastic Cloud 中原生使用此连接器,请满足所有托管连接器要求。
创建 Confluence 连接器
编辑使用 UI
编辑要创建新的 Confluence 连接器
- 在 Kibana UI 中,从主菜单导航到 搜索 → 内容 → 连接器 页面,或使用全局搜索字段。
- 按照说明创建新的原生 Confluence 连接器。
有关其他操作,请参阅Kibana 中的连接器 UI。
使用 API
编辑您可以使用 Elasticsearch 创建连接器 API 来创建新的原生 Confluence 连接器。
例如
resp = client.connector.put( connector_id="my-{service-name-stub}-connector", index_name="my-elasticsearch-index", name="Content synced from {service-name}", service_type="{service-name-stub}", is_native=True, ) print(resp)
const response = await client.connector.put({ connector_id: "my-{service-name-stub}-connector", index_name: "my-elasticsearch-index", name: "Content synced from {service-name}", service_type: "{service-name-stub}", is_native: true, }); console.log(response);
PUT _connector/my-confluence-connector { "index_name": "my-elasticsearch-index", "name": "Content synced from Confluence", "service_type": "confluence", "is_native": true }
您还需要为连接器使用创建 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 的详细信息,请参阅 Elasticsearch API 文档。
用法
编辑要将此连接器用作托管连接器,请参阅Elastic 托管连接器 。
有关其他操作,请参阅Kibana 中的连接器 UI。
兼容性
编辑- Confluence Cloud 或 Confluence Server/Data Center 7 或更高版本。
配置
编辑需要以下配置字段来设置连接器
- Confluence 数据源
- 下拉列表,用于确定 Confluence 平台类型:
Confluence Cloud
、Confluence Server
或Confluence Data Center
。默认值为Confluence Server
。 - Confluence Data Center 用户名
- Confluence Data Center 帐户的用户名。
- Confluence Data Center 密码
- 用于 Confluence Data Center 的帐户的密码。
- Confluence Server 用户名
- Confluence Server 帐户的用户名。
- Confluence Server 密码
- 用于 Confluence Server 的帐户的密码。
- Confluence Cloud 帐户电子邮件
- Confluence Cloud 的帐户电子邮件。
- Confluence Cloud API 令牌
- 用于通过 Confluence Cloud 进行身份验证的 API 令牌。
- Confluence URL 标签
-
Confluence 托管的域。示例
-
https://192.158.1.38:8080/
-
https://test_user.atlassian.net/
-
- Confluence 空间键
-
要从 Confluence 服务器或云获取数据的空间键的逗号分隔列表。如果该值为
*
,则连接器将从配置的spaces
中的所有空间获取数据。默认值为*
。示例-
EC
,TP
-
*
-
- 启用索引标签
- 切换以启用从页面同步标签。注意:这将增加对源的网络调用量,并可能降低性能。
- 启用 SSL
- 是否启用 SSL 验证。默认值为
False
。 - SSL 证书
-
SSL 证书的内容。注意:如果
ssl_enabled
为False
,则此字段中的值将被忽略。示例证书-----BEGIN CERTIFICATE----- MIID+jCCAuKgAwIBAgIGAJJMzlxLMA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNVBAYT ... 7RhLQyWn2u00L7/9Omw= -----END CERTIFICATE-----
- 启用文档级安全性
- 切换以启用文档级安全性 (DLS)。启用后,完整同步将获取每个文档的访问控制列表并将其存储在
_allow_access_control
字段中。访问控制同步将获取用户的访问控制列表并将其存储在单独的索引中。
要访问 Jira 管理中的用户数据,您创建的帐户必须被授予 Jira 管理的产品访问权限。此访问权限需要由 Atlassian 管理员提供,并且授予的访问级别应为 产品管理员
。
文档和同步
编辑该连接器同步以下 Confluence 对象类型
- 页面
- 空间
- 博客文章
- 附件
同步类型
编辑默认情况下,所有连接器都支持完整同步。
此连接器还支持增量同步。
同步规则
编辑基本同步规则对于所有连接器都是相同的,并且默认可用。
此连接器支持用于远程过滤的高级同步规则。这些规则涵盖了无法使用 <基本同步规则表达的复杂查询和筛选场景。高级同步规则通过特定于源的 DSL JSON 代码段定义。
高级同步规则示例
编辑示例 1:查询以索引具有键 DEV 的特定 空间 中的数据。
[ { "query": "space = DEV" } ]
示例 2:根据 created
和 lastmodified
时间查询以索引数据。
[ { "query": "created >= now('-5w')" }, { "query": "lastmodified < startOfYear()" } ]
示例 3:查询以仅索引具有键 SD 的 空间 中的给定类型。
[ { "query": "type in ('page', 'attachment') AND space.key = 'SD'" } ]
使用高级同步规则时,同步 Confluence 中最近创建/更新的项目可能会延迟,因为用于 CQL 查询的搜索端点会在响应中返回过时的结果。有关更多详细信息,请参阅Confluence 文档中的以下问题。
文档级安全性
编辑自 8.9.0 版本起,Atlassian Confluence Cloud 自动提供 DLS。自 8.14.0 版本起,Confluence Server 和 Confluence Data Center 提供 DLS,但需要安装Extender for Confluence。
文档级安全性 (DLS) 使您可以根据用户的权限限制对文档的访问。有关如何为此连接器启用 DLS,请参阅此页面上的配置。
当 data_source
设置为 Confluence Data Center 或 Server 时,由于使用的 API 的限制,该连接器仅获取 1000 个用户进行访问控制同步。
请参阅搜索应用程序中的 DLS,以了解在构建搜索应用程序时,如何使用启用了 DLS 的连接器摄取数据。该示例使用 SharePoint Online 作为数据源,但相同的步骤适用于每个连接器。
内容提取
编辑请参阅内容提取。
已知问题
编辑此连接器目前没有已知问题。有关所有连接器的已知问题列表,请参阅已知问题。
故障排除
编辑请参阅故障排除。
安全性
编辑请参阅安全性。
自管理连接器
编辑查看自托管连接器参考
可用性和先决条件
编辑此连接器作为使用 Elastic 连接器框架 的自托管连接器提供。此自托管连接器与 Elastic 版本8.7.0+兼容。
Confluence Data Center 支持在 8.13.0 版本中添加了技术预览,并且可能会发生更改。其设计和代码不如官方 GA 功能成熟,按原样提供,不提供任何保证。技术预览功能不受官方 GA 功能的支持 SLA 约束。
要使用此连接器,请满足所有自托管连接器要求。
创建 Confluence 连接器
编辑使用 UI
编辑要创建新的 Confluence 连接器
- 在 Kibana UI 中,从主菜单导航到 搜索 → 内容 → 连接器 页面,或使用全局搜索字段。
- 按照说明创建新的 Confluence 自托管连接器。
使用 API
编辑您可以使用 Elasticsearch 创建连接器 API来创建新的自托管 Confluence 自托管连接器。
例如
resp = client.connector.put( connector_id="my-{service-name-stub}-connector", index_name="my-elasticsearch-index", name="Content synced from {service-name}", service_type="{service-name-stub}", ) print(resp)
const response = await client.connector.put({ connector_id: "my-{service-name-stub}-connector", index_name: "my-elasticsearch-index", name: "Content synced from {service-name}", service_type: "{service-name-stub}", }); console.log(response);
PUT _connector/my-confluence-connector { "index_name": "my-elasticsearch-index", "name": "Content synced from Confluence", "service_type": "confluence" }
您还需要为连接器使用创建 API 密钥。
用户需要集群权限 manage_api_key
、manage_connector
和 write_connector_secrets
才能以编程方式生成 API 密钥。
要为连接器创建 API 密钥
-
运行以下命令,替换指示的值。请注意响应中的
encoded
返回值resp = client.security.create_api_key( name="connector_name-connector-api-key", role_descriptors={ "connector_name-connector-role": { "cluster": [ "monitor", "manage_connector" ], "indices": [ { "names": [ "index_name", ".search-acl-filter-index_name", ".elastic-connectors*" ], "privileges": [ "all" ], "allow_restricted_indices": False } ] } }, ) print(resp)
const response = await client.security.createApiKey({ name: "connector_name-connector-api-key", role_descriptors: { "connector_name-connector-role": { cluster: ["monitor", "manage_connector"], indices: [ { names: [ "index_name", ".search-acl-filter-index_name", ".elastic-connectors*", ], privileges: ["all"], allow_restricted_indices: false, }, ], }, }, }); console.log(response);
POST /_security/api_key { "name": "connector_name-connector-api-key", "role_descriptors": { "connector_name-connector-role": { "cluster": [ "monitor", "manage_connector" ], "indices": [ { "names": [ "index_name", ".search-acl-filter-index_name", ".elastic-connectors*" ], "privileges": [ "all" ], "allow_restricted_indices": false } ] } } }
- 使用 API 密钥
encoded
值更新您的config.yml
文件。
有关所有可用连接器 API 的详细信息,请参阅 Elasticsearch API 文档。
用法
编辑要将此连接器用作自托管连接器,请参阅自托管连接器。有关其他使用操作,请参阅Kibana 中的连接器 UI。
兼容性
编辑- Confluence Cloud 或 Confluence Server/Data Center 7 或更高版本
配置
编辑需要以下配置字段来设置连接器
-
data_source
- 下拉列表,用于确定 Confluence 平台类型:
Confluence Cloud
、Confluence Server
或Confluence Data Center
。默认值为Confluence Server
。 -
data_center_username
- Confluence Data Center 帐户的用户名。
-
data_center_password
- 用于 Confluence Data Center 的帐户的密码。
-
username
- Confluence Server 帐户的用户名。
-
password
- 用于 Confluence 服务器的帐户密码。
-
account_email
- Confluence Cloud 的帐户电子邮件。
-
api_token
- 用于与 Confluence Cloud 身份验证的 API 令牌。
-
confluence_url
-
Confluence 实例托管的域。示例
-
https://192.158.1.38:8080/
-
https://test_user.atlassian.net/
-
-
spaces
-
要从 Confluence 获取数据的空间键的逗号分隔列表。如果值为
*
,则连接器将从配置的spaces
中存在的所有空间获取数据。默认值为*
。示例-
EC
,TP
-
*
-
-
index_labels
- 切换以启用从页面同步标签。注意:这将增加对源的网络调用量,并可能降低性能。
-
ssl_enabled
- 是否启用 SSL 验证。默认值为
False
。 -
ssl_ca
-
SSL 证书的内容。注意:如果
ssl_enabled
为False
,则此字段中的值将被忽略。示例证书-----BEGIN CERTIFICATE----- MIID+jCCAuKgAwIBAgIGAJJMzlxLMA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNVBAYT ... 7RhLQyWn2u00L7/9Omw= -----END CERTIFICATE-----
-
retry_count
- 请求 Confluence 失败后的重试次数。默认值为
3
。 -
concurrent_downloads
- 用于获取附件内容的并发下载数量。这加快了附件的内容提取速度。默认为
50
。 -
use_document_level_security
-
切换以启用文档级别安全性 (DLS)。
启用后,完全同步将获取每个文档的访问控制列表,并将其存储在
_allow_access_control
字段中。访问控制同步将获取用户的访问控制列表,并将其存储在单独的索引中。要访问 Jira 管理中的用户数据,您创建的帐户必须被授予 Jira 管理的产品访问权限。此访问权限需要由 Atlassian 管理员提供,并且授予的访问级别应为
产品管理员
。 -
use_text_extraction_service
- 切换以启用本地文本提取服务。默认值为
False
。需要单独部署 Elastic 文本提取服务。需要摄取管道设置禁用文本提取。
使用 Docker 部署
编辑您可以使用 Docker 将 Confluence 连接器部署为自托管连接器。请按照以下说明操作。
步骤 1:下载示例配置文件
下载示例配置文件。您可以手动下载,也可以运行以下命令
curl https://raw.githubusercontent.com/elastic/connectors/main/config.yml.example --output ~/connectors-config/config.yml
如果您的目录名称不同,或者您想使用不同的配置文件名,请记住更新 --output
参数值。
步骤 2:更新自托管连接器的配置文件
使用以下设置更新配置文件以匹配您的环境
-
elasticsearch.host
-
elasticsearch.api_key
-
connectors
如果您正在针对 Docker 化的 Elasticsearch 和 Kibana 版本运行连接器服务,则您的配置文件将如下所示
# When connecting to your cloud deployment you should edit the host value elasticsearch.host: http://host.docker.internal:9200 elasticsearch.api_key: <ELASTICSEARCH_API_KEY> connectors: - connector_id: <CONNECTOR_ID_FROM_KIBANA> service_type: confluence api_key: <CONNECTOR_API_KEY_FROM_KIBANA> # Optional. If not provided, the connector will use the elasticsearch.api_key instead
建议使用 elasticsearch.api_key
作为身份验证方法。但是,您也可以使用 elasticsearch.username
和 elasticsearch.password
来验证您的 Elasticsearch 实例。
注意:您可以通过简单地取消注释配置文件中的特定设置并修改其值来更改其他默认配置。
步骤 3:运行 Docker 镜像
使用以下命令使用连接器服务运行 Docker 镜像
docker run \ -v ~/connectors-config:/config \ --network "elastic" \ --tty \ --rm \ docker.elastic.co/enterprise-search/elastic-connectors:8.17.0.0 \ /app/bin/elastic-ingest \ -c /config/config.yml
有关详细信息,请参阅 elastic/connectors
仓库中的 DOCKER.md
。
在官方注册表中查找所有可用的 Docker 镜像。
我们还有一个使用 Docker Compose 的快速入门自托管选项,因此您可以一次启动所有必需的服务:Elasticsearch、Kibana 和连接器服务。有关更多信息,请参阅 elastic/connectors
仓库中的 README。
文档和同步
编辑该连接器同步以下 Confluence 对象类型
- 页面
- 空间
- 博客文章
- 附件
- 不会提取大于 10 MB 的文件的内容。
- 权限不会同步。所有索引到 Elastic 部署的文档对于所有有权访问该 Elastic 部署的用户都是可见的。
同步类型
编辑默认情况下,所有连接器都支持完整同步。
此连接器还支持增量同步。
同步规则
编辑基本同步规则对于所有连接器都是相同的,并且默认可用。
此连接器支持用于远程过滤的高级同步规则。这些规则涵盖了无法使用 <基本同步规则表达的复杂查询和筛选场景。高级同步规则通过特定于源的 DSL JSON 代码段定义。
高级同步规则示例
编辑示例 1:查询以索引具有键 DEV 的特定 空间 中的数据。
[ { "query": "space = DEV" } ]
示例 2:根据 created
和 lastmodified
时间查询以索引数据。
[ { "query": "created >= now('-5w')" }, { "query": "lastmodified < startOfYear()" } ]
示例 3:查询以仅索引具有键 SD 的 空间 中的给定类型。
[ { "query": "type in ('page', 'attachment') AND space.key = 'SD'" } ]
使用高级同步规则时,同步 Confluence 中最近创建/更新的项目可能会延迟,因为用于 CQL 查询的搜索端点会在响应中返回过时的结果。有关更多详细信息,请参阅Confluence 文档中的以下问题。
文档级别安全性
编辑自 8.9.0 版本起,Atlassian Confluence Cloud 自动提供 DLS。自 8.14.0 版本起,Confluence Server 和 Confluence Data Center 提供 DLS,但需要安装Extender for Confluence。
文档级别安全性 (DLS) 使您能够根据用户的权限限制对文档的访问。有关如何为此连接器启用 DLS,请参阅本页上的配置。
当 data_source
设置为 Confluence Data Center 或 Server 时,由于使用的 API 的限制,该连接器仅获取 1000 个用户进行访问控制同步。
请参阅搜索应用程序中的 DLS,以了解在构建搜索应用程序时,如何使用启用了 DLS 的连接器摄取数据。该示例使用 SharePoint Online 作为数据源,但相同的步骤适用于每个连接器。
内容提取
编辑请参阅内容提取。
自托管连接器操作
编辑端到端测试
编辑连接器框架使操作员能够针对真实数据源运行功能测试。有关更多详细信息,请参阅连接器测试。
要对 Confluence 连接器执行 E2E 测试,请运行以下命令
$ make ftest NAME=confluence
对于更快的测试,请添加 DATA_SIZE=small
标志
make ftest NAME=confluence DATA_SIZE=small
已知问题
编辑此连接器目前没有已知问题。有关所有连接器的已知问题列表,请参阅已知问题。
故障排除
编辑请参阅故障排除。
安全性
编辑请参阅安全性。