Справочник по соединителю Elastic Confluence
Соединитель Elastic Confluence — это соединитель для Atlassian Confluence. Этот соединитель написан на языке Python с использованием фреймворка соединителей Elastic.
Просмотреть исходный код для этого соединителя (ветка 8.17, совместимая с Elastic 8.17).
Справочник по управляемому соединителю Elastic
Просмотр справки по управляемому соединителю Elastic
Доступность и предварительные требования
Этот соединитель доступен в качестве управляемого соединения в Elastic Cloud, начиная с версии 8.9.1.
Поддержка Confluence Data Center была добавлена в 8.13.0 в техническом предварительном просмотре и может быть изменена. Дизайн и код менее зрелые, чем официальные функции GA, и предоставляются как есть без гарантий. Функции технического предварительного просмотра не подпадают под SLA поддержки официальных функций GA.
Чтобы использовать этот соединитель напрямую в Elastic Cloud, выполните все требования к управляемым соединениям.
Создание соединения с Confluence
Использование пользовательского интерфейса
Чтобы создать новое соединение с Confluence:
- В пользовательском интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Соединители из главного меню или используйте поле глобального поиска.
- Следуйте инструкциям по созданию нового родного соединения с Confluence.
Дополнительные операции см. в Пользовательском интерфейсе соединителей в Kibana.
Использование 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.perform_request( "POST", "/_connector/_secret", headers={"Content-Type": "application/json"}, body={ "value": "encoded_api_key" }, ) print(resp)const response = await client.transport.request({ method: "POST", path: "/_connector/_secret", 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.
Совместимость
- 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 сервера.
- Пароль Confluence Server
- Пароль учетной записи, используемой для Confluence сервера.
- Электронная почта учетной записи Confluence Cloud
- Электронная почта учетной записи Confluence Cloud.
- Токен API Confluence Cloud
- Токен API для аутентификации с Confluence cloud.
- Метка URL Confluence
-
Домен, где размещен 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 Admin, и уровень доступа должен быть Product Admin.
Документы и синхронизации
Соединитель синхронизирует следующие типы объектов Confluence:
- Страницы
- Пространства
- Посты блога
- Вложения
- Содержимое файлов размером более 10 МБ не будет извлечено. (Управляемые соединения могут использовать локальную службу извлечения для обработки больших бинарных файлов.)
- Разрешения не синхронизируются по умолчанию. Сначала необходимо включить DLS. В противном случае, все документы, индексированные в 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.
Безопасность на уровне документа
DLS автоматически доступен для Atlassian Confluence Cloud начиная с версии 8.9.0. DLS доступен начиная с версии 8.14.0 для Confluence Server и Confluence Data Center, но требует установки Extender для Confluence.
Безопасность на уровне документа (DLS) позволяет ограничить доступ к документам на основе разрешений пользователя. Обратитесь к настройке на этой странице, чтобы узнать, как включить DLS для этого коннектора.
Когда data_source задан как Confluence Data Center или Server, коннектор будет извлекать только 1000 пользователей для синхронизации управления доступом, из-за ограничения в используемом API.
Обратитесь к DLS в приложениях поиска, чтобы узнать, как импортировать данные из коннектора с включенной DLS при создании приложения поиска. Пример использует SharePoint Online в качестве источника данных, но те же шаги применимы ко всем коннекторам.
Извлечение содержимого
Известные проблемы
В настоящее время для этого коннектора нет известных проблем. Обратитесь к Известные проблемы для получения списка известных проблем для всех коннекторов.
Устранение неполадок
См. Устранение неполадок.
Безопасность
См. Безопасность.
Коннектор с самостоятельным управлением
Просмотреть справку по коннектору с самостоятельным управлением
Доступность и предварительные требования
Этот коннектор доступен в качестве самостоятельно управляемого коннектора с использованием фреймворка коннекторов Elastic. Этот самостоятельно управляемый коннектор совместим с версиями Elastic 8.7.0+.
Поддержка Confluence Data Center была добавлена в 8.13.0 в техническом предварительном просмотре и может быть изменена. Дизайн и код менее зрелые, чем официальные функции GA, и предоставляются как есть без каких-либо гарантий. Функции технического предварительного просмотра не подпадают под SLA поддержки официальных функций GA.
Для использования этого коннектора, выполните все требования к самостоятельно управляемым коннекторам.
Создание коннектора Confluence
Использование интерфейса
Для создания нового коннектора Confluence:
- В интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Коннекторы из основного меню или используйте поле глобального поиска.
- Следуйте инструкциям для создания нового 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 } ] } } } - Обновите свой файл
config.ymlсо значением ключа APIencoded.
Подробные сведения обо всех доступных API-интерфейсах коннекторов см. в документации API Elasticsearch.
Использование
Для использования этого коннектора как самостоятельно управляемого коннектора, см. Самостоятельно управляемые коннекторы. Дополнительные операции по использованию см. в Интерфейсе коннекторов в Kibana.
Совместимость
- Confluence Cloud или Confluence Server/Data Center версий 7 или выше
Настройка
При использовании рабочего процесса самостоятельно управляемого коннектора, поначалу эти поля будут использовать значения по умолчанию, заданные в коде источника коннектора. Они задаются в определении функции get_default_configuration.
Эти настраиваемые поля будут отображаться с соответствующими метками в интерфейсе Kibana. После подключения вы сможете обновить эти значения в Kibana.
Для настройки коннектора требуются следующие поля:
-
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 Server.
-
account_email - Электронная почта учетной записи для Confluence Cloud.
-
api_token - Токен API для аутентификации с Confluence Cloud.
-
confluence_url -
Домен, где размещён экземпляр Confluence. Примеры:
-
https://192.158.1.38:8080/ -
https://test_user.atlassian.net/
-
-
spaces -
Список пространств ключей (Space Keys) через запятую для извлечения данных из 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 Administration, учетная запись, которую вы создали, должна иметь доступ к продуктам для Jira Administration. Этот доступ должен быть предоставлен администратором из Atlassian Admin, а уровень доступа должен быть
Product Admin. -
use_text_extraction_service - Переключатель для включения локальной службы извлечения текста. Значение по умолчанию —
False. Требует отдельного развертывания службы Elastic Text Extraction. Требует, чтобы настройки конвейера погрузки отключали извлечение текста.
Развертывание с помощью Docker
Вы можете развернуть коннектор Confluence как самостоятельно управляемый коннектор с помощью Docker. Следуйте этим инструкциям.
Шаг 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
Если вы запускаете службу коннектора с контейнеризированным 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.3 \ /app/bin/elastic-ingest \ -c /config/config.yml
См. DOCKER.md в репозитории elastic/connectors для получения более подробной информации.
Найдите все доступные образы Docker в официальном репозитории.
У нас также есть быстрый вариант самообслуживания с использованием Docker Compose, позволяющий одновременно запустить все необходимые службы: Elasticsearch, Kibana и службу коннекторов. Обратитесь к этому README в репозитории elastic/connectors для получения дополнительной информации.
Документы и синхронизации
Коннектор синхронизирует следующие типы объектов Confluence:
- Страницы
- Пространства
- Посты блога
- Вложения
- Содержимое файлов размером более 10 МБ не будет извлечено.
- Разрешения не синхронизируются. Все документы, индексированные в развертывании Elastic, будут видны всем пользователям с доступом к этому развертыванию Elastic.
Типы синхронизации
Полные синхронизации поддерживаются по умолчанию для всех коннекторов.
Этот коннектор также поддерживает инкрементные синхронизации.
Правила синхронизации
Основные правила синхронизации одинаковы для всех коннекторов и доступны по умолчанию.
Этот коннектор поддерживает расширенные правила синхронизации для удаленного фильтра. Эти правила охватывают сложные сценарии запроса и фильтрации, которые нельзя выразить с помощью <основных правил синхронизации. Расширенные правила синхронизации определяются с помощью фрагмента JSON DSL, специфичного для источника.
Примеры расширенных правил синхронизации
Пример 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.
Безопасность на уровне документа
DLS автоматически доступен для Atlassian Confluence Cloud с версии 8.9.0. DLS доступен с версии 8.14.0 для Confluence Server и Confluence Data Center, но требует установки Extender for Confluence.
Безопасность на уровне документа (DLS) позволяет ограничить доступ к документам на основе разрешений пользователя. Обратитесь к настройкам на этой странице, чтобы узнать, как включить DLS для этого коннектора.
Когда data_source установлено на Confluence Data Center или Server, коннектор будет получать только 1000 пользователей для синхронизации управления доступом из-за ограничения в используемом API.
См. DLS в приложениях поиска, чтобы узнать, как импортировать данные из коннектора с включённой DLS при создании приложения поиска. В примере используется SharePoint Online в качестве источника данных, но те же шаги применимы ко всем коннекторам.
Извлечение содержимого
Операции с коннектором самообслуживания
Конечный тест
Фреймворк коннектора позволяет операторам запускать функциональные тесты с использованием реального источника данных. См. Тестирование коннекторов для получения дополнительных сведений.
Для выполнения конечного тестирования коннектора Confluence выполните следующую команду:
$ make ftest NAME=confluence
Для более быстрых тестов добавьте флаг DATA_SIZE=small:
make ftest NAME=confluence DATA_SIZE=small
Известные проблемы
В настоящее время для этого коннектора нет известных проблем. См. Известные проблемы для списка известных проблем для всех коннекторов.
Поиск решения проблем
Безопасность
См. Безопасность.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/es-connectors-confluence.html