文档

MQTT 通知设置

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

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

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

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

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

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

某些设置仅具有环境变量或配置设置,但两者兼而有之。

重要

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

多个 MQTT 目标

您可以通过为每组相关的 MQTT 设置附加唯一的标识符_ID到顶级键来指定多个 MQTT 服务端点。例如,以下命令分别将两个不同的 MQTT 服务端点设置为PRIMARYSECONDARY

set MINIO_NOTIFY_MQTT_ENABLE_PRIMARY="on"
set MINIO_NOTIFY_MQTT_BROKER_PRIMARY="tcp://user:[email protected]:1883"

set MINIO_NOTIFY_MQTT_ENABLE_SECONDARY="on"
set MINIO_NOTIFY_MQTT_BROKER_SECONDARY="tcp://user:[email protected]:1883"
mc admin config set notify_mqtt:primary \
   broker="tcp://endpoint:port" \
   topic="minio/bucket-name/events/" \
   username="username" \
   password="password" \
   [ARGUMENT="VALUE"] ... \

mc admin config set notify_mqtt:secondary \
   broker="tcp://endpoint:port" \
   topic="minio/bucket-name/events/" \
   username="username" \
   password="password" \
   [ARGUMENT="VALUE"] ... \

使用这些设置,MINIO_NOTIFY_MQTT_ENABLE_PRIMARY指示环境变量与 ID 为PRIMARY的 MQTT 服务端点相关联。

设置

启用

必需

MINIO_NOTIFY_MQTT_ENABLE

指定on以启用将桶通知发布到 MQTT 端点。

默认为off

notify_mqtt

用于定义 MQTT 服务器/代理端点以与MinIO 桶通知一起使用的顶级配置键。

使用mc admin config set设置或更新 MQTT 服务器/代理端点。以下参数对于每个端点都是必需的

  • 代理

  • 主题

  • username 如果 MQTT 服务器/代理未强制执行身份验证/授权,则为可选

  • password 如果 MQTT 服务器/代理未强制执行身份验证/授权,则为可选

将其他可选参数指定为以空格(" ")分隔的列表。

mc admin config set notify_mqtt \
   broker="tcp://endpoint:port" \
   topic="minio/bucket-name/events/" \
   username="username" \
   password="password" \
   [ARGUMENT="VALUE"] ... \

代理

必需

MINIO_NOTIFY_MQTT_BROKER
notify_mqtt broker

指定 MQTT 服务器/代理端点。MinIO 支持到服务器/代理 URL 的 TCP、TLS 或 Websocket 连接。例如

  • tcp://mqtt.example.net:1883

  • tls://mqtt.example.net:1883

  • ws://mqtt.example.net:1883

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

主题

必需

MINIO_NOTIFY_MQTT_TOPIC
notify_mqtt topic

指定要与 MinIO 发布到 MQTT 端点的事件关联的 MQTT 主题的名称。

用户名

如果 MQTT 服务器/代理强制执行身份验证/授权,则为必需

MINIO_NOTIFY_MQTT_USERNAME
notify_mqtt username

指定 MinIO 应用于向 MQTT 服务器/代理进行身份验证的 MQTT 用户名。

密码

如果 MQTT 服务器/代理强制执行身份验证/授权,则为必需

MINIO_NOTIFY_MQTT_PASSWORD
notify_mqtt password

指定 MinIO 用于向 MQTT 服务器/代理进行身份验证的 MQTT 用户名的密码。

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

服务质量

可选

MINIO_NOTIFY_MQTT_QOS
notify_mqtt qos

指定已发布事件的服务质量优先级。

默认为0

保持活动间隔

可选

MINIO_NOTIFY_MQTT_KEEP_ALIVE_INTERVAL
notify_mqtt keep_alive_interval

指定 MQTT 连接的保持活动间隔。MinIO 支持以下时间测量单位

  • s - 秒,“60s”

  • m - 分钟,“60m”

  • h - 小时,“24h”

  • d - 天,“7d”

重新连接间隔

可选

MINIO_NOTIFY_MQTT_RECONNECT_INTERVAL
notify_mqtt reconnect_interval

指定 MQTT 连接的重新连接间隔。MinIO 支持以下时间测量单位

  • s - 秒,“60s”

  • m - 分钟,“60m”

  • h - 小时,“24h”

  • d - 天,“7d”

队列目录

可选

MINIO_NOTIFY_MQTT_QUEUE_DIR
notify_mqtt queue_dir

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

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

队列限制

可选

MINIO_NOTIFY_MQTT_QUEUE_LIMIT
notify_mqtt queue_limit

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

注释

可选

MINIO_NOTIFY_MQTT_COMMENT
notify_mqtt comment

指定要与 MQTT 配置关联的注释。