Redis 连接器参考

编辑

Redis 连接器是使用 Elastic 连接器 Python 框架构建的,可作为自托管的自托管连接器使用。查看此连接器的源代码(分支 8.17,与 Elastic 8.17 兼容)。

可用性和先决条件

编辑

此连接器在 Elastic 8.13.0 中引入,可作为自托管的自托管连接器使用。

要使用此连接器,请满足所有自托管连接器先决条件。重要的是,您必须在您自己的基础设施上部署连接器服务。您有两种部署选项

此连接器处于技术预览阶段,可能会发生变化。设计和代码不如官方 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.usernameelasticsearch.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 中。

它们采用以下参数

  1. database:将 Redis 数据库索引指定为整数值。
  2. key_pattern:2. key_pattern:用于在 Redis 中查找键的模式。
  3. type:Redis 的键类型。

    支持的值

    • HASH
    • LIST
    • SET
    • STREAM
    • STRING
    • ZSET

至少提供以下其中一个:key_patterntype,或两者都提供。

高级同步规则示例
编辑
示例 1
编辑

获取键以 alpha 开头的数据库记录:

[
  {
    "database": 0,
    "key_pattern": "alpha*"
  }
]
示例 2
编辑

通过指定完整的键名称来获取精确匹配的数据库记录

[
  {
    "database": 0,
    "key_pattern": "alpha"
  }
]
示例 3
编辑

获取键以 test1test2test3 开头的数据库记录

[
  {
    "database": 0,
    "key_pattern": "test[123]"
  }
示例 4
编辑

排除键以 test1test2test3 开头的数据库记录

[
  {
    "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 数据库检索键/值时,上次修改时间不可用。因此,每次执行高级同步规则查询时,所有对象都会被索引。

有关所有连接器的已知问题列表,请参阅已知问题

故障排除

编辑

请参阅故障排除

安全性

编辑

请参阅安全性