文档

将事件发布到 Elasticsearch

MinIO 支持将存储桶通知事件发布到Elasticsearch服务端点。

MinIO 依赖于https://github.com/elastic/go-elasticsearch v7 项目进行 Elastic 连接。

以下过程添加了一个新的 Elasticsearch 服务端点,用于支持 MinIO 部署中的存储桶通知

MinIO 依赖于https://github.com/olivere/elastic v7 项目进行 Elastic 连接。elastic/v7库专门针对 Elasticsearch v7.0,并且与早期 Elasticsearch 版本不兼容

此过程使用mc命令行工具执行某些操作。有关安装说明,请参阅mc快速入门

您可以使用环境变量通过设置运行时配置设置来配置新的 Elasticsearch 服务端点。

MinIO 支持使用环境变量指定 Elasticsearch 服务端点和关联的配置设置。minio server进程在其下次启动时应用指定的设置。

以下示例代码设置了与配置 Elasticsearch 服务端点相关的所有环境变量。最小必需变量是

set MINIO_NOTIFY_ELASTICSEARCH_ENABLE_<IDENTIFIER>="on"
set MINIO_NOTIFY_ELASTICSEARCH_URL_<IDENTIFIER>="<ENDPOINT>"
set MINIO_NOTIFY_ELASTICSEARCH_INDEX_<IDENTIFIER>="<string>"
set MINIO_NOTIFY_ELASTICSEARCH_FORMAT_<IDENTIFIER>="<string>"
set MINIO_NOTIFY_ELASTICSEARCH_USERNAME_<IDENTIFIER>="<string>"
set MINIO_NOTIFY_ELASTICSEARCH_PASSWORD_<IDENTIFIER>="<string>"
set MINIO_NOTIFY_ELASTICSEARCH_QUEUE_DIR_<IDENTIFIER>="<string>"
set MINIO_NOTIFY_ELASTICSEARCH_QUEUE_LIMIT_<IDENTIFIER>="<string>"
set MINIO_NOTIFY_ELASTICSEARCH_COMMENT_<IDENTIFIER>="<string>"
  • <IDENTIFIER>替换为 TARGET 服务端点的唯一描述性字符串。对与新目标服务端点相关的所有环境变量使用相同的<IDENTIFIER>值。以下示例假设标识符为PRIMARY

    如果指定的<IDENTIFIER>与 MinIO 部署中现有的 Elasticsearch 服务端点匹配,则新设置将覆盖该端点的任何现有设置。使用mc admin config get notify_elasticsearch查看 MinIO 部署中当前配置的 Elasticsearch 端点。

  • <ENDPOINT>替换为 Elasticsearch 服务端点的 URL。例如

有关每个环境变量的完整文档,请参阅存储桶通知的 Elasticsearch 服务

MinIO 支持在运行中的 minio server 进程上添加或更新 Elasticsearch 端点,方法是使用 mc admin config set 命令和 notify_elasticsearch 配置键。您必须重启 minio server 进程才能应用任何新的或更新的配置设置。

以下示例代码设置了与配置 Elasticsearch 服务端点相关的所有设置。最小 *必需* 设置为:

mc admin config set ALIAS/ notify_elasticsearch:IDENTIFIER \
   url="ENDPOINT" \
   index="<string>" \
   format="<string>" \
   username="<string>" \
   password="<string>" \
   queue_dir="<string>" \
   queue_limit="<string>" \
   comment="<string>"
  • IDENTIFIER 替换为 Elasticsearch 服务端点的唯一描述性字符串。此过程中的以下示例假定标识符为 PRIMARY

    如果指定的 IDENTIFIER 与 MinIO 部署中的现有 Elasticsearch 服务端点匹配,则新设置将 *覆盖* 该端点的任何现有设置。使用 mc admin config get notify_elasticsearch 查看 MinIO 部署中当前配置的 Elasticsearch 端点。

  • ENDPOINT 替换为 Elasticsearch 服务端点的 URL。例如:

    https://user:password@hostname:port

有关每个设置的完整文档,请参阅 Elasticsearch 桶通知配置设置

您必须重启 MinIO 部署才能应用配置更改。使用 mc admin service restart 命令重启部署。

mc admin service restart ALIAS

ALIAS 替换为要重启的部署的 别名

minio server 进程在启动时为每个配置的 Elasticsearch 目标打印一行,类似于以下内容:

SQS ARNs: arn:minio:sqs::primary:elasticsearch

在使用关联的 Elasticsearch 部署作为目标配置桶通知时,您必须指定 ARN 资源。

识别桶通知的 ARN

您之前在创建端点时定义了 <IDENTIFIER> 来分配给桶通知的目标 ARN。以下步骤返回部署中配置的 ARN。通过查找您指定的 <IDENTIFIER> 来识别之前创建的 ARN。

查看 JSON 输出

  1. 复制并运行以下命令,将 ALIAS 替换为部署的 别名

    mc admin info --json ALIAS
    
  2. 在 JSON 输出中,查找键 info.sqsARN

    您需要的 ARN 是与您指定的 <IDENTIFIER> 匹配的该键的值。

    例如,arn:minio:sqs::primary:elasticsearch

使用 jq 解析 JSON 以获取值

  1. 安装 jq

  2. 复制并运行以下命令,将 ALIAS 替换为部署的 别名

    mc admin info --json ALIAS | jq  .info.sqsARN
    

    这将返回用于通知的 ARN,例如 arn:minio:sqs::primary:elasticsearch

使用 mc event add 命令添加一个新的桶通知事件,并将配置的 Elasticsearch 服务作为目标。

mc event add ALIAS/BUCKET arn:minio:sqs::primary:elasticsearch \
  --event EVENTS
  • ALIAS 替换为 MinIO 部署的 别名

  • BUCKET 替换为要配置事件的桶的名称。

  • EVENTS 替换为 MinIO 触发通知的 事件 的逗号分隔列表。

使用 mc event ls 查看给定通知目标的所有配置的桶事件。

mc event ls ALIAS/BUCKET arn:minio:sqs::primary:elasticsearch

对您为其配置新事件的桶执行操作,并在 Elasticsearch 服务中检查通知数据。所需的操作取决于配置桶通知时指定的 事件

例如,如果桶通知配置包含 s3:ObjectCreated:Put 事件,则可以使用 mc cp 命令在桶中创建新对象并触发通知。

mc cp ~/data/new-object.txt ALIAS/BUCKET

以下过程更新了现有的 Elasticsearch 服务端点,以支持 MinIO 部署中的 桶通知

MinIO 依赖于https://github.com/olivere/elastic v7 项目进行 Elastic 连接。elastic/v7库专门针对 Elasticsearch v7.0,并且与早期 Elasticsearch 版本不兼容

此过程使用mc命令行工具执行某些操作。有关安装说明,请参阅mc快速入门

使用 mc admin config get 命令列出部署中当前配置的 Elasticsearch 服务端点。

mc admin config get ALIAS/ notify_elasticsearch

ALIAS 替换为 MinIO 部署的 别名

命令输出类似于以下内容:

notify_elasticsearch:primary  queue_dir="" queue_limit="0"  url="https://user:password@hostname:port" format="namespace" index=""
notify_elasticsearch:secondary queue_dir="" queue_limit="0"  url="https://user:password@hostname:port" format="namespace" index=""

notify_elasticsearch 键是 Elasticsearch 通知设置 的顶级配置键。 url 键指定给定 notify_elasticsearch 键的 Elasticsearch 服务端点。notify_elasticsearch:<IDENTIFIER> 后缀描述该 Elasticsearch 服务端点的唯一标识符。

记下您要更新的 Elasticsearch 服务端点的标识符,以便在下一步中使用。

使用 mc admin config set 命令设置 Elasticsearch 服务端点的新配置。

mc admin config set ALIAS/ notify_elasticsearch:<IDENTIFIER> \
   url="https://user:password@hostname:port" \
   index="<string>" \
   format="<string>" \
   username="<string>" \
   password="<string>" \
   queue_dir="<string>" \
   queue_limit="<string>" \
   comment="<string>"

notify_elasticsearch url 配置设置是 Elasticsearch 服务端点的最低要求。所有其他配置设置都是可选的。有关 Elasticsearch 配置设置的完整列表,请参阅Elasticsearch 通知设置

您必须重启 MinIO 部署才能应用配置更改。使用 mc admin service restart 命令重启部署。

mc admin service restart ALIAS

ALIAS 替换为要重启的部署的 别名

minio server 进程在启动时为每个配置的 Elasticsearch 目标打印一行,类似于以下内容:

SQS ARNs: arn:minio:sqs::primary:elasticsearch

对具有使用更新的 Elasticsearch 服务端点的事件配置的存储桶执行操作,并在 Elasticsearch 服务中检查通知数据。所需的操作取决于配置存储桶通知时指定的events

例如,如果桶通知配置包含 s3:ObjectCreated:Put 事件,则可以使用 mc cp 命令在桶中创建新对象并触发通知。

mc cp ~/data/new-object.txt ALIAS/BUCKET