文档

Kafka 通知设置

本页记录了将 Kafka 服务配置为 存储桶通知 目标的设置。有关使用这些设置的教程,请参阅 将事件发布到 Kafka

您可以通过定义以下内容来建立或修改设置:

  • 在启动或重新启动 MinIO 服务器之前,在主机系统上定义一个环境变量。有关如何定义环境变量,请参阅您的操作系统的文档。

  • 使用 mc admin config set 定义一个配置设置

  • 使用 MinIO 控制台的 管理员 > 设置 页面定义一个配置设置

如果您同时定义环境变量和类似的配置设置,MinIO 将使用环境变量值。

某些设置只有环境变量或配置设置,但不会同时拥有两者。

重要

每个配置设置都控制着 MinIO 的基本行为和功能。MinIO 强烈建议 在将更改应用于生产环境之前,在较低的环境(如 DEV 或 QA)中测试配置更改。

多个 Kafka 目标

您可以通过将唯一的标识符 _ID 附加到顶级密钥上的每个相关 Kafka 设置组,来指定多个 Kafka 服务端点。

示例

例如,以下命令将两个不同的 Kafka 服务端点分别设置为 PRIMARYSECONDARY

set MINIO_NOTIFY_KAFKA_ENABLE_PRIMARY="on"
set MINIO_NOTIFY_KAFKA_BROKERS_PRIMARY="https://kafka1.example.net:9200, https://kafka2.example.net:9200"

set MINIO_NOTIFY_KAFKA_ENABLE_SECONDARY="on"
set MINIO_NOTIFY_KAFKA_BROKERS_SECONDARY="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
mc admin config set notify_kafka:primary \
   brokers="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
   [ARGUMENT=VALUE ...]

mc admin config set notify_kafka:secondary \
   brokers="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
   [ARGUMENT=VALUE ...]

请注意,对于配置设置,唯一的标识符仅附加到 notify_kafka,而不是附加到每个单独的参数。

设置

启用

必需

MINIO_NOTIFY_KAFKA_ENABLE

指定 on 以启用将发布存储桶通知到 Kafka 服务端点。

默认为 off

notify_kafka

用于定义 Kafka 服务端点的顶级配置键,用于与 MinIO 存储桶通知 一起使用。

使用 mc admin config set 设置或更新 Kafka 服务端点。对于每个目标,brokers 参数是必需的。将其他可选参数指定为以空格 (" ") 分隔的列表。

mc admin config set notify_kafka \
  brokers="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
  [ARGUMENT="VALUE"] ... \

代理

必需

MINIO_NOTIFY_KAFKA_BROKERS
notify_kafka brokers

指定 Kafka 代理地址的逗号分隔列表。例如

"kafka1.example.com:2021,kafka2.example.com:2021"

在版本 RELEASE.2023-05-27T05-56-19Z 中更改: MinIO 在添加目标之前检查指定 URL 的运行状况(如果它可解析且可访问)。如果现有目标处于脱机状态,MinIO 将不再阻止添加新通知目标。

主题

可选

MINIO_NOTIFY_KAFKA_TOPIC
notify_kafka topic

指定 MinIO 发布存储桶事件的 Kafka 主题的名称。

SASL

可选

MINIO_NOTIFY_KAFKA_SASL
notify_kafka sasl

指定 on 以启用 SASL 身份验证。

SASL 用户名

可选

MINIO_NOTIFY_KAFKA_SASL_USERNAME
notify_kafka sasl_username

指定用于对 Kafka 代理执行 SASL/PLAIN 或 SASL/SCRAM 身份验证的用户名。

SASL 密码

可选

MINIO_NOTIFY_KAFKA_SASL_PASSWORD
notify_kafka sasl_password

指定用于对 Kafka 代理执行 SASL/PLAIN 或 SASL/SCRAM 身份验证的密码。

在版本 RELEASE.2023-06-23T20-26-00Z 中更改: MinIO 在作为 mc admin config get 的一部分返回时会屏蔽此值。

SASL 机制

可选

MINIO_NOTIFY_KAFKA_SASL_MECHANISM
notify_kafka sasl_mechanism

指定用于对 Kafka 代理进行身份验证的 SASL 机制。MinIO 支持以下机制

  • PLAIN (默认)

  • SHA256

  • SHA512

TLS 客户端身份验证

可选

MINIO_NOTIFY_KAFKA_TLS_CLIENT_AUTH
notify_kafka tls_client_auth

指定 Kafka 代理的客户端身份验证类型。下表列出了支持的值及其映射

价值

身份验证类型

0

NoClientCert

1

RequestClientCert

2

RequireAnyClientCert

3

VerifyClientCertIfGiven

4

RequireAndVerifyClientCert

有关每种客户端身份验证类型的更多信息,请参阅 ClientAuthType

TLS

可选

MINIO_NOTIFY_KAFKA_TLS
notify_kafka tls

指定 on 以启用到 Kafka 代理的 TLS 连接。

TLS 跳过验证

可选

MINIO_NOTIFY_KAFKA_TLS_SKIP_VERIFY
notify_kafka tls_skip_verify

启用或禁用 NATS 服务端点 TLS 证书的 TLS 验证。

  • 指定 on 以禁用 TLS 验证(默认)

  • 指定 off 以启用 TLS 验证。

客户端 TLS 证书

可选

MINIO_NOTIFY_KAFKA_CLIENT_TLS_CERT
notify_kafka client_tls_cert

指定用于对 Kafka 代理执行 mTLS 身份验证的客户端证书的路径。

客户端 TLS 密钥

可选

MINIO_NOTIFY_KAFKA_CLIENT_TLS_KEY
notify_kafka client_tls_key

指定用于对 Kafka 代理执行 mTLS 身份验证的客户端私钥的路径。

版本

可选

MINIO_NOTIFY_KAFKA_VERSION
notify_kafka version

在对该集群执行操作时,指定要假定的 Kafka 集群的版本。有关此字段行为的更多信息,请参阅 sarama 参考文档

批量大小

可选

MINIO_NOTIFY_KAFKA_BATCH_SIZE
notify_kafka batch_size

指定要作为 批量大小 用于将记录发送到 Kafka 的整数。

在版本 RELEASE.2023-12-02T10-51-33Z 中更改: MinIO 以前将此值限制为 100

队列目录

可选

MINIO_NOTIFY_KAFKA_QUEUE_DIR
notify_kafka queue_dir

指定目录路径以启用 MinIO 的持久事件存储,用于未传递的消息,例如 /opt/minio/events

当 Kafka 服务器/代理脱机时,MinIO 将未传递的事件存储在指定的存储中,并在连接恢复时重播存储的事件。

队列限制

可选

MINIO_NOTIFY_KAFKA_QUEUE_LIMIT
notify_kafka queue_limit

指定未送达消息的最大限制。默认为 100000

注释

可选

MINIO_NOTIFY_KAFKA_COMMENT
notify_kafka comment

指定与 Kafka 配置相关的注释。

压缩编解码器

新增于版本 MinIO: Server RELEASE.2023-12-09T18-17-51Z

可选

MINIO_NOTIFY_KAFKA_PRODUCER_COMPRESSION_CODEC
notify_kafka compression_codec

指定将记录发送到 Kafka 时要使用的压缩编解码器。

支持以下值

  • none

  • snappy

  • gzip

  • lz4

  • zstd

压缩级别

新增于版本 MinIO: Server RELEASE.2023-12-09T18-17-51Z

可选

MINIO_NOTIFY_KAFKA_PRODUCER_COMPRESSION_LEVEL
notify_kafka compression_level

控制根据配置的压缩编解码器应用的压缩级别。

指定大于或等于 0 的整数值。该值的实际效果取决于所选择的编解码器。