Redis 连接器参考
编辑Redis 连接器参考
编辑Redis 连接器是使用 Elastic 连接器 Python 框架构建的,可作为自托管的自托管连接器使用。查看此连接器的源代码(分支 8.17,与 Elastic 8.17 兼容)。
可用性和先决条件
编辑此连接器在 Elastic 8.13.0 中引入,可作为自托管的自托管连接器使用。
要使用此连接器,请满足所有自托管连接器先决条件。重要的是,您必须在您自己的基础设施上部署连接器服务。您有两种部署选项
- 从源代码运行连接器服务。如果您熟悉使用 Python 并希望在本地快速迭代,请使用此选项。
- 在 Docker 中运行连接器服务。如果您想将连接器部署到服务器,或者使用容器编排平台,请使用此选项。
此连接器处于技术预览阶段,可能会发生变化。设计和代码不如官方 GA 功能成熟,并且按原样提供,不提供任何担保。技术预览功能不受官方 GA 功能的支持 SLA 的约束。
用法
编辑要在 UI 中设置此连接器,请在 搜索 → 连接器下创建新连接器时选择 Redis 磁贴。
有关其他操作,请参阅Kibana 中的连接器 UI。
使用 Docker 部署
编辑您可以使用 Docker 将 Redis 连接器部署为自托管连接器。请按照以下说明操作。
步骤 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.0.0 \ /app/bin/elastic-ingest \ -c /config/config.yml
有关更多详细信息,请参阅 elastic/connectors
存储库中的 DOCKER.md
。
在官方注册表中查找所有可用的 Docker 镜像。
我们还有一个使用 Docker Compose 的快速入门自托管选项,因此您可以一次启动所有必需的服务:Elasticsearch、Kibana 和连接器服务。有关更多信息,请参阅 elastic/connectors
存储库中的README。
配置
编辑-
host
(必需) -
您的 Redis 服务器/云的 IP。示例
-
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 索引的用户可见。
同步规则
编辑基本同步规则对于所有连接器都是相同的,并且默认可用。
高级同步规则
编辑高级同步规则是通过特定于源的 DSL JSON 片段定义的。
使用高级同步规则在 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 连接器执行 E2E 测试,请运行以下命令
$ make ftest NAME=redis
为了更快地进行测试,请添加 DATA_SIZE=small
标志
make ftest NAME=redis DATA_SIZE=small
默认情况下,DATA_SIZE=MEDIUM
。
已知问题
编辑- 从 Redis 数据库检索键/值时,上次修改时间不可用。因此,每次执行高级同步规则查询时,所有对象都会被索引。
有关所有连接器的已知问题列表,请参阅已知问题。
故障排除
编辑请参阅故障排除。
安全性
编辑请参阅安全性。