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

Справочник по коннектору Elastic Slack

Подключение Slack написано на Python с использованием фреймворка подключений Elastic.

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

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

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

Это управляемое подключение было добавлено в Elastic 8.14.0 в качестве управляемой службы в Elastic Cloud.

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

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

Создание подключения Slack

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

Чтобы создать новое подключение Slack:

  1. В пользовательском интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Подключения из основного меню или используйте поле глобального поиска.
  2. Следуйте инструкциям по созданию нового нативного подключения Slack.

Для дополнительных операций см. Интерфейс пользователя подключений в Kibana.

Использование API

Вы можете использовать Elasticsearch API создания подключения для создания нового нативного подключения Slack.

Например:

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-slack-connector
{
  "index_name": "my-elasticsearch-index",
  "name": "Content synced from Slack",
  "service_type": "slack",
  "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 для подключений см. в документации API Elasticsearch.

Использование

Чтобы использовать это подключение в пользовательском интерфейсе, выберите плитку Notion при создании нового подключения в разделе Поиск → Подключения.

Если вы уже знакомы с принципом работы подключений, вы также можете использовать API для подключений.

Для дополнительных операций см. Интерфейс пользователя подключений в Kibana.

Вам необходимо создать приложение Slack для аутентификации с Slack.

Создание приложения Slack

При создании вы получите учетные данные, которые используется подключение для аутентификации. Также будет создан новый пользователь бота.

Подключение будет синхронизировать только сообщения из каналов, участником которых является пользователь бота.

Чтобы создать приложение, выполните следующие действия:

  1. Перейдите по адресу https://api.slack.com/apps и нажмите «Создать новое приложение».
  2. Выберите «С нуля».
  3. Назовите приложение и выберите рабочую область, данные из которой вы хотите синхронизировать. В зависимости от настроек рабочей области может появиться предупреждение о необходимости одобрения администратора. Это будет сделано позже.
  4. Перейдите к разделу «OAuth и разрешения» в боковой панели.
  5. Прокрутите вниз до раздела «Разрешения» и добавьте эти разрешения:

    • channels:history
    • channels:read
    • users:read.

      Необязательно, вы также можете добавить channels:join, если хотите, чтобы бот-приложение автоматически добавляло себя во все публичные каналы.

  6. Прокрутите вверх до «Токены OAuth для вашей рабочей области» и установите приложение. Возможно, вашей рабочей области потребуется одобрение администратора. В таком случае запросите одобрение сейчас и вернитесь к следующему шагу, как только оно будет одобрено.
  7. Скопируйте и сохраните новый «Токен OAuth пользователя бота». Эти данные будут использованы при настройке подключения.
Настройка

Для настройки этого подключения требуются следующие параметры:

token(обязательно)
Токен OAuth пользователя бота, сгенерированный при создании и установке вашего приложения Slack.
fetch_last_n_days(обязательно)
Количество дней истории, которые нужно извлечь из Slack. Это должно быть положительное число, чтобы извлечь подмножество данных за эти дни. Если установлено значение 0, будут извлечены все данные с момента создания рабочей области. По умолчанию — 180 дней.
auto_join_channels(обязательно)
Следует ли автоматически приглашать бота-пользователя приложения во все публичные каналы. Подключение будет синхронизировать только сообщения из каналов, участником которых является пользователь бота. По умолчанию бот не будет приглашать себя в каналы и должен быть приглашен вручную в каждый канал, который вы хотите синхронизировать. Если этот параметр включён, ваше приложение должно иметь разрешение channels.join.
sync_users(обязательно)
Следует ли индексировать документ для каждого пользователя Slack. По умолчанию подключение будет создавать документы только для каналов и сообщений. Однако независимо от значения этого параметра приложение Slack должно иметь разрешение users.read и будет отправлять запросы для перечисления всех пользователей рабочей области. Это позволяет обогатить сообщения удобочитаемыми именами пользователей, а не нечитаемыми идентификаторами пользователей. Поэтому отключение этого параметра не приводит к повышению скорости, но лишь к сокращению общего объёма данных в Elasticsearch.
Правила синхронизации

Основные правила синхронизации одинаковы для всех подключений и доступны по умолчанию.

Дополнительные правила синхронизации недоступны для этого подключения в данной версии.

Дополнительную информацию см. в Типы правил синхронизации.

Извлечение содержимого

Это подключение в настоящее время не поддерживает обработку вложений Slack или других бинарных файлов.

Документы и синхронизации

Подключение синхронизирует следующие объекты и сущности:

  • Каналы
  • Сообщения
  • Пользователи (настраиваемо)
  • Синхронизируются только публичные каналы и сообщения из публичных каналов.
  • Разрешения не синхронизируются. Все документы, индексированные в развертывании Elastic, будут видны всем пользователям с доступом к этому развертыванию Elastic.
Известные проблемы

В настоящее время для этого подключения нет известных проблем. Список известных проблем всех подключений см. в Известные проблемы.

Устранение неполадок

См. Устранение неполадок.

Безопасность

См. Безопасность.

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

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

Этот коннектор доступен в качестве самоуправляемого самоуправляемого коннектора из фреймворка Elastic Connector.

Этот самоуправляемый коннектор совместим с версиями Elastic 8.10.0+.

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

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

Создание коннектора Slack

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

Чтобы создать новый коннектор Slack:

  1. В пользовательском интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Коннекторы из главного меню или используйте поле глобального поиска.
  2. Следуйте инструкциям для создания нового самоуправляемого коннектора Slack.

Использование API

Вы можете использовать Elasticsearch API создания коннектора для создания нового самоуправляемого коннектора Slack.

Например:

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-slack-connector
{
  "index_name": "my-elasticsearch-index",
  "name": "Content synced from Slack",
  "service_type": "slack"
}
Вам также потребуется создать ключ 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.

Для дополнительных операций см. Пользовательский интерфейс коннекторов в Kibana.

Для аутентификации с Slack необходимо создать приложение Slack.

Создание приложения Slack

При создании вы получите учетные данные, которые используются коннектором для аутентификации. Также будет создан новый бот-пользователь.

Коннектор будет синхронизировать только сообщения из каналов, участником которых является бот-пользователь.

Чтобы создать приложение, выполните следующие шаги:

  1. Перейдите на https://api.slack.com/apps и нажмите "Создать новое приложение".
  2. Выберите "С нуля".
  3. Назовите приложение и выберите рабочую область, с которой хотите синхронизировать данные. В зависимости от настроек рабочей области, вы можете получить предупреждение о необходимости одобрения администратором. Это будет сделано позже.
  4. Перейдите в "OAuth и разрешения" в боковой панели.
  5. Прокрутите вниз до раздела "Разрешения" и добавьте эти разрешения:

    • channels:history
    • channels:read
    • users:read.

      Необязательно, вы также можете добавить channels:join, если хотите, чтобы бот-приложение автоматически добавлялось в публичные каналы.

  6. Прокрутите вверх до "Токены OAuth для вашей рабочей области" и установите приложение. Возможно, вашей рабочей области потребуется административное одобрение. В таком случае, запросите одобрение сейчас и вернитесь к следующему шагу, после его получения.
  7. Скопируйте и сохраните новый "Токен OAuth бот-пользователя". Эти учетные данные будут использованы при настройке коннектора.
Развертывание с Docker

Вы можете развернуть коннектор Slack как самоуправляемый коннектор с помощью 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

Если вы запускаете службу коннектора на 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: slack
    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 для получения дополнительной информации.

Конфигурация

Для настройки этого коннектора требуются следующие параметры:

token(обязательно)
Токен OAuth бот-пользователя, сгенерированный при создании и установке вашего приложения Slack.
fetch_last_n_days(обязательно)
Количество дней истории, которые нужно извлечь из Slack. Это должно быть положительное число, чтобы извлечь подмножество данных, начиная с указанного количества дней назад. Если установлено значение 0, то будут извлечены все данные с начала работы рабочей области. По умолчанию 180 дней.
auto_join_channels(обязательно)
Необходимо ли коннектору автоматически приглашать бот-пользователя приложения во все публичные каналы. Коннектор будет синхронизировать только сообщения из каналов, участником которых является бот-пользователь. По умолчанию бот не приглашает себя в каналы и должен быть вручную добавлен в каждый канал, который вы хотите синхронизировать. Если эта настройка включена, ваше приложение должно иметь разрешение channels.join.
sync_users(обязательно)
Необходимо ли индексировать документ для каждого пользователя Slack. По умолчанию коннектор создает документы только для каналов и сообщений. Однако, независимо от значения этой настройки, приложение Slack требует разрешение users.read и будет выполнять запросы для перечисления всех пользователей рабочей области. Это позволяет обогащать сообщения удобочитаемыми именами пользователей, а не нечитаемыми идентификаторами пользователей. Поэтому отключение этой настройки не приводит к улучшению скорости, но приводит к меньшему объему хранилища в Elasticsearch.
Правила синхронизации

Базовые правила синхронизации идентичны для всех коннекторов и доступны по умолчанию.

Расширенные правила синхронизации недоступны для этого коннектора в текущей версии.

Дополнительную информацию см. в Типы правил синхронизации.

Извлечение содержимого

Этот коннектор в настоящее время не поддерживает обработку вложений Slack или других двоичных файлов.

Документы и синхронизации

Коннектор синхронизирует следующие объекты и сущности:

  • Каналы
  • Сообщения
  • Пользователи (настраиваемо)
  • Синхронизируются только общедоступные каналы и сообщения из общедоступных каналов.
  • Разрешения не синхронизируются. Все документы, индексированные в развертывании Elastic, будут видны всем пользователям с доступом к этому развертыванию Elastic.
Операции с подключением самообслуживания
Тестирование от «конца до конца»

Фреймворк подключения позволяет операторам выполнять функциональные тесты с реальным источником данных. Для получения более подробной информации см. Тестирование подключения.

Для выполнения тестирования от «конца до конца» для подключения к GitHub выполните следующую команду:

$ make ftest NAME=slack

Для ускорения тестов добавьте флаг DATA_SIZE=small:

make ftest NAME=slack 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-slack.html

Spec-Zone.ru

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