Spec-Zone.ru › Elasticsearch 8
›Руководство по Elasticsearch [8.17] ›Ввод контента с помощью соединителей Elastic ›Ссылки на соединители

Справочник по соединителю Elastic Confluence

Соединитель Elastic Confluence — это соединитель для Atlassian Confluence. Этот соединитель написан на языке Python с использованием фреймворка соединителей Elastic.

Просмотреть исходный код для этого соединителя (ветка 8.17, совместимая с Elastic 8.17).

Выберите ссылку на соединитель

Вы используете управляемый соединитель в Elastic Cloud или самостоятельный соединитель? Разверните документацию в зависимости от вашего метода развертывания.

Справочник по управляемому соединителю Elastic

Просмотр справки по управляемому соединителю Elastic
Доступность и предварительные требования

Этот соединитель доступен в качестве управляемого соединения в Elastic Cloud, начиная с версии 8.9.1.

Поддержка Confluence Data Center была добавлена в 8.13.0 в техническом предварительном просмотре и может быть изменена. Дизайн и код менее зрелые, чем официальные функции GA, и предоставляются как есть без гарантий. Функции технического предварительного просмотра не подпадают под SLA поддержки официальных функций GA.

Чтобы использовать этот соединитель напрямую в Elastic Cloud, выполните все требования к управляемым соединениям.

Создание соединения с Confluence

Использование пользовательского интерфейса

Чтобы создать новое соединение с Confluence:

  1. В пользовательском интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Соединители из главного меню или используйте поле глобального поиска.
  2. Следуйте инструкциям по созданию нового родного соединения с 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 для соединения:

  1. Запустите следующую команду, заменив значения, где необходимо. Обратите внимание на возвращаемые значения 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
            }
          ]
        }
      }
    }
  2. Используйте значение 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"
    }
  3. Используйте ключ 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 logo cloud.

Дополнительные операции см. в Пользовательском интерфейсе соединителей в 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:

  1. В интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Коннекторы из основного меню или используйте поле глобального поиска.
  2. Следуйте инструкциям для создания нового 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 для коннектора:

  1. Выполните следующую команду, заменив значения там, где это указано. Обратите внимание на значения 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
            }
          ]
        }
      }
    }
  2. Обновите свой файл config.yml со значением ключа API encoded.

Подробные сведения обо всех доступных 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API