Справочник по коннектору Redis
Подключение к Redis разработано с использованием фреймворка Python для подключений к Elastic и доступно как самостоятельное самостоятельное подключение. Просмотрите исходный код для этого подключения (ветка 8.17, совместимая с Elastic 8.17).
Доступность и предварительные требования
Это подключение было представлено в Elastic 8.13.0 и доступно как самостоятельное самостоятельное подключение.
Для использования этого подключения выполните все предварительные требования к самостоятельным подключениям. Важно, что вы должны развернуть службу подключений на собственной инфраструктуре. У вас есть два варианта развертывания:
- Запустить службу подключений из исходного кода. Используйте этот вариант, если вы комфортно работаете с Python и хотите быстро итерировать локально.
- Запустить службу подключений в Docker. Используйте этот вариант, если вы хотите развернуть подключения на сервере или использовать платформу оркестрации контейнеров.
Это подключение находится в техническом предварительном просмотре и может быть изменено. Дизайн и код менее зрелые, чем официальные функции GA, и предоставляются как есть без каких-либо гарантий. Функции технического предварительного просмотра не подпадают под SLA поддержки официальных функций GA.
Использование
Чтобы настроить это подключение в пользовательском интерфейсе, выберите плитку Redis при создании нового подключения в Поиск → Подключения.
Для дополнительных операций см. Пользовательский интерфейс подключений в Kibana.
Развертывание с Docker
Вы можете развернуть подключение к Redis как самостоятельное подключение с помощью 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: redis
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.
Конфигурация
-
host(обязательно) -
IP-адрес вашего сервера/облака Redis. Примеры:
-
127.0.0.1 -
redis-12345.us-east-1.ec2.cloud.redislabs.com
-
-
port(обязательно) -
Порт, на котором размещен экземпляр сервера/облака Redis. Пример:
-
6379
-
-
username(необязательно) -
Имя пользователя вашего сервера/облака Redis. Пример:
-
default
-
-
password(необязательно) -
Пароль для вашего экземпляра сервера/облака Redis. Пример:
-
changeme
-
-
database(обязательно) -
Список индексов баз данных для вашего сервера/облака Redis. * означает получение данных из всех баз данных. Примеры:
-
0,1,2 -
*Это поле игнорируется при использовании расширенных правил синхронизации.
-
-
ssl_enabled - Включение использования SSL/TLS. Отключено по умолчанию.
-
mutual_tls_enabled - Включение использования безопасного взаимного SSL/TLS. Убедитесь, что ваше развертывание Redis поддерживает взаимные SSL/TLS соединения. Отключено по умолчанию. Зависит от
ssl_enabled. -
tls_certfile - Указывает сертификат от Центра выдачи сертификатов. Значение сертификата используется для проверки сертификата, представленного экземпляром Redis. Зависит от
mutual_tls_enabled. -
tls_keyfile - Указывает приватный ключ клиента. Значение ключа используется для проверки подключения к экземпляру Redis. Зависит от
mutual_tls_enabled.
Документы и синхронизация
Подключение синхронизирует следующие объекты и сущности:
- КЛЮЧИ и ЗНАЧЕНИЯ каждого индекса базы данных
- Разрешения не синхронизируются. Все документы, индексированные в развертывании Elastic, будут видны всем пользователям с доступом к соответствующему индексу Elasticsearch.
Правила синхронизации
Основные правила синхронизации одинаковы для всех подключений и доступны по умолчанию.
Расширенные правила синхронизации
Расширенные правила синхронизации определяются с помощью JSON-фрагмента DSL, специфичного для источника.
Используйте расширенные правила синхронизации для фильтрации данных в источнике Redis без необходимости индексирования всех данных в Elasticsearch.
Они принимают следующие параметры:
-
database: Укажите индекс базы данных Redis как целочисленное значение. -
key_pattern: 2.key_pattern: Шаблон для поиска ключей в Redis. -
type: Тип ключа для Redis.Поддерживаемые значения:
-
HASH -
LIST -
SET -
STREAM -
STRING -
ZSET
-
Укажите хотя бы один из следующих параметров: key_pattern или type, или оба.
Примеры расширенных правил синхронизации
Пример 1
Извлечь записи базы данных, где ключи начинаются с alpha:
[
{
"database": 0,
"key_pattern": "alpha*"
}
] Пример 2
Извлечь записи базы данных с точным совпадением, указав полное имя ключа:
[
{
"database": 0,
"key_pattern": "alpha"
}
] Пример 3
Извлечь записи базы данных, где ключи начинаются с test1, test2 или test3:
[
{
"database": 0,
"key_pattern": "test[123]"
} Пример 4
Исключить записи базы данных, где ключи начинаются с test1, test2 или test3:
[
{
"database": 0,
"key_pattern": "test[^123]"
}
] Пример 5
Извлечь все записи базы данных:
[
{
"database": 0,
"key_pattern": "*"
}
] Пример 6
Получить все записи базы данных, где тип равен SET:
[
{
"database": 0,
"key_pattern": "*",
"type": "SET"
}
] Пример 7
Получить записи базы данных, где тип равен SET:
[
{
"database": 0,
"type": "SET"
}
] Операции клиента коннектора
Конечное тестирование
Фреймворк коннектора позволяет операторам запускать функциональные тесты на реальном источнике данных, используя Docker Compose. Для запуска этого теста не требуется запущенный экземпляр Elasticsearch или Redis.
Для получения более подробной информации обратитесь к разделу Тестирование коннектора.
Для выполнения конечного тестирования коннектора Redis запустите следующую команду:
$ make ftest NAME=redis
Для ускорения тестов добавьте флаг DATA_SIZE=small:
make ftest NAME=redis DATA_SIZE=small
По умолчанию, DATA_SIZE=MEDIUM.
Известные проблемы
- Время последнего изменения недоступно при получении ключей/значений из базы данных Redis. В результате все объекты индексируются каждый раз при выполнении запроса правила расширенной синхронизации.
Обратитесь к Известные проблемы для просмотра списка известных проблем всех коннекторов.
Отладка
См. Отладку.
Безопасность
См. Безопасность.
© 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-redis.html