文档

使用 InfluxDB 进行监控和报警

MinIO 使用 Prometheus 数据模型 发布集群和节点指标。 InfluxDB 支持抓取 MinIO 指标数据以进行监控和报警。

本页上的过程记录了以下内容

  • 配置 InfluxDB 服务以抓取和显示来自 MinIO 部署的指标

  • 为 MinIO 指标配置报警

先决条件

此过程需要以下内容

  • 一个已配置一个或多个 通知端点 的现有 InfluxDB 部署

  • 具有对 InfluxDB 部署的网络访问权限的现有 MinIO 部署

  • 一个 mc 安装在您的本地主机上,已配置为 访问 MinIO 部署

此过程假设所有必要的网络控制组件(例如 Ingress 或负载均衡器)都可以促进 MinIO 租户和 InfluxDB 服务之间的访问。

配置 InfluxDB 以使用 MinIO 指标进行收集和报警

重要

此过程专门使用 InfluxDB UI 来创建抓取端点。

InfluxDB UI 无法提供与使用 Telegraf 和相应的 Prometheus 插件 相同级别的配置。具体而言

  • 您无法通过 InfluxDB UI 启用对 MinIO 指标端点的身份验证访问

  • 您无法为收集的指标设置标签(例如 url_tag),以唯一标识给定 MinIO 部署的指标

Telegraf Prometheus 插件还支持 Kubernetes 特定功能,例如抓取给定 MinIO 租户的 minio 服务。

配置 Telegraf 不在本过程的讨论范围内。您可以使用此过程作为配置 Telegraf 以抓取 MinIO 指标的一般指南。

  1. 配置对 MinIO 指标的公共访问

    MINIO_PROMETHEUS_AUTH_TYPE 环境变量设置为 "public",用于 MinIO 部署中的所有节点。然后,您可以重新启动部署以允许公开访问 MinIO 指标。

    您可以尝试使用 curl 指标端点来验证更改。

    curl https://HOSTNAME/minio/v2/metrics/cluster
    

    HOSTNAME 替换为负载均衡器或反向代理的 URL,您通过该 URL 访问 MinIO 部署。或者,您可以指定任何单个节点作为 HOSTNAME:PORT,除了节点主机名外,还指定 MinIO 服务器 API 端口。

    响应正文应包含收集的 MinIO 指标列表。

  2. 登录 InfluxDB UI 并创建存储桶

    选择您要存储 MinIO 指标的组织

    创建一个新存储桶,用于存储 MinIO 部署的指标。

  3. 创建一个新的抓取源

    创建一个新的 InfluxDB 抓取器

    指定 MinIO 部署的完整 URL,包括指标端点。

    https://HOSTNAME/minio/v2/metrics/cluster
    

    HOSTNAME 替换为负载均衡器或反向代理的 URL,您通过该 URL 访问 MinIO 部署。或者,您可以指定任何单个节点作为 HOSTNAME:PORT,除了节点主机名外,还指定 MinIO 服务器 API 端口。

  4. 验证数据

    使用DataExplorer 可视化收集的 MinIO 数据。

    例如,您可以设置 minio_cluster_capacity_usable_total_bytesminio_cluster_capacity_usable_free_bytes 的过滤器,以比较 MinIO 部署上的可用总空间与可用空闲空间。

  5. 配置检查

    创建一个新的 MinIO 指标检查

    以下示例检查规则提供了 MinIO 部署的警报基线。您可以修改或以其他方式使用这些示例作为构建自己的检查的指南。

    • 创建一个名为 MINIO_NODE_DOWN阈值检查

      minio_cluster_nodes_offline_total 键设置过滤器。

      阈值设置为当值大于1警告

    • 创建一个名为 MINIO_QUORUM_WARNING阈值检查

      minio_cluster_drive_offline_total 键设置过滤器。

      阈值设置为当值比您配置的擦除编码奇偶校验设置小 1 时严重

      例如,使用 EC:4 的部署应将此值设置为 3

    配置您的通知端点通知规则,以便每种类型的检查都会触发相应的响应。