这是本节的多页打印视图。 .
监控与告警
- 1: 使用 Prometheus 进行监控与告警
-
2: 指标与告警
- 3: 将服务日志或审计日志发布到外部服务
- 4: 使用 InfluxDB 进行监控与告警
- 5: Metrics version 2
- 6: 健康检查 API
- 7: 使用 Grafana 监控 Silo 服务端
指标与告警
MinIO 使用 Prometheus 数据模型 发布时点指标。 你可以使用任何支持该数据模型的抓取工具,将这些指标拉取到数据库中,以生成历史视图、执行指标查询与分析,或基于关注的数据点创建告警。
下表列出了将 MinIO 指标接入部分第三方监控软件的教程。
配置 Prometheus,对 MinIO 部署进行监控与告警 |
|
配置 InfluxDB,对 MinIO 部署进行监控与告警。 |
其他支持 Prometheus 数据模型的指标与分析软件套件,即使未出现在上表中,也可能同样可用。
日志
MinIO 会将所有 minio server 操作输出到系统控制台。 MinIO 还支持将服务日志和审计日志发布到 HTTP Webhook。
- 服务日志 包含与系统控制台中相同的
minio server操作日志。 服务日志适用于常规监控与运维排障。 - 审计日志 会以更细粒度描述 MinIO 部署上的每一次操作。 审计日志适用于需要对操作进行详细追踪的安全标准与合规要求。
MinIO 会将日志作为 JSON 文档,通过 PUT 请求发送到每个已配置的端点。 端点服务器负责处理这些 JSON 文档。 MinIO 要求显式配置每个 Webhook 端点,默认情况下 不会 向 Webhook 发布日志。
更完整的文档请参见 将服务日志或审计日志发布到外部服务。
健康检查
MinIO 提供无需身份验证的端点,用于探测节点在线状态以及集群 高可用性,从而执行简单健康检查。 这些端点只返回 HTTP 状态码。 更多信息请参见 健康检查 API。
1 - 使用 Prometheus 进行监控与告警
MinIO 使用 Prometheus 数据模型 发布集群、节点、存储桶和资源指标。 本页过程说明了以下内容:
- 配置 Prometheus 服务,抓取并展示 MinIO 部署的指标
- 基于某个 MinIO 指标配置 Alert Rule,以触发 AlertManager 动作
本文说明使用 version 2 指标。 关于指标 API 版本的更多信息,请参见 指标与告警。
前提条件
此过程要求满足以下条件:
- 已有 Prometheus 部署,并配置 Alert Manager
- 已有可通过网络访问 Prometheus 部署的 MinIO 部署
- 本地主机已安装
mc,并已配置为可 访问 MinIO 部署
配置 Prometheus 收集 MinIO 指标并触发告警
1) 生成抓取配置
使用 mc admin prometheus generate 命令生成 Prometheus 执行抓取请求所需的 scrape 配置:
-
设置合适的
scrape_interval,确保每次抓取操作都能在下一次开始前完成。 推荐值为 60 秒。某些部署由于需要抓取的指标数量较多,可能需要更长的抓取间隔。 为降低 MinIO 和 Prometheus Server 的负载,请选择满足监控要求的最长间隔。
-
将
job_name设置为与该 MinIO 部署相关的值。请使用唯一值,以确保该部署的指标与同一 Prometheus 服务采集的其他指标彼此隔离。
-
对于以
MINIO_PROMETHEUS_AUTH_TYPE设置为"public"启动的 MinIO 部署,可以省略bearer_token字段。 -
对于未使用 TLS 的 MinIO 部署,请将
scheme设置为http。 -
在
targets数组中设置能够解析到 MinIO 部署的主机名。这可以是任意单个节点,也可以是负责处理与 MinIO 节点连接的负载均衡器或代理。
对于 Kubernetes 基础设施上的 MinIO Tenant,如果使用的是同一集群中的 Prometheus 集群,则可以指定
minioservice 的 DNS 名称。 否则,你可以指定已配置为向 MinIO Tenant 路由连接的 ingress 或 load balancer 端点。
2) 使用更新后的配置重启 Prometheus
将上一步生成的目标 scrape_configs job 追加到配置文件中:
集群指标会聚合节点级指标,并在适用时为指标附加来源节点的标签。
节点指标专用于节点级监控。该配置需要列出所有 MinIO 节点。
使用该配置文件启动 Prometheus 集群:
3) 分析已采集指标
Prometheus 内置 expression browser。 你可以在其中执行查询,以分析已采集的指标。
以下查询示例会返回抓取任务名为 minio-job 的 Prometheus 每五分钟采集一次的指标:
MinIO 建议将以下指标作为基础监控项。
所有可用指标的信息请参见 指标与告警。
| 指标 | 说明 |
|---|---|
minio_node_drive_free_bytes |
驱动器上的总可用存储空间。 |
minio_node_drive_free_inodes |
总空闲 inode 数量。 |
minio_node_drive_latency_us |
最近一分钟内驱动器 API 存储操作的平均延迟,单位为 µs。 |
minio_node_drive_offline_total |
该节点中离线驱动器的总数。 |
minio_node_drive_online_total |
该节点中在线驱动器的总数。 |
minio_node_drive_total |
该节点中的驱动器总数。 |
minio_node_drive_total_bytes |
驱动器上的总存储空间。 |
minio_node_drive_used_bytes |
驱动器上已使用的存储空间总量。 |
minio_node_drive_errors_timeout |
自 server 启动以来驱动器超时错误的总数。 |
minio_node_drive_errors_availability |
自 server 启动以来驱动器 I/O 错误、权限拒绝和超时的总数。 |
minio_node_drive_io_waiting |
驱动器上等待中的 I/O 操作总数。 |
4) 使用 MinIO 指标配置告警规则
你必须在 Prometheus 部署上配置 Alert Rules,以根据已采集的 MinIO 指标触发告警。
以下示例告警规则文件为 MinIO 部署提供了一组基础告警。 你可以修改这些示例,或将其作为构建自定义告警的参考。
在 Prometheus 配置中,请在 rule_files 键中指定告警文件路径:
一旦触发,Prometheus 会将告警发送到已配置的 AlertManager 服务。
仪表板
MinIO 提供 Grafana 仪表板,用于展示由 Prometheus 采集的指标。 更多信息请参见 使用 Grafana 监控 MinIO Server
2 - 指标与告警
MinIO 使用 Prometheus 数据模型 发布指标。 你可以使用任意抓取工具从 MinIO 拉取指标数据,以执行进一步分析和配置告警。
从 MinIO 服务端 RELEASE.2024-07-15T19-02-30Z 与 MinIO 客户端 RELEASE.2024-07-11T18-01-28Z 开始,metrics version 3 提供了更多端点。 对于新部署,MinIO 建议使用 version 3。
Metrics version 2
现有部署可以继续使用 version 2 指标 和 Grafana 仪表板。
Version 3 端点
对于 metrics version 3,所有指标都位于基础端点 /minio/metrics/v3 之下。 你可以抓取该基础端点以一次性收集全部指标,也可以追加可选路径,仅返回特定类别的指标。
重要
本页中的 V3 指标说明可能存在缺漏、不准确或错误信息。 如需最准确的指标定义,请参考 minio/minio 仓库并审阅源代码。
例如,以下端点会返回 audit 指标:
将 HOSTNAME:PORT 替换为 MinIO 部署的 FQDN 与端口。 对于使用负载均衡器管理 MinIO 节点间连接的部署,请指定负载均衡器地址。
默认情况下,MinIO 要求在抓取指标端点时进行身份验证。 如需生成所需的 bearer token,请使用 mc admin prometheus generate。 你也可以将 MINIO_PROMETHEUS_AUTH_TYPE 设置为 public,以禁用指标端点认证。
相对于基础 URL,MinIO 提供以下抓取端点:
类别 |
路径 |
|---|---|
API |
|
审计 |
|
集群 |
|
调试 |
|
ILM |
|
日志 Webhook |
|
通知 |
|
复制 |
|
扫描器 |
|
系统 |
|
各端点对应的完整指标列表,请参见 Available version 3 metrics。
如需在 MinIO Console 中启用历史数据可视化,请在 MinIO 部署的每个节点上设置以下环境变量:
- 将
MINIO_PROMETHEUS_URL设置为 Prometheus 服务的 URL - 将
MINIO_PROMETHEUS_JOB_ID设置为分配给已采集指标的唯一 job ID
可用的 version 3 指标
MinIO 为集群、API 请求、存储桶以及 MinIO 服务的其他方面发布多类指标:
- API 指标(英文详细表)
- 审计指标(英文详细表)
- 集群指标(英文详细表)
- 调试指标(英文详细表)
- ILM 指标(英文详细表)
- 日志 Webhook 指标(英文详细表)
- 通知指标(英文详细表)
- 复制指标(英文详细表)
- 扫描器指标(英文详细表)
- 系统指标(英文详细表)
许多指标都包含标签,用于标识生成该指标的资源及其他相关信息。
3 - 将服务日志或审计日志发布到外部服务
MinIO 会将所有 minio server 操作输出到系统控制台。 如何读取这些日志取决于 server 进程的管理方式。 例如,如果 server 通过 systemd 脚本进行管理, 你可以使用 journalctl -u SERVICENAME.service 读取日志。 请将 SERVICENAME 替换为 MinIO 服务名称。
MinIO 还支持将服务日志和审计日志发布到 HTTP Webhook。
- 服务日志 包含与系统控制台中相同的
minio server操作日志。服务日志适用于常规监控与运维排障。 - 审计日志 会以更细粒度描述 MinIO 部署上的每一次操作。审计日志适用于要求对操作进行详细追踪的 安全标准与合规规范。
MinIO 会将日志作为 JSON 文档,通过 PUT 请求发送到每个已配置端点。 端点服务器负责处理这些 JSON 文档。 MinIO 要求显式配置每个 Webhook 端点,默认情况下 不会 向 Webhook 发布日志。
将服务日志发布到 HTTP Webhook
你可以通过环境变量 或 运行时配置项,配置一个新的 HTTP Webhook 端点, 让 MinIO 将 minio server 日志发布到该端点。
MinIO 支持使用 环境变量 指定 minio server 日志 HTTP Webhook 端点及其相关配置项。
下面的示例代码设置了配置日志 HTTP Webhook 端点所需的 全部 环境变量。 其中最少 必须 配置的变量为:
Windows
Linux 与 macOS
-
将
<IDENTIFIER>替换为该 HTTP Webhook 端点的唯一描述字符串。 与新日志 HTTP Webhook 相关的所有环境变量都应使用同一个<IDENTIFIER>。如果指定的
<IDENTIFIER>与现有日志端点匹配, 新设置将 覆盖 该端点的现有设置。 可使用mc admin config get logger_webhook查看当前已配置的日志 HTTP Webhook 端点。 -
将
https://webhook-1.example.net替换为 HTTP Webhook 端点的 URL。 -
将
TOKEN替换为适用于该端点的认证令牌类型。 对于无需认证的端点,可省略该项。
为支持多种令牌类型,MinIO 会按 原样 使用该值创建请求认证头。 根据端点不同,你可能需要包含额外信息。
例如,对于 Bearer token,请在前面加上 Bearer:
Windows
Linux 与 macOS
请根据端点要求调整该值。 自定义认证格式可能类似如下:
Windows
Linux 与 macOS
详情请参阅目标服务的文档。
重启 MinIO server 以应用新的配置项。 你必须在部署中的 所有 MinIO server 上指定相同的环境变量和设置。
MinIO 支持在 MinIO 部署上使用 mc admin config set 命令和 logger_webhook 配置键新增或更新日志 HTTP Webhook 端点。 应用任何新增或更新后的配置项都需要重启 MinIO 部署。
下面的示例代码设置了配置日志 HTTP Webhook 端点相关的 全部 配置项。 其中最少 必须 配置的项为 logger_webhook endpoint:
-
将
<IDENTIFIER>替换为该 HTTP Webhook 端点的唯一描述字符串。 与新日志 HTTP Webhook 相关的所有环境变量都应使用同一个<IDENTIFIER>。如果指定的
<IDENTIFIER>与现有日志端点匹配, 新设置将 覆盖 该端点的现有设置。 可使用mc admin config get logger_webhook查看当前已配置的日志 HTTP Webhook 端点。 -
将
https://webhook-1.example.net替换为 HTTP Webhook 端点的 URL。 -
将
TOKEN替换为适用于该端点的认证令牌类型。 对于无需认证的端点,可省略该项。为支持多种令牌类型,MinIO 会按 原样 使用该值创建请求认证头。 根据端点不同,你可能需要包含额外信息。
例如,对于 Bearer token,请在前面加上
Bearer:请根据端点要求调整该值。 自定义认证格式可能类似如下:
详情请参阅目标服务的文档。
将审计日志发布到 HTTP Webhook
你可以通过环境变量 或 运行时配置项,配置一个新的 HTTP Webhook 端点, 让 MinIO 将审计日志发布到该端点:
MinIO 支持使用 环境变量 指定审计日志 HTTP Webhook 端点及其相关配置项。
下面的示例代码设置了配置审计日志 HTTP Webhook 端点所需的 全部 环境变量。 其中最少 必须 配置的变量为:
Windows
Linux 与 macOS
-
将
<IDENTIFIER>替换为该 HTTP Webhook 端点的唯一描述字符串。 与新审计日志 HTTP Webhook 相关的所有环境变量都应使用同一个<IDENTIFIER>。如果指定的
<IDENTIFIER>与现有日志端点匹配, 新设置将 覆盖 该端点的现有设置。 可使用mc admin config get audit_webhook查看当前已配置的审计日志 HTTP Webhook 端点。 -
将
https://webhook-1.example.net替换为 HTTP Webhook 端点的 URL。 -
将
TOKEN替换为适用于该端点的认证令牌类型。 对于无需认证的端点,可省略该项。
为支持多种令牌类型,MinIO 会按 原样 使用该值创建请求认证头。 根据端点不同,你可能需要包含额外信息。
例如,对于 Bearer token,请在前面加上 Bearer:
Windows
Linux 与 macOS
请根据端点要求调整该值。 自定义认证格式可能类似如下:
Windows
Linux 与 macOS
详情请参阅目标服务的文档。
- 将
cert.pem和cert.key替换为要向 HTTP Webhook server 提交的 x.509 TLS 证书公钥与私钥。 对于不要求客户端出示 TLS 证书的端点,可省略该项。
重启 MinIO server 以应用新的配置项。 你必须在部署中的 所有 MinIO server 上指定相同的环境变量和设置。
MinIO 支持在 MinIO 部署上使用 mc admin config set 命令和 audit_webhook 配置键新增或更新审计日志 HTTP Webhook 端点。 应用任何新增或更新后的配置项都需要重启 MinIO 部署。
下面的示例代码设置了配置审计日志 HTTP Webhook 端点相关的 全部 配置项。 其中最少 必须 配置的项为 audit_webhook endpoint:
-
将
<IDENTIFIER>替换为该 HTTP Webhook 端点的唯一描述字符串。 与新审计日志 HTTP Webhook 相关的所有环境变量都应使用同一个<IDENTIFIER>。如果指定的
<IDENTIFIER>与现有日志端点匹配, 新设置将 覆盖 该端点的现有设置。 可使用mc admin config get audit_webhook查看当前已配置的审计日志 HTTP Webhook 端点。 -
将
https://webhook-1.example.net替换为 HTTP Webhook 端点的 URL。 -
将
TOKEN替换为适用于该端点的认证令牌类型。 对于无需认证的端点,可省略该项。为支持多种令牌类型,MinIO 会按 原样 使用该值创建请求认证头。 根据端点不同,你可能需要包含额外信息。
例如,对于 Bearer token,请在前面加上
Bearer:请根据端点要求调整该值。 自定义认证格式可能类似如下:
详情请参阅目标服务的文档。
-
将
cert.pem和cert.key替换为要向 HTTP Webhook server 提交的 x.509 TLS 证书公钥与私钥。 对于不要求客户端出示 TLS 证书的端点,可省略该项。
审计日志结构
MinIO 审计日志类似于以下 JSON 文档:
-
api.timeToFirstByte和api.timeToResponse字段以纳秒表示。 -
对于 纠删码部署,
tags.objectErasureMap提供与对象相关的以下详细信息:
4 - 使用 InfluxDB 进行监控与告警
MinIO 使用 Prometheus 数据模型 发布集群和节点指标。 InfluxDB 支持抓取 MinIO 指标数据,用于监控和告警。
本页介绍以下内容:
- 配置 InfluxDB 服务,抓取并展示 MinIO 部署的指标
- 基于 MinIO 指标配置告警
对于 Kubernetes 上的 MinIO 部署,本文默认已具备 Ingress、负载均衡器等必要的网络控制组件,以便 MinIO 租户与 InfluxDB 服务之间能够互相访问。
配置 InfluxDB 收集 MinIO 指标并触发告警
重要
本过程专门使用 InfluxDB UI 来创建抓取端点。
InfluxDB UI 提供的配置能力不如 Telegraf 及其对应的 Prometheus plugin 完整。 具体来说:
- 无法通过 InfluxDB UI 为 MinIO 指标端点启用认证访问
- 无法为已采集指标设置标签(例如
url_tag),以唯一标识特定 MinIO 部署的指标
Telegraf Prometheus plugin 还支持 Kubernetes 特有能力,例如抓取特定 MinIO 租户的 minio service。
配置 Telegraf 不在本文范围内。 可将本文作为配置 Telegraf 抓取 MinIO 指标的一般指导。
-
配置对 MinIO 指标的公开访问
在 MinIO 部署的所有节点上,将
MINIO_PROMETHEUS_AUTH_TYPE环境变量设置为"public"。 随后可重启部署,以允许公开访问 MinIO 指标。可通过对指标端点执行
curl来验证变更是否生效:将
HOSTNAME替换为访问 MinIO 部署所使用的负载均衡器或反向代理 URL。 也可以将任意单个节点写成HOSTNAME:PORT,即在节点主机名之外再指定 MinIO server API 端口。响应正文中应包含已采集的 MinIO 指标列表。
-
登录 InfluxDB UI 并创建 Bucket
选择用于存储 MinIO 指标的 Organization。
创建一个 New Bucket,用于存储该 MinIO 部署的指标。
-
创建新的抓取源
创建一个 新的 InfluxDB Scraper。
指定 MinIO 部署的完整 URL,其中包含指标端点:
将
HOSTNAME替换为访问 MinIO 部署所使用的负载均衡器或反向代理 URL。 也可以将任意单个节点写成HOSTNAME:PORT,即在节点主机名之外再指定 MinIO server API 端口。 -
验证数据
使用 DataExplorer 可视化已采集的 MinIO 数据。
例如,可针对
minio_cluster_capacity_usable_total_bytes和minio_cluster_capacity_usable_free_bytes设置过滤条件,以比较 MinIO 部署中的总可用空间和剩余可用空间。 -
配置 Check
基于某个 MinIO 指标创建一个新的 Check。
以下示例 Check 规则为 MinIO 部署提供了一组基础告警。 可按需修改这些示例,或将其作为构建自定义 Check 的参考。
-
创建一个名为
MINIO_NODE_DOWN的 Threshold Check。将过滤条件设置为
minio_cluster_nodes_offline_total键。在值大于 1 时,将 Thresholds 设置为 WARN。
-
创建一个名为
MINIO_QUORUM_WARNING的 Threshold Check。将过滤条件设置为
minio_cluster_drive_offline_total键。当该值比已配置的 纠删码校验值 少 1 时,将 Thresholds 设置为 CRITICAL。
例如,使用
EC:4的部署应将该值设置为3。
配置 Notification endpoints 和 Notification rules,使各类 Check 都能触发适当响应。
-
5 - Metrics version 2
MinIO 使用 Prometheus 数据模型 发布集群和节点指标。 你可以使用任意抓取工具从 MinIO 拉取指标数据,以执行进一步分析和配置告警。
Version 2 端点
Metrics version 2 将指标划分为以下三个类别:
每个 v2 端点都会返回其所属类别的全部指标。 例如,抓取以下端点会返回所有集群指标:
仅访问基础端点 /minio/v2/metrics/ 也会返回集群指标。
如需更灵活的抓取方式和更广泛的指标集合,请使用 metrics version 3。 现有部署仍可继续使用 version 2 指标 和 Grafana 仪表板。
MinIO Grafana 仪表板
MinIO 提供两个 Grafana 仪表板,用于可视化 v2 指标。 有关为 Grafana 配置兼容 Prometheus 数据源的完整说明,请参见 Prometheus 关于 Grafana 支持的文档。
可用的 version 2 指标
以下各节描述 version 2 的端点与指标。
你可以使用以下 URL 端点抓取集群级指标(英文详细表):
将 HOSTNAME:PORT 替换为 MinIO 部署的 FQDN 与端口。 对于使用负载均衡器管理 MinIO 节点间连接的部署,请指定负载均衡器地址。
变更: MinIO
RELEASE.2023-07-21T21-12-44Z
存储桶指标已迁移到独立端点。
变更: RELEASE.2023-08-31T15-31-16Z
你可以使用以下 URL 端点抓取存储桶级指标(英文详细表):
变更: RELEASE.2025-03-12T17-29-24Z
出于性能原因,v2 指标最多支持 100 个存储桶。 如果需要覆盖更多存储桶的指标,请改用 v3 指标。
将 HOSTNAME:PORT 替换为 MinIO 部署的 FQDN 与端口。 对于使用负载均衡器管理 MinIO 节点间连接的部署,请指定负载均衡器地址。
新增: RELEASE.2023-10-07T15-07-38Z
你可以使用以下 URL 端点抓取资源指标(英文详细表):
将 HOSTNAME:PORT 替换为 MinIO 部署的 FQDN 与端口。 对于使用负载均衡器管理 MinIO 节点间连接的部署,请指定负载均衡器地址。
说明变更: RELEASE.2025-03-12T17-29-24Z
出于性能原因,v2 指标最多支持 100 个存储桶。 如果需要覆盖更多存储桶的指标,请改用 v3 指标。
6 - 健康检查 API
MinIO 提供无需身份验证的端点,用于探测节点在线状态以及集群 高可用性,从而执行简单健康检查。这些 端点返回一个 HTTP 状态码,用于表示底层资源是否健康,或是否满足读写仲裁。 MinIO 不会通过这些端点暴露任何其他数据。
节点存活
使用以下端点测试某个 MinIO server 是否在线:
将 https://minio.example.net:9000 替换为待检查 MinIO server 的 DNS 主机名。
返回 200 OK 表示该 MinIO server 在线且工作正常。 任何其他 HTTP 状态码都表示访问该 server 存在问题,例如临时网络故障或潜在停机。
单靠 healthcheck probe 无法判断某个 MinIO server 是否离线。 它只能判断当前主机是否能够访问该 server。 建议配置 Prometheus 告警,使用 metrics v3(英文详细表) 的 minio_cluster_health_nodes_offline_count 或 metrics v2(英文详细表) 的 minio_cluster_nodes_offline_total,以检测一个或多个 MinIO 节点是否离线。
集群写仲裁
使用以下端点测试 MinIO 集群是否具备 写仲裁:
将 https://minio.example.net:9000 替换为待检查 MinIO 集群中某个节点的 DNS 主机名。 对于使用负载均衡器管理传入连接的集群,请指定负载均衡器的主机名。
返回 200 OK 表示 MinIO 集群当前有足够的 MinIO server 在线,可满足写仲裁。 返回 503 Service Unavailable 表示集群当前不具备写仲裁。
单靠 healthcheck probe 无法判断某个 MinIO server 是否离线,也无法判断其是否正在正常处理写操作。 它只能根据配置的 纠删码校验值 判断当前是否有足够的 MinIO server 在线,以满足写仲裁要求。 建议配置 Prometheus 告警,使用以下指标检测 MinIO 集群中的潜在问题或错误:
minio_cluster_nodes_offline_total:在一个或多个 MinIO 节点离线时触发告警。minio_node_drive_free_bytes:在集群可用磁盘空间不足时触发告警。
集群读仲裁
使用以下端点测试 MinIO 集群是否具备 读仲裁:
将 https://minio.example.net:9000 替换为待检查 MinIO 集群中某个节点的 DNS 主机名。 对于使用负载均衡器管理传入连接的集群,请指定负载均衡器的主机名。
返回 200 OK 表示 MinIO 集群当前有足够的 MinIO server 在线,可满足读仲裁。 返回 503 Service Unavailable 表示集群当前不具备读仲裁。
单靠 healthcheck probe 无法判断某个 MinIO server 是否离线,也无法判断其是否正在正常处理读操作。 它只能根据配置的 纠删码校验值 判断当前是否有足够的 MinIO server 在线,以满足读仲裁要求。 建议配置 Prometheus 告警,使用 minio_cluster_nodes_offline_total 指标检测一个或多个 MinIO 节点是否离线。
集群维护检查
使用以下端点测试在将指定 MinIO server 下线维护时, MinIO 集群是否仍能同时维持 读 和 写:
将 https://minio.example.net:9000 替换为待检查 MinIO 集群中某个节点的 DNS 主机名。 对于使用负载均衡器管理传入连接的集群,请指定负载均衡器的主机名。
返回 200 OK 表示 MinIO 集群当前有足够的 MinIO server 在线,可满足写仲裁。 返回 412 Precondition Failed 表示如果该 MinIO server 离线,集群将失去仲裁。
单靠 healthcheck probe 无法判断某个 MinIO server 是否离线。 它只能判断在该节点因维护而下线后,是否仍有足够的 MinIO server 在线,以根据配置的 纠删码校验值 满足读写仲裁要求。 建议配置 Prometheus 告警,使用 minio_cluster_nodes_offline_total 指标检测一个或多个 MinIO 节点是否离线。
7 - 使用 Grafana 监控 Silo 服务端
无论指标存储在何处,Grafana 都允许你对其进行查询、可视化、告警和分析。
前提条件
- 已有 Prometheus 部署,并配置 Alert Manager
- 已有可通过网络访问 Prometheus 部署的 MinIO 部署
- 已安装 Grafana
Grafana 仪表板使用 metrics version 2
MinIO 的 Grafana 仪表板使用 metrics version 2。 关于指标 API 版本的更多信息,请参见 指标与告警。
对于 version 3 指标,你需要自行创建仪表板。 关于仪表板的更多信息,请参见 Grafana 文档。
MinIO Grafana 仪表板
MinIO 提供了若干官方 Grafana 仪表板,可从 Grafana Dashboard 门户下载。
若要跟踪 Grafana 仪表板的变更,可以查看 MinIO Server GitHub 仓库中 server 或 bucket 仪表板对应的 JSON 文件。
MinIO Server 指标仪表板
请从 Grafana 上的 MinIO 组织仪表板目录选择与部署所暴露指标版本兼容的服务端仪表板。
MinIO 为 MinIO Server 指标提供了专用的 Grafana 仪表板。 关于该仪表板配置的详细信息,请参见 GitHub 上的 JSON 文件。
对于启用了 服务端加密 的 MinIO 部署(包括 SSE-KMS 或 SSE-S3),该仪表板还包含 KMS 指标。 这些指标包括状态、请求错误率和请求成功率。
MinIO 存储桶指标仪表板
请从 Grafana 上的 MinIO 组织仪表板目录选择与部署所暴露指标版本兼容的存储桶仪表板。
存储桶指标可以通过 GitHub 上的 bucket JSON 文件 在 Grafana 仪表板中查看。
MinIO 节点指标仪表板
节点指标可以通过 GitHub 上的 node JSON 文件 在 Grafana 仪表板中查看。
MinIO 复制指标仪表板
请从 Grafana 上的 MinIO 组织仪表板目录选择与部署所暴露指标版本兼容的复制仪表板。
集群复制指标可以通过 GitHub 上的 cluster replication JSON 文件 在 Grafana 仪表板中查看。