这是本节的多页打印视图。 .
监控与告警
- 1: 使用 Prometheus 进行监控与告警
-
2: 指标与告警
- 3: 将服务日志或审计日志发布到外部服务
- 4: 使用 InfluxDB 进行监控与告警
- 5: Metrics version 2
- 6: 健康检查 API
- 7: 使用 Grafana 监控 Silo 服务端
指标与告警
MinIO 使用 Prometheus 数据模型 发布时点指标。 你可以使用任何支持该数据模型的抓取工具,将这些指标拉取到数据库中,以生成历史视图、执行指标查询与分析,或基于关注的数据点创建告警。
下表列出了将 MinIO 指标接入部分第三方监控软件的教程。
配置 Prometheus,对 MinIO 部署进行监控与告警 |
|
配置 InfluxDB,对 MinIO 部署进行监控与告警。 |
其他支持 Prometheus 数据模型的指标与分析软件套件,即使未出现在上表中,也可能同样可用。
日志
MinIO 会将所有 silo server 操作输出到系统控制台。 MinIO 还支持将服务日志和审计日志发布到 HTTP Webhook。
- 服务日志 包含与系统控制台中相同的
silo server操作日志。 服务日志适用于常规监控与运维排障。 - 审计日志 会以更细粒度描述 MinIO 部署上的每一次操作。 审计日志适用于需要对操作进行详细追踪的安全标准与合规要求。
MinIO 会将日志作为 JSON 文档,通过 PUT 请求发送到每个已配置的端点。 端点服务器负责处理这些 JSON 文档。 MinIO 要求显式配置每个 Webhook 端点,默认情况下 不会 向 Webhook 发布日志。
更完整的文档请参见 将服务日志或审计日志发布到外部服务。
健康检查
MinIO 提供无需身份验证的端点,用于探测节点在线状态以及集群 高可用性,从而执行简单健康检查。 这些端点只返回 HTTP 状态码。 更多信息请参见 健康检查 API。
1 - 使用 Prometheus 进行监控与告警
SILO 20261109 / Console 2.7.0: Console 的 Metrics 页面使用 Metrics V3 指标,按节点聚合并明确区分“真实零值”与“缺失数据”。Overview 页面展示的是 Server 上报的裸盘总容量(而非扣除纠删码开销后的可用容量估算);存储桶列表为实时读取,对象数量与空间占用则由后台扫描器(或 Console 2.7.0 可选的 console usage-worker)统计。在 SILO 20261109 中,复制工作协程指标在复制工作池不存在时不会触发 panic,并继续保留历史均值和峰值计数(099b7ddf3);实时批处理指标则保留暂停原因以及跳过或拒绝计数(#325)。详见 Console 2.7.0 发布说明与 Metrics V3 指标映射参考。
MinIO 使用 Prometheus 数据模型 发布集群、节点、存储桶和资源指标。 本页过程说明了以下内容:
- 配置 Prometheus 服务,抓取并展示 MinIO 部署的指标
- 基于某个 MinIO 指标配置 Alert Rule,以触发 AlertManager 动作
20261109 推荐的 Metrics V3 抓取
新部署以及 Console 2.7.0 的 Metrics 页面应抓取 Metrics V3 指标。使用 mcli 20261109 显式传入 --api-version v3 即可生成配置:
生成的配置抓取 /minio/metrics/v3 路径并包含所需的 bearer token。将其合并到 Prometheus 配置中,把 targets 设为待监控的各个 SILO 节点,妥善保管 token,并在确认抓取正常后再启用告警规则。你可以按 cluster、system 等类别限制采集子集,但 Console 的完整监控面板依赖对应的指标族,详见命令参考。
- 集群级指标去重: 同一集群的
cluster指标会由多个节点重复导出,查询时应保留集群标识标签并用max或min聚合去重,切勿直接跨节点sum求和。 - 零值与缺失数据: 部分合法零值默认不导出样本。仅在同生命周期的伴随指标存在时才应补零;抓取失败或后台扫描器尚未产出用量数据时,应保持为“无数据”(no-data)。
- 标签与单位差异: V3 API 指标使用
name标签,节点指标带server标签,磁盘指标带pool/set/drive索引,耗时统一以秒为单位。从 V2 迁移仪表盘时需同步调整 PromQL 查询与告警阈值。
下文保留 V2 指标 的抓取与告警配置步骤,供既有仪表盘参考(省略 --api-version 时仍默认生成 V2 配置)。
前提条件
此过程要求满足以下条件:
- 已有 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 数据模型 发布指标。你可以使用任意抓取工具从 SILO 拉取指标数据,以执行进一步分析和配置告警。
SILO 20261109(RELEASE.2026-11-09T00-00-00Z)、Console 2.7.0 与 mcli 20261109 将 Metrics V3(/minio/metrics/v3)作为推荐抓取契约。在 SILO 20261109 中,复制工作协程指标在复制工作池不存在时不会触发 panic,并继续保留历史均值和峰值计数(099b7ddf3);实时批处理作业指标保留暂停原因以及跳过或拒绝计数(#325)。
Metrics version 2
现有部署可以继续使用 version 2 指标 和 Grafana 仪表板。
Version 3 端点
对于 metrics version 3,所有指标都位于基础端点 /minio/metrics/v3 之下。你可以抓取该基础端点一次性收集全部指标,也可以追加可选路径,仅返回特定类别的指标。
重要
权威的指标定义与 Console 聚合查询逻辑请以 pgsty/silo RELEASE.2026-11-09T00-00-00Z 源码 及 Console 2.7.0 Metrics V3 映射参考为准。
例如,以下端点会返回 audit 指标:
将 HOSTNAME:PORT 替换为 SILO 部署的 FQDN 与端口。对于使用负载均衡器管理节点间连接的部署,请指定负载均衡器地址。
默认情况下,SILO 要求在抓取指标端点时进行身份验证。请使用 mcli admin prometheus generate --api-version v3(mcli 20261109)生成所需的 bearer token。你也可以将 MINIO_PROMETHEUS_AUTH_TYPE 设置为 public 以禁用指标端点认证。
相对于基础 URL,SILO 提供以下抓取端点:
类别 |
路径 |
|---|---|
API |
|
审计 |
|
集群 |
|
调试 |
|
ILM |
|
日志 Webhook |
|
通知 |
|
复制 |
|
扫描器 |
|
系统 |
|
各端点对应的完整指标列表,请参见可用的 version 3 指标。
如需在 Console 中启用历史数据可视化,请在部署的每个节点上设置以下环境变量:
- 将
MINIO_PROMETHEUS_URL设置为 Prometheus 服务的 URL - 将
MINIO_PROMETHEUS_JOB_ID设置为分配给已采集指标的唯一 job ID
可用的 version 3 指标
SILO 为集群、API 请求、存储桶以及系统运行状态发布以下各类 V3 指标:
许多指标包含标签,用于标识生成该指标的资源及其他维度信息。
API 指标
当前节点所服务请求的统计指标。
| 路径 | 说明 |
|---|---|
/api/requests |
所有请求的聚合指标。 |
/bucket/api |
按存储桶划分的请求指标。 |
/api/requests
| 名称 | 说明 | 标签 |
|---|---|---|
minio_api_requests_rejected_auth_total |
因身份验证失败而被拒绝的请求总数。 类型:counter |
type, pool_index, server |
minio_api_requests_rejected_header_total |
因请求头无效而被拒绝的请求总数。 类型:counter |
type, pool_index, server |
minio_api_requests_rejected_timestamp_total |
因时间戳无效而被拒绝的请求总数。 类型:counter |
type, pool_index, server |
minio_api_requests_rejected_invalid_total |
无效请求总数。 类型:counter |
type, pool_index, server |
minio_api_requests_waiting_total |
当前等待队列中的请求数。 类型:gauge |
type, pool_index, server |
minio_api_requests_incoming_total |
当前传入请求总数。 类型:gauge |
type, pool_index, server |
minio_api_requests_inflight_total |
当前正在处理的请求数。 类型:gauge |
name, type, pool_index, server |
minio_api_requests_total |
请求总数。 类型:counter |
name, type, pool_index, server |
minio_api_requests_errors_total |
返回 4xx 或 5xx 错误的请求总数。 类型:counter |
name, type, pool_index, server |
minio_api_requests_5xx_errors_total |
返回 5xx 错误的请求总数。 类型:counter |
name, type, pool_index, server |
minio_api_requests_4xx_errors_total |
返回 4xx 错误的请求总数。 类型:counter |
name, type, pool_index, server |
minio_api_requests_canceled_total |
客户端取消的请求总数。 类型:counter |
name, type, pool_index, server |
minio_api_requests_ttfb_seconds_distribution |
各 API 调用首字节耗时(秒)分布。 类型:counter |
name, type, le, pool_index, server |
minio_api_requests_traffic_sent_bytes |
已发送总字节数。 类型:counter |
type, pool_index, server |
minio_api_requests_traffic_received_bytes |
已接收总字节数。 类型:counter |
type, pool_index, server |
/bucket/api
| 名称 | 说明 | 标签 |
|---|---|---|
minio_bucket_api_traffic_received_bytes |
存储桶接收流量字节总数。 类型:counter |
bucket, type, server, pool_index |
minio_bucket_api_traffic_sent_bytes |
存储桶发送流量字节总数。 类型:counter |
bucket, type, server, pool_index |
minio_bucket_api_inflight_total |
存储桶当前正在处理的请求数。 类型:gauge |
bucket, name, type, server, pool_index |
minio_bucket_api_total |
存储桶请求总数。 类型:counter |
bucket, name, type, server, pool_index |
minio_bucket_api_canceled_total |
客户端取消的存储桶请求总数。 类型:counter |
bucket, name, type, server, pool_index |
minio_bucket_api_4xx_errors_total |
存储桶 4xx 错误请求总数。 类型:counter |
bucket, name, type, server, pool_index |
minio_bucket_api_5xx_errors_total |
存储桶 5xx 错误请求总数。 类型:counter |
bucket, name, type, server, pool_index |
minio_bucket_api_ttfb_seconds_distribution |
存储桶 API 调用首字节耗时(秒)分布。 类型:counter |
bucket, name, le, type, server, pool_index |
审计指标
审计日志发送状态相关指标。
| 路径 | 说明 |
|---|---|
/audit |
审计子系统指标。 |
/audit
| 名称 | 说明 | 标签 |
|---|---|---|
minio_audit_failed_messages |
自启动以来发送失败的审计消息总数。 类型:counter |
target_id, server |
minio_audit_target_queue_length |
目标队列中待发送的审计消息数。 类型:gauge |
target_id, server |
minio_audit_total_messages |
自启动以来已发送的审计消息总数。 类型:counter |
target_id, server |
集群指标
整个集群范围的运行指标。
| 路径 | 说明 |
|---|---|
/cluster/config |
集群配置指标。 |
/cluster/erasure-set |
纠删码集合指标。 |
/cluster/health |
集群健康指标。 |
/cluster/iam |
集群 IAM 指标。 |
/cluster/usage/buckets |
按存储桶划分的对象统计。 |
/cluster/usage/objects |
集群整体对象统计。 |
/cluster/config
| 名称 | 说明 | 标签 |
|---|---|---|
minio_cluster_config_rrs_parity |
低冗余存储类(RRS)校验盘数。 类型:gauge |
|
minio_cluster_config_standard_parity |
标准存储类校验盘数。 类型:gauge |
/cluster/erasure-set
| 名称 | 说明 | 标签 |
|---|---|---|
minio_cluster_erasure_set_overall_write_quorum |
跨所有存储池与纠删集的总体写仲裁。 类型:gauge |
|
minio_cluster_erasure_set_overall_health |
跨所有存储池与纠删集的总体健康状态(1=健康,0=不健康)。 类型:gauge |
|
minio_cluster_erasure_set_read_quorum |
指定存储池内纠删集的读仲裁。 类型:gauge |
pool_id, set_id |
minio_cluster_erasure_set_write_quorum |
指定存储池内纠删集的写仲裁。 类型:gauge |
pool_id, set_id |
minio_cluster_erasure_set_online_drives_count |
纠删集中在线磁盘数。 类型:gauge |
pool_id, set_id |
minio_cluster_erasure_set_healing_drives_count |
纠删集中正在自愈的磁盘数。 类型:gauge |
pool_id, set_id |
minio_cluster_erasure_set_health |
纠删集健康状态(1=健康,0=不健康)。 类型:gauge |
pool_id, set_id |
minio_cluster_erasure_set_read_tolerance |
不中断读操作可容忍的磁盘故障数。 类型:gauge |
pool_id, set_id |
minio_cluster_erasure_set_write_tolerance |
不中断写操作可容忍的磁盘故障数。 类型:gauge |
pool_id, set_id |
minio_cluster_erasure_set_read_health |
纠删集读健康状态(1=健康,0=不健康)。 类型:gauge |
pool_id, set_id |
minio_cluster_erasure_set_write_health |
纠删集写健康状态(1=健康,0=不健康)。 类型:gauge |
pool_id, set_id |
/cluster/health
| 名称 | 说明 | 标签 |
|---|---|---|
minio_cluster_health_drives_offline_count |
集群离线磁盘数。 类型:gauge |
|
minio_cluster_health_drives_online_count |
集群在线磁盘数。 类型:gauge |
|
minio_cluster_health_drives_count |
集群磁盘总数。 类型:gauge |
|
minio_cluster_health_nodes_offline_count |
集群离线节点数。 类型:gauge |
|
minio_cluster_health_nodes_online_count |
集群在线节点数。 类型:gauge |
|
minio_cluster_health_capacity_raw_total_bytes |
集群裸盘总容量(字节)。 类型:gauge |
|
minio_cluster_health_capacity_raw_free_bytes |
集群裸盘剩余容量(字节)。 类型:gauge |
|
minio_cluster_health_capacity_usable_total_bytes |
集群可用总容量(字节)。 类型:gauge |
|
minio_cluster_health_capacity_usable_free_bytes |
集群可用剩余容量(字节)。 类型:gauge |
/cluster/iam
| 名称 | 说明 | 标签 |
|---|---|---|
minio_cluster_iam_last_sync_duration_millis |
最近一次成功 IAM 同步耗时(毫秒)。 类型:counter |
|
minio_cluster_iam_plugin_authn_service_failed_requests_minute |
启用插件认证时,上一完整分钟内失败请求数。 类型:counter |
|
minio_cluster_iam_plugin_authn_service_last_fail_seconds |
启用插件认证时,距最近一次失败请求的秒数。 类型:counter |
|
minio_cluster_iam_plugin_authn_service_last_succ_seconds |
启用插件认证时,距最近一次成功请求的秒数。 类型:counter |
|
minio_cluster_iam_plugin_authn_service_succ_avg_rtt_ms_minute |
启用插件认证时,上一完整分钟内成功请求平均 RTT(毫秒)。 类型:counter |
|
minio_cluster_iam_plugin_authn_service_succ_max_rtt_ms_minute |
启用插件认证时,上一完整分钟内成功请求最大 RTT(毫秒)。 类型:counter |
|
minio_cluster_iam_plugin_authn_service_total_requests_minute |
启用插件认证时,上一完整分钟内请求总数。 类型:counter |
|
minio_cluster_iam_since_last_sync_millis |
距最近一次成功 IAM 同步的时间(毫秒)。 类型:counter |
|
minio_cluster_iam_sync_failures |
自启动以来失败的 IAM 同步次数。 类型:counter |
|
minio_cluster_iam_sync_successes |
自启动以来成功的 IAM 同步次数。 类型:counter |
/cluster/usage/buckets
| 名称 | 说明 | 标签 |
|---|---|---|
minio_cluster_usage_buckets_since_last_update_seconds |
距上次更新存储桶用量指标的秒数。 类型:gauge |
|
minio_cluster_usage_buckets_total_bytes |
存储桶总大小(字节)。 类型:gauge |
bucket |
minio_cluster_usage_buckets_objects_count |
存储桶对象总数。 类型:gauge |
bucket |
minio_cluster_usage_buckets_versions_count |
存储桶对象版本总数(含删除标记)。 类型:gauge |
bucket |
minio_cluster_usage_buckets_delete_markers_count |
存储桶删除标记总数。 类型:gauge |
bucket |
minio_cluster_usage_buckets_quota_total_bytes |
存储桶配额(字节)。 类型:gauge |
bucket |
minio_cluster_usage_buckets_object_size_distribution |
存储桶对象大小分布。 类型:gauge |
range, bucket |
minio_cluster_usage_buckets_object_version_count_distribution |
存储桶对象版本数量分布。 类型:gauge |
range, bucket |
/cluster/usage/objects
| 名称 | 说明 | 标签 |
|---|---|---|
minio_cluster_usage_objects_since_last_update_seconds |
距上次更新集群对象用量指标的秒数。 类型:gauge |
|
minio_cluster_usage_objects_total_bytes |
集群对象总占用字节数。 类型:gauge |
|
minio_cluster_usage_objects_count |
集群对象总数。 类型:gauge |
|
minio_cluster_usage_objects_versions_count |
集群对象版本总数(含删除标记)。 类型:gauge |
|
minio_cluster_usage_objects_delete_markers_count |
集群删除标记总数。 类型:gauge |
|
minio_cluster_usage_objects_buckets_count |
集群存储桶总数。 类型:gauge |
|
minio_cluster_usage_objects_size_distribution |
集群对象大小分布。 类型:gauge |
range |
minio_cluster_usage_objects_version_count_distribution |
集群对象版本数分布。 类型:gauge |
range |
调试指标
来自 Prometheus Go Client 基础收集器的标准 Go 运行时指标。
| 路径 | 说明 |
|---|---|
/debug/go |
Go 运行时指标。 |
ILM 指标
对象生命周期管理(ILM)子系统指标。
| 路径 | 说明 |
|---|---|
/ilm |
ILM 生命周期与分层转移指标。 |
/ilm
| 名称 | 说明 | 标签 |
|---|---|---|
minio_cluster_ilm_expiry_pending_tasks |
队列中等待执行的 ILM 过期任务数。 类型:gauge |
server |
minio_cluster_ilm_transition_active_tasks |
当前正在执行的 ILM 分层转移任务数。 类型:gauge |
server |
minio_cluster_ilm_transition_pending_tasks |
队列中等待执行的 ILM 分层转移任务数。 类型:gauge |
server |
minio_cluster_ilm_transition_missed_immediate_tasks |
错过的即时 ILM 转移任务数。 类型:counter |
server |
minio_cluster_ilm_versions_scanned |
自启动以来检查 ILM 动作的对象版本总数。 类型:counter |
server |
minio_ilm_expiry_incomplete_total |
自启动以来未能移除目标而结束的 ILM 过期尝试总数,按 reason 区分:not_applicable(在对象锁下重验时规则不再适用)、locked(受 Object Lock 保护)、history_unavailable(无法取得权威版本历史)、error(其他故障)。整键清除还会记录 tier_unsupported(存在远端分层版本)、budget(移除部分版本后达到单轮预算上限,下一轮继续)和 changed(匹配的最新版本已变化),见精确 key 删除。tier_unsupported_skipped 统计扫描器因本池存在远端分层版本而跳过入队的观测次数(每盘每轮扫描计数一次,不等于对象键数或清除次数),见多池生命周期过期。类型:counter |
reason, server |
日志 Webhook 指标
日志 Webhook 投递指标。
| 路径 | 说明 |
|---|---|
/logger/webhook |
日志 Webhook 相关指标。 |
/logger/webhook
| 名称 | 说明 | 标签 |
|---|---|---|
minio_logger_webhook_failed_messages |
发送失败的日志消息数。 类型:counter |
server, name, endpoint |
minio_logger_webhook_queue_length |
Webhook 待发送队列长度。 类型:gauge |
server, name, endpoint |
minio_logger_webhook_total_message |
发送至该目标的日志消息总数。 类型:counter |
server, name, endpoint |
通知指标
存储桶事件通知相关指标。
| 路径 | 说明 |
|---|---|
/notification |
事件通知子系统指标。 |
/notification
| 名称 | 说明 | 标签 |
|---|---|---|
minio_notification_current_send_in_progress |
当前正在向各目标异步发送的并发调用数。 类型:counter |
server |
minio_notification_events_errors_total |
发送至目标失败的事件总数。 类型:counter |
server |
minio_notification_events_sent_total |
已发送至目标的事件总数。 类型:counter |
server |
minio_notification_events_skipped_total |
因内存队列已满而跳过的事件数。 类型:counter |
server |
复制指标
站点复制与存储桶复制相关指标。
| 路径 | 说明 |
|---|---|
/bucket/replication |
存储桶复制相关指标。 |
/replication |
站点复制与复制工作池相关指标。 |
/replication
| 名称 | 说明 | 标签 |
|---|---|---|
minio_replication_average_active_workers |
活跃复制工作协程平均数。 类型:gauge |
server |
minio_replication_average_queued_bytes |
自启动以来排队等待复制的平均字节数。 类型:gauge |
server |
minio_replication_average_queued_count |
自启动以来排队等待复制的平均对象数。 类型:gauge |
server |
minio_replication_average_data_transfer_rate |
平均复制传输速率(字节/秒)。 类型:gauge |
server |
minio_replication_current_active_workers |
当前活跃复制工作协程数。 类型:gauge |
server |
minio_replication_current_data_transfer_rate |
当前复制传输速率(字节/秒)。 类型:gauge |
server |
minio_replication_last_minute_queued_bytes |
上一完整分钟排队复制的字节数。 类型:gauge |
server |
minio_replication_last_minute_queued_count |
上一完整分钟排队复制的对象数。 类型:gauge |
server |
minio_replication_max_active_workers |
自启动以来观测到的最大活跃复制工作协程数。 类型:gauge |
server |
minio_replication_max_queued_bytes |
自启动以来排队等待复制的最大字节数。 类型:gauge |
server |
minio_replication_max_queued_count |
自启动以来排队等待复制的最大对象数。 类型:gauge |
server |
minio_replication_max_data_transfer_rate |
自启动以来的峰值复制传输速率(字节/秒)。 类型:gauge |
server |
minio_replication_recent_backlog_count |
最近 5 分钟内复制积压队列中的对象总数。 类型:gauge |
server |
/bucket/replication
| 名称 | 说明 | 标签 |
|---|---|---|
minio_bucket_replication_last_hour_failed_bytes |
最近一小时内存储桶至少复制失败一次的字节总数。 类型:gauge |
bucket, server |
minio_bucket_replication_last_hour_failed_count |
最近一小时内存储桶复制失败的对象总数。 类型:gauge |
bucket, server |
minio_bucket_replication_last_minute_failed_bytes |
上一完整分钟内至少复制失败一次的字节总数。 类型:gauge |
bucket, server |
minio_bucket_replication_last_minute_failed_count |
上一完整分钟内复制失败的对象总数。 类型:gauge |
bucket, server |
minio_bucket_replication_latency_ms |
存储桶复制延迟(毫秒)。 类型:gauge |
bucket, operation, range, targetArn, server |
minio_bucket_replication_proxied_delete_tagging_requests_total |
代理转发至复制目标的 DELETE tagging 请求数。 类型:counter |
bucket, server |
minio_bucket_replication_proxied_get_requests_failures |
代理转发至复制目标的 GET 请求失败数。 类型:counter |
bucket, server |
minio_bucket_replication_proxied_get_requests_total |
代理转发至复制目标的 GET 请求总数。 类型:counter |
bucket, server |
minio_bucket_replication_proxied_get_tagging_requests_failures |
代理转发至复制目标的 GET tagging 请求失败数。 类型:counter |
bucket, server |
minio_bucket_replication_proxied_get_tagging_requests_total |
代理转发至复制目标的 GET tagging 请求总数。 类型:counter |
bucket, server |
minio_bucket_replication_proxied_head_requests_failures |
代理转发至复制目标的 HEAD 请求失败数。 类型:counter |
bucket, server |
minio_bucket_replication_proxied_head_requests_total |
代理转发至复制目标的 HEAD 请求总数。 类型:counter |
bucket, server |
minio_bucket_replication_proxied_put_tagging_requests_failures |
代理转发至复制目标的 PUT tagging 请求失败数。 类型:counter |
bucket, server |
minio_bucket_replication_proxied_put_tagging_requests_total |
代理转发至复制目标的 PUT tagging 请求总数。 类型:counter |
bucket, server |
minio_bucket_replication_sent_bytes |
已复制到目标端的总字节数。 类型:counter |
bucket, server |
minio_bucket_replication_sent_count |
已复制到目标端的对象总数。 类型:counter |
bucket, server |
minio_bucket_replication_total_failed_bytes |
自启动以来至少复制失败一次的总字节数。 类型:counter |
bucket, server |
minio_bucket_replication_total_failed_count |
自启动以来复制失败的对象总数。 类型:counter |
bucket, server |
minio_bucket_replication_proxied_delete_tagging_requests_failures |
代理转发至复制目标的 DELETE tagging 请求失败数。 类型:counter |
bucket, server |
扫描器指标
后台扫描器运行指标。
| 路径 | 说明 |
|---|---|
/scanner |
后台扫描器相关指标。 |
/scanner
| 名称 | 说明 | 标签 |
|---|---|---|
minio_scanner_bucket_scans_finished |
自启动以来已完成的存储桶扫描次数。 类型:counter |
server |
minio_scanner_bucket_scans_started |
自启动以来已启动的存储桶扫描次数。 类型:counter |
server |
minio_scanner_directories_scanned |
自启动以来已扫描的目录总数。 类型:counter |
server |
minio_scanner_last_activity_seconds |
距最近一次扫描活动的秒数。 类型:gauge |
server |
minio_scanner_objects_scanned |
自启动以来已扫描的唯一对象总数。 类型:counter |
server |
minio_scanner_versions_scanned |
自启动以来已扫描的对象版本总数。 类型:counter |
server |
系统指标
SILO 进程及所在节点的系统指标。
| 路径 | 说明 |
|---|---|
/system/cpu |
节点 CPU 指标。 |
/system/drive |
节点磁盘指标。 |
/system/network/internode |
节点间网络请求指标。 |
/system/memory |
节点内存指标。 |
/system/process |
进程级资源指标。 |
/system/drive
| 名称 | 说明 | 标签 |
|---|---|---|
minio_system_drive_used_bytes |
磁盘已用存储空间(字节)。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_free_bytes |
磁盘剩余存储空间(字节)。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_total_bytes |
磁盘总存储空间(字节)。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_used_inodes |
磁盘已用 inode 数。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_free_inodes |
磁盘剩余 inode 数。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_total_inodes |
磁盘总 inode 数。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_timeout_errors_total |
磁盘超时错误总数。 类型:counter |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_io_errors_total |
磁盘 I/O 错误总数。 类型:counter |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_availability_errors_total |
磁盘可用性错误(I/O 错误与超时)总数。 类型:counter |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_waiting_io |
磁盘上等待中的 I/O 操作数。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_api_latency_micros |
最近一分钟磁盘存储操作平均延迟(微秒)。 类型:gauge |
drive, api, set_index, drive_index, pool_index, server |
minio_system_drive_offline_count |
离线磁盘数。 类型:gauge |
pool_index, server |
minio_system_drive_online_count |
在线磁盘数。 类型:gauge |
pool_index, server |
minio_system_drive_count |
磁盘总数。 类型:gauge |
pool_index, server |
minio_system_drive_health |
磁盘健康状态(0=离线,1=健康,2=自愈中)。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_reads_per_sec |
磁盘每秒读次数。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_reads_kb_per_sec |
磁盘每秒读取千字节数。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_reads_await |
磁盘读请求平均等待时间。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_writes_per_sec |
磁盘每秒写次数。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_writes_kb_per_sec |
磁盘每秒写入千字节数。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_writes_await |
磁盘写请求平均等待时间。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
minio_system_drive_perc_util |
磁盘繁忙时间占比。 类型:gauge |
drive, set_index, drive_index, pool_index, server |
/system/memory
| 名称 | 说明 | 标签 |
|---|---|---|
minio_system_memory_used |
节点已用内存。 类型:gauge |
server |
minio_system_memory_used_perc |
节点内存使用百分比。 类型:gauge |
server |
minio_system_memory_free |
节点空闲内存。 类型:gauge |
server |
minio_system_memory_total |
节点总内存。 类型:gauge |
server |
minio_system_memory_buffers |
节点缓冲区(buffers)内存。 类型:gauge |
server |
minio_system_memory_cache |
节点页缓存(cache)内存。 类型:gauge |
server |
minio_system_memory_shared |
节点共享内存。 类型:gauge |
server |
minio_system_memory_available |
节点可用内存。 类型:gauge |
server |
/system/cpu
| 名称 | 说明 | 标签 |
|---|---|---|
minio_system_cpu_avg_idle |
CPU 平均空闲时间占比。 类型:gauge |
server |
minio_system_cpu_avg_iowait |
CPU 平均 IOWait 时间占比。 类型:gauge |
server |
minio_system_cpu_load |
1 分钟 CPU 平均负载。 类型:gauge |
server |
minio_system_cpu_load_perc |
1 分钟 CPU 平均负载百分比。 类型:gauge |
server |
minio_system_cpu_nice |
CPU nice 时间占比。 类型:gauge |
server |
minio_system_cpu_steal |
CPU steal 时间占比。 类型:gauge |
server |
minio_system_cpu_system |
CPU 内核态时间占比。 类型:gauge |
server |
minio_system_cpu_user |
CPU 用户态时间占比。 类型:gauge |
server |
/system/network/internode
| 名称 | 说明 | 标签 |
|---|---|---|
minio_system_network_internode_errors_total |
失败的节点间调用总数。 类型:counter |
server, pool_index |
minio_system_network_internode_dial_errors_total |
节点间 TCP 建连超时与错误总数。 类型:counter |
server, pool_index |
minio_system_network_internode_dial_avg_time_nanos |
节点间 TCP 建连平均耗时(纳秒)。 类型:gauge |
server, pool_index |
minio_system_network_internode_sent_bytes_total |
发送给其他对端节点的总字节数。 类型:counter |
server, pool_index |
minio_system_network_internode_recv_bytes_total |
从其他对端节点接收的总字节数。 类型:counter |
server, pool_index |
/system/process
| 名称 | 说明 | 标签 |
|---|---|---|
minio_system_process_locks_read_total |
当前节点持有的读锁数量。 类型:gauge |
server |
minio_system_process_locks_write_total |
当前节点持有的写锁数量。 类型:gauge |
server |
minio_system_process_cpu_total_seconds |
进程累计消耗的用户态与内核态 CPU 秒数。 类型:counter |
server |
minio_system_process_go_routine_total |
当前运行中的 Goroutine 总数。 类型:gauge |
server |
minio_system_process_io_rchar_bytes |
进程从存储子系统(含缓存)读取的总字节数(/proc/[pid]/io rchar)。类型:counter |
server |
minio_system_process_io_read_bytes |
进程从底层存储读取的总字节数(/proc/[pid]/io read_bytes)。类型:counter |
server |
minio_system_process_io_wchar_bytes |
进程向存储子系统(含页缓存)写入的总字节数(/proc/[pid]/io wchar)。类型:counter |
server |
minio_system_process_io_write_bytes |
进程向底层存储写入的总字节数(/proc/[pid]/io write_bytes)。类型:counter |
server |
minio_system_process_start_time_seconds |
进程启动时间(自 Unix 纪元起的秒数)。 类型:gauge |
server |
minio_system_process_uptime_seconds |
进程运行时长(秒)。 类型:gauge |
server |
minio_system_process_file_descriptor_limit_total |
进程可打开文件描述符总数上限。 类型:gauge |
server |
minio_system_process_file_descriptor_open_total |
进程当前打开的文件描述符总数。 类型:gauge |
server |
minio_system_process_syscall_read_total |
读系统调用总数(/proc/[pid]/io syscr)。类型:counter |
server |
minio_system_process_syscall_write_total |
写系统调用总数(/proc/[pid]/io syscw)。类型:counter |
server |
minio_system_process_resident_memory_bytes |
常驻内存(RSS)大小(字节)。 类型:gauge |
server |
minio_system_process_virtual_memory_bytes |
虚拟内存大小(字节)。 类型:gauge |
server |
minio_system_process_virtual_memory_max_bytes |
最大虚拟内存限制(字节)。 类型:gauge |
server |
3 - 将服务日志或审计日志发布到外部服务
MinIO 会将所有 silo server 操作输出到系统控制台。如何读取这些日志取决于 server 进程的管理方式。例如,如果 server 通过 systemd 服务管理,可以使用 journalctl -u SERVICENAME.service 读取日志(将 SERVICENAME 替换为服务名称,例如 silo)。
MinIO 还支持将服务日志和审计日志发布到 HTTP Webhook。
- 服务日志 包含与系统控制台中相同的
silo server操作日志。服务日志适用于常规监控与运维排障。 - 审计日志 会以更细粒度描述 MinIO 部署上的每一次操作。审计日志适用于要求对操作进行详细追踪的安全标准与合规规范。
MinIO 会将日志作为 JSON 文档,通过 PUT 请求发送到每个已配置端点。端点服务器负责处理这些 JSON 文档。MinIO 要求显式配置每个 Webhook 端点,默认情况下 不会 向 Webhook 发布日志。
通过 mc admin config set 配置时,SILO 会在所有集群节点上动态重载 logger_webhook、audit_webhook 和 audit_kafka 目标,无需整集群重启(若启动时通过环境变量覆盖配置,环境变量优先且修改后仍需重启)。在 SILO 20261109 中,对端节点配置重载会在服务端进程生命周期内保持活跃的 audit_webhook、logger_webhook 和 audit_kafka 目标持续运行,修复了重载请求返回后对端节点停止目标工作协程并丢弃日志的问题(#259)。
将服务日志发布到 HTTP Webhook
你可以通过环境变量 或 运行时配置项,配置一个新的 HTTP Webhook 端点,让 MinIO 将 silo server 日志发布到该端点。
MinIO 支持使用 环境变量 指定 silo server 日志 HTTP Webhook 端点及其相关配置项。
下面的示例设置了配置日志 HTTP Webhook 端点所需的 全部 环境变量。其中最少 必须 配置的变量为:
-
将
<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:
请根据端点要求调整该值。自定义认证格式类似如下:
详情请参阅目标服务的文档。
修改环境变量后需重启 SILO 服务端使其生效,并且必须在部署中的 所有 SILO 节点上指定相同的环境变量与取值。
SILO 支持使用 mc admin config set 命令和 logger_webhook 配置键新增或更新日志 HTTP Webhook 端点。当未被 MINIO_LOGGER_WEBHOOK_* 环境变量覆盖时,SILO 会在全部集群节点上动态重载 logger_webhook 配置,无需重启整个部署;在 SILO 20261109 中,对端节点重载后保持日志目标持续运行(#259)。
下面的示例设置了配置日志 HTTP Webhook 端点相关的 全部 配置项。其中最少 必须 配置的项为 logger_webhook endpoint:
-
将
IDENTIFIER替换为该 HTTP Webhook 端点的唯一描述字符串。如果指定的
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 端点所需的 全部 环境变量。其中最少 必须 配置的变量为:
-
将
<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 服务端出示的 X.509 TLS 客户端证书公钥与私钥。对于不要求客户端证书的端点,可省略该项。
修改环境变量后需重启 SILO 服务端使其生效,并且必须在部署中的 所有 SILO 节点上指定相同的环境变量与取值。
SILO 支持使用 mc admin config set 命令和 audit_webhook 配置键新增或更新审计日志 HTTP Webhook 端点(audit_kafka 审计目标同样支持动态重载)。当未被 MINIO_AUDIT_WEBHOOK_* 环境变量覆盖时,SILO 会在所有集群节点上动态应用 audit_webhook 变更,无需重启整个部署;在 SILO 20261109 中,对端节点配置重载会在每个节点上保持活跃的 audit_webhook 和 audit_kafka 工作协程及 queue_dir 磁盘投递队列持续运行(#259)。
下面的示例设置了配置审计日志 HTTP Webhook 端点相关的 全部 配置项。其中最少 必须 配置的项为 audit_webhook endpoint:
-
将
IDENTIFIER替换为该 HTTP Webhook 端点的唯一描述字符串。如果指定的
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 服务端出示的 X.509 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 数据模型 发布集群和节点指标。你可以使用任意抓取工具从 SILO 拉取指标数据,以执行分析和配置告警。
SILO 20261109 / Console 2.7.0: 新部署以及 Console 2.7.0 的 Metrics 页面建议抓取 Metrics V3(通过 mcli 20261109 执行 mcli admin prometheus generate ALIAS --api-version v3 生成配置;参见 Console 2.7.0 Metrics V3 映射参考)。在 SILO 20261109 中,复制工作协程指标在复制工作池不存在时不会触发 panic,并继续保留历史均值和峰值计数(099b7ddf3);实时批处理作业指标保留暂停原因以及跳过或拒绝计数(#325)。
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 的端点与指标。
新增: RELEASE.2023-10-07T15-07-38Z
你可以使用以下 URL 端点抓取资源指标:
将 HOSTNAME:PORT 替换为部署的 FQDN 与端口。对于使用负载均衡器管理节点间连接的部署,请指定负载均衡器地址。
集群指标
SILO 在集群级别采集以下指标。指标可能带有一个或多个标签(例如计算该指标的节点标识)。
每次采集可从任意一个 SILO 节点通过以下 URL 拉取:
将 HOSTNAME:PORT 替换为部署的主机名和端口;部署前存在负载均衡器时,请填写负载均衡器地址。
审计指标
| 名称 | 说明 |
|---|---|
minio_audit_failed_messages |
自启动以来发送失败的审计消息总数。 |
minio_audit_target_queue_length |
目标队列中待发送的审计消息数。 |
minio_audit_total_messages |
自启动以来已发送的审计消息总数。 |
集群容量指标
| 名称 | 说明 |
|---|---|
minio_cluster_capacity_raw_free_bytes |
集群在线裸盘剩余容量(字节)。 |
minio_cluster_capacity_raw_total_bytes |
集群在线裸盘总容量(字节)。 |
minio_cluster_capacity_usable_free_bytes |
集群在线可用剩余容量(字节)。 |
minio_cluster_capacity_usable_total_bytes |
集群在线可用总容量(字节)。 |
minio_cluster_objects_size_distribution |
集群对象大小分布。 |
minio_cluster_objects_version_distribution |
集群对象版本数分布。 |
minio_cluster_usage_object_total |
集群对象总数。 |
minio_cluster_usage_total_bytes |
集群已用字节总数。 |
minio_cluster_usage_version_total |
集群对象版本总数(含删除标记)。 |
minio_cluster_usage_deletemarker_total |
集群删除标记总数。 |
minio_cluster_bucket_total |
集群存储桶总数。 |
集群磁盘指标
| 名称 | 说明 |
|---|---|
minio_cluster_drive_offline_total |
集群离线磁盘总数。 |
minio_cluster_drive_online_total |
集群在线磁盘总数。 |
minio_cluster_drive_total |
集群磁盘总数。 |
集群 ILM 指标
| 名称 | 说明 |
|---|---|
minio_cluster_ilm_transitioned_bytes |
已分层转移到远端存储层的总字节数。 |
minio_cluster_ilm_transitioned_objects |
已分层转移到远端存储层的对象总数。 |
minio_cluster_ilm_transitioned_versions |
已分层转移到远端存储层的对象版本总数。 |
集群 KMS 指标
| 名称 | 说明 |
|---|---|
minio_cluster_kms_online |
KMS 是否在线(1=在线,0=离线)。 |
minio_cluster_kms_request_error |
返回客户端错误(HTTP 4xx)的 KMS 请求数。 |
minio_cluster_kms_request_failure |
返回内部错误(HTTP 5xx)的 KMS 请求数。 |
minio_cluster_kms_request_success |
成功的 KMS 请求数。 |
minio_cluster_kms_uptime |
KMS 运行时长(秒)。 |
集群健康指标
| 名称 | 说明 |
|---|---|
minio_cluster_nodes_offline_total |
离线节点总数。 |
minio_cluster_nodes_online_total |
在线节点总数。 |
minio_cluster_write_quorum |
所有存储池与纠删集中的最大写仲裁。 |
minio_cluster_health_status |
当前集群健康状态。 |
minio_cluster_health_erasure_set_healing_drives |
纠删集中正在自愈的磁盘数。 |
minio_cluster_health_erasure_set_online_drives |
纠删集中在线磁盘数。 |
minio_cluster_health_erasure_set_read_quorum |
纠删集读仲裁。 |
minio_cluster_health_erasure_set_write_quorum |
纠删集写仲裁。 |
minio_cluster_health_erasure_set_status |
纠删集当前健康状态。 |
集群复制指标
标注为“仅站点复制”的指标仅在配置了站点复制的部署上产出;对于配置了存储桶复制或批量复制的部署,相应指标会在存储桶指标端点下产出。
| 名称 | 说明 |
|---|---|
minio_cluster_replication_last_hour_failed_bytes |
(仅站点复制)最近一完整小时内至少复制失败一次的字节总数。 |
minio_cluster_replication_last_hour_failed_count |
(仅站点复制)最近一完整小时内复制失败的对象总数。 |
minio_cluster_replication_last_minute_failed_bytes |
上一完整分钟内至少复制失败一次的字节总数。 |
minio_cluster_replication_last_minute_failed_count |
上一完整分钟内复制失败的对象总数。 |
minio_cluster_replication_total_failed_bytes |
(仅站点复制)自启动以来至少复制失败一次的字节总数。 |
minio_cluster_replication_total_failed_count |
(仅站点复制)自启动以来复制失败的对象总数。 |
minio_cluster_replication_received_bytes |
(仅站点复制)从其他源集群复制到本集群的总字节数。 |
minio_cluster_replication_received_count |
(仅站点复制)从其他源集群复制到本集群的对象总数。 |
minio_cluster_replication_sent_bytes |
(仅站点复制)已复制到目标集群的总字节数。 |
minio_cluster_replication_sent_count |
(仅站点复制)已复制到目标集群的对象总数。 |
minio_cluster_replication_credential_errors |
(仅站点复制)自启动以来的复制凭据错误总数。 |
minio_cluster_replication_proxied_get_requests_total |
(仅站点复制)代理转发至复制目标的 GET 请求总数。 |
minio_cluster_replication_proxied_head_requests_total |
(仅站点复制)代理转发至复制目标的 HEAD 请求总数。 |
minio_cluster_replication_proxied_delete_tagging_requests_total |
(仅站点复制)代理转发至复制目标的 DELETE tagging 请求总数。 |
minio_cluster_replication_proxied_get_tagging_requests_total |
(仅站点复制)代理转发至复制目标的 GET tagging 请求总数。 |
minio_cluster_replication_proxied_put_tagging_requests_total |
(仅站点复制)代理转发至复制目标的 PUT tagging 请求总数。 |
minio_cluster_replication_proxied_get_requests_failures |
(仅站点复制)代理转发至复制目标的 GET 请求失败数。 |
minio_cluster_replication_proxied_head_requests_failures |
(仅站点复制)代理转发至复制目标的 HEAD 请求失败数。 |
minio_cluster_replication_proxied_delete_tagging_requests_failures |
(仅站点复制)代理转发至复制目标的 DELETE tagging 请求失败数。 |
minio_cluster_replication_proxied_get_tagging_requests_failures |
(仅站点复制)代理转发至复制目标的 GET tagging 请求失败数。 |
minio_cluster_replication_proxied_put_tagging_requests_failures |
(仅站点复制)代理转发至复制目标的 PUT tagging 请求失败数。 |
节点复制指标
在配置了站点复制、存储桶复制或批量复制时反映节点级复制队列与链路状态。
| 名称 | 说明 |
|---|---|
minio_node_replication_current_active_workers |
当前活跃复制工作协程数。 |
minio_node_replication_average_active_workers |
活跃复制工作协程平均数。 |
minio_node_replication_max_active_workers |
自启动以来观测到的最大活跃复制工作协程数。 |
minio_node_replication_link_online |
复制链路是否在线(1=在线,0=离线)。 |
minio_node_replication_link_offline_duration_seconds |
自上次离线事件以来复制链路持续离线秒数。 |
minio_node_replication_link_downtime_duration_seconds |
自启动以来复制链路累计停机秒数。 |
minio_node_replication_average_link_latency_ms |
复制链路平均延迟(毫秒)。 |
minio_node_replication_max_link_latency_ms |
自启动以来复制链路最大延迟(毫秒)。 |
minio_node_replication_current_link_latency_ms |
当前复制链路延迟(毫秒)。 |
minio_node_replication_current_transfer_rate |
当前复制传输速率(字节/秒)。 |
minio_node_replication_average_transfer_rate |
平均复制传输速率(字节/秒)。 |
minio_node_replication_max_transfer_rate |
自启动以来的最大复制传输速率(字节/秒)。 |
minio_node_replication_last_minute_queued_count |
上一完整分钟排队复制的对象总数。 |
minio_node_replication_last_minute_queued_bytes |
上一完整分钟排队复制的字节总数。 |
minio_node_replication_average_queued_count |
自启动以来排队等待复制的平均对象数。 |
minio_node_replication_average_queued_bytes |
自启动以来排队等待复制的平均字节数。 |
minio_node_replication_max_queued_bytes |
自启动以来排队等待复制的最大字节数。 |
minio_node_replication_max_queued_count |
自启动以来排队等待复制的最大对象数。 |
minio_node_replication_recent_backlog_count |
最近 5 分钟内复制积压队列中的对象总数。 |
自愈指标
| 名称 | 说明 |
|---|---|
minio_heal_objects_errors_total |
当前自愈轮次中自愈失败的对象数。 |
minio_heal_objects_heal_total |
当前自愈轮次中已完成自愈的对象数。 |
minio_heal_objects_total |
当前自愈轮次中已扫描的对象总数。 |
minio_heal_time_last_activity_nano_seconds |
距最近一次自愈活动的时间(纳秒)。 |
节点间网络指标
| 名称 | 说明 |
|---|---|
minio_inter_node_traffic_dial_avg_time |
节点间 TCP 建连平均耗时。 |
minio_inter_node_traffic_dial_errors |
节点间 TCP 建连超时与错误总数。 |
minio_inter_node_traffic_errors_total |
失败的节点间调用总数。 |
minio_inter_node_traffic_received_bytes |
从其他对端节点接收的总字节数。 |
minio_inter_node_traffic_sent_bytes |
发送给其他对端节点的总字节数。 |
存储桶通知指标
| 名称 | 说明 |
|---|---|
minio_notify_current_send_in_progress |
向所有目标并发发送中的调用数(已弃用,请改用 minio_notify_target_current_send_in_progress)。 |
minio_notify_events_errors_total |
发送至目标失败的事件数(已弃用,请改用 minio_notify_target_failed_events)。 |
minio_notify_events_sent_total |
已发送至目标的事件总数(已弃用,请改用 minio_notify_target_total_events)。 |
minio_notify_events_skipped_total |
因内存队列已满而跳过发送的事件数。 |
minio_notify_target_current_send_in_progress |
向指定目标并发发送中的异步调用数。 |
minio_notify_target_queue_length |
指定目标 queue_dir 中当前暂存的事件数。 |
minio_notify_target_total_events |
已发送或已入队至指定目标的事件总数。 |
S3 API 请求指标
| 名称 | 说明 |
|---|---|
minio_s3_requests_4xx_errors_total |
返回 4xx 错误的 S3 请求总数。 |
minio_s3_requests_5xx_errors_total |
返回 5xx 错误的 S3 请求总数。 |
minio_s3_requests_canceled_total |
客户端取消的 S3 请求总数。 |
minio_s3_requests_errors_total |
返回 4xx 和 5xx 错误的 S3 请求总数。 |
minio_s3_requests_incoming_total |
当前传入 S3 请求数。 |
minio_s3_requests_inflight_total |
当前正在处理的 S3 请求总数。 |
minio_s3_requests_rejected_auth_total |
因身份验证失败而被拒绝的 S3 请求总数。 |
minio_s3_requests_rejected_header_total |
因请求头无效而被拒绝的 S3 请求总数。 |
minio_s3_requests_rejected_invalid_total |
无效 S3 请求总数。 |
minio_s3_requests_rejected_timestamp_total |
因时间戳无效而被拒绝的 S3 请求总数。 |
minio_s3_requests_total |
S3 请求总数。 |
minio_s3_requests_waiting_total |
等待队列中的 S3 请求数。 |
minio_s3_requests_ttfb_seconds_distribution |
各 API 调用首字节耗时(秒)分布。 |
minio_s3_traffic_received_bytes |
S3 接收字节总数。 |
minio_s3_traffic_sent_bytes |
S3 发送字节总数。 |
软件版本指标
| 名称 | 说明 |
|---|---|
minio_software_commit_info |
服务端发布的 Git 提交哈希。 |
minio_software_version_info |
服务端发布版本标签。 |
磁盘指标
| 名称 | 说明 |
|---|---|
minio_node_drive_free_bytes |
磁盘可用存储空间(字节)。 |
minio_node_drive_free_inodes |
磁盘空闲 inode 总数。 |
minio_node_drive_latency_us |
最近一分钟磁盘存储操作平均延迟(微秒)。 |
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 |
自启动以来磁盘超时错误总数。 |
minio_node_drive_errors_ioerror |
自启动以来磁盘 I/O 错误总数。 |
minio_node_drive_errors_availability |
自启动以来磁盘 I/O 错误与超时总数。 |
minio_node_drive_io_waiting |
磁盘上等待中的 I/O 操作总数。 |
身份与访问管理(IAM)指标
| 名称 | 说明 |
|---|---|
minio_node_iam_last_sync_duration_millis |
最近一次成功 IAM 同步耗时(毫秒)。 |
minio_node_iam_since_last_sync_millis |
距最近一次成功 IAM 同步的时间(毫秒)。 |
minio_node_iam_sync_failures |
自启动以来失败的 IAM 同步次数。 |
minio_node_iam_sync_successes |
自启动以来成功的 IAM 同步次数。 |
信息生命周期管理(ILM)指标
| 名称 | 说明 |
|---|---|
minio_node_ilm_expiry_pending_tasks |
队列中等待执行的 ILM 过期任务数。 |
minio_node_ilm_transition_active_tasks |
当前正在执行的 ILM 分层转移任务数。 |
minio_node_ilm_transition_pending_tasks |
队列中等待执行的 ILM 分层转移任务数。 |
minio_node_ilm_transition_missed_immediate_tasks |
错过的即时 ILM 分层转移任务数。 |
minio_node_ilm_versions_scanned |
自启动以来检查 ILM 动作的对象版本总数。 |
minio_node_ilm_expiry_incomplete_total |
自启动以来未能移除目标而结束的 ILM 过期尝试总数,按 reason 标签区分:not_applicable(在对象锁下重验时规则不再适用)、locked(受 Object Lock 保护)、history_unavailable(无法取得权威版本历史)、error(其他故障)。整键清除还会记录 tier_unsupported(存在远端分层版本)、budget(移除部分版本后达到单轮预算上限,下一轮继续)和 changed(匹配的最新版本已变化),见精确 key 删除。tier_unsupported_skipped 统计扫描器因本池存在远端分层版本而跳过入队的观测次数(每盘每轮扫描计数一次,不等于对象键数或清除次数),见多池生命周期过期。 |
minio_node_ilm_action_count_delete_action |
自启动以来删除对象的生命周期检查结果计数。 |
minio_node_ilm_action_count_delete_version_action |
自启动以来删除指定版本的生命周期检查结果计数。 |
minio_node_ilm_action_count_transition_action |
自启动以来分层转移对象的生命周期检查结果计数。 |
minio_node_ilm_action_count_transition_version_action |
自启动以来分层转移指定对象版本的生命周期检查结果计数。 |
minio_node_ilm_action_count_delete_restored_action |
自启动以来删除临时恢复对象副本的生命周期检查结果计数。 |
minio_node_ilm_action_count_delete_restored_version_action |
自启动以来删除临时恢复版本副本的生命周期检查结果计数。 |
minio_node_ilm_action_count_delete_all_versions_action |
自启动以来删除全部版本的生命周期检查结果计数。 |
远端分层指标
| 名称 | 说明 |
|---|---|
minio_node_tier_tier_ttlb_seconds_distribution |
从远端存储层下载对象至末字节的耗时分布(秒)。 |
minio_node_tier_requests_success |
从远端存储层成功下载对象的请求数。 |
minio_node_tier_requests_failure |
从远端存储层下载对象失败的请求数。 |
系统指标
| 名称 | 说明 |
|---|---|
minio_node_file_descriptor_limit_total |
进程可打开文件描述符总数上限。 |
minio_node_file_descriptor_open_total |
进程当前打开的文件描述符总数。 |
minio_node_go_routine_total |
当前运行中的 Goroutine 总数。 |
minio_node_io_rchar_bytes |
进程从底层存储(含缓存)读取的总字节数(/proc/[pid]/io rchar)。 |
minio_node_io_read_bytes |
进程从底层存储读取的总字节数(/proc/[pid]/io read_bytes)。 |
minio_node_io_wchar_bytes |
进程向底层存储(含页缓存)写入的总字节数(/proc/[pid]/io wchar)。 |
minio_node_io_write_bytes |
进程向底层存储写入的总字节数(/proc/[pid]/io write_bytes)。 |
minio_node_process_cpu_total_seconds |
进程累计消耗的用户态与内核态 CPU 秒数。 |
minio_node_process_resident_memory_bytes |
常驻内存(RSS)大小(字节)。 |
minio_node_process_virtual_memory_bytes |
虚拟内存大小(字节)。 |
minio_node_process_starttime_seconds |
节点进程启动时间(自 Unix 纪元起的秒数)。 |
minio_node_process_uptime_seconds |
节点进程运行时长(秒)。 |
扫描器指标
| 名称 | 说明 |
|---|---|
minio_node_scanner_bucket_scans_finished |
自启动以来已完成的存储桶扫描次数。 |
minio_node_scanner_bucket_scans_started |
自启动以来已启动的存储桶扫描次数。 |
minio_node_scanner_directories_scanned |
自启动以来已扫描的目录总数。 |
minio_node_scanner_objects_scanned |
自启动以来已扫描的唯一对象总数。 |
minio_node_scanner_versions_scanned |
自启动以来已扫描的对象版本总数。 |
minio_node_syscall_read_total |
读系统调用总数(/proc/[pid]/io syscr)。 |
minio_node_syscall_write_total |
写系统调用总数(/proc/[pid]/io syscw)。 |
minio_usage_last_activity_nano_seconds |
距最近一次扫描活动的时间(纳秒)。 |
变更: RELEASE.2025-03-12T17-29-24Z
出于性能原因,v2 指标最多返回 100 个存储桶。如果需要覆盖更多存储桶的指标,请改用 v3 指标。
存储桶指标
SILO 在存储桶级别采集以下指标。每个指标包含 bucket 标签用于标识存储桶,并可能包含计算节点等附加标签。
每次采集可从任意一个 SILO 节点通过以下 URL 拉取:
将 HOSTNAME:PORT 替换为部署的主机名和端口;部署前存在负载均衡器时,请填写负载均衡器地址。
分布指标
| 名称 | 说明 |
|---|---|
minio_bucket_objects_size_distribution |
存储桶内对象大小分布(含存储桶名称标签)。 |
minio_bucket_objects_version_distribution |
存储桶内对象按版本数量的分布。 |
复制指标
以下指标仅在配置了存储桶复制或批量复制的部署上产出;对于配置了站点复制的部署,对应指标在集群指标端点下产出。
| 名称 | 说明 |
|---|---|
minio_bucket_replication_last_minute_failed_bytes |
上一完整分钟内至少复制失败一次的字节总数。 |
minio_bucket_replication_last_minute_failed_count |
上一完整分钟内复制失败的对象总数。 |
minio_bucket_replication_last_hour_failed_bytes |
最近一完整小时内至少复制失败一次的字节总数。 |
minio_bucket_replication_last_hour_failed_count |
最近一完整小时内复制失败的对象总数。 |
minio_bucket_replication_total_failed_bytes |
自启动以来至少复制失败一次的字节总数。 |
minio_bucket_replication_total_failed_count |
自启动以来复制失败的对象总数。 |
minio_bucket_replication_latency_ms |
复制延迟(毫秒)。 |
minio_bucket_replication_received_bytes |
从其他源存储桶复制到本桶的总字节数。 |
minio_bucket_replication_received_count |
从其他源存储桶复制到本桶的对象总数。 |
minio_bucket_replication_sent_bytes |
已复制到目标存储桶的总字节数。 |
minio_bucket_replication_sent_count |
已复制到目标存储桶的对象总数。 |
minio_bucket_replication_credential_errors |
自启动以来的复制凭据错误总数。 |
minio_bucket_replication_proxied_get_requests_total |
代理转发至复制目标的 GET 请求总数。 |
minio_bucket_replication_proxied_head_requests_total |
代理转发至复制目标的 HEAD 请求总数。 |
minio_bucket_replication_proxied_delete_tagging_requests_total |
代理转发至复制目标的 DELETE tagging 请求总数。 |
minio_bucket_replication_proxied_get_tagging_requests_total |
代理转发至复制目标的 GET tagging 请求总数。 |
minio_bucket_replication_proxied_put_tagging_requests_total |
代理转发至复制目标的 PUT tagging 请求总数。 |
minio_bucket_replication_proxied_get_requests_failures |
代理转发至复制目标的 GET 请求失败数。 |
minio_bucket_replication_proxied_head_requests_failures |
代理转发至复制目标的 HEAD 请求失败数。 |
minio_bucket_replication_proxied_delete_tagging_requests_failures |
代理转发至复制目标的 DELETE tagging 请求失败数。 |
minio_bucket_replication_proxied_get_tagging_requests_failures |
代理转发至复制目标的 GET tagging 请求失败数。 |
minio_bucket_replication_proxied_put_tagging_requests_failures |
代理转发至复制目标的 PUT tagging 请求失败数。 |
流量指标
| 名称 | 说明 |
|---|---|
minio_bucket_traffic_received_bytes |
该存储桶接收的 S3 流量总字节数。 |
minio_bucket_traffic_sent_bytes |
该存储桶发送的 S3 流量总字节数。 |
用量指标
| 名称 | 说明 |
|---|---|
minio_bucket_usage_object_total |
对象总数。 |
minio_bucket_usage_version_total |
对象版本总数(含删除标记)。 |
minio_bucket_usage_deletemarker_total |
删除标记总数。 |
minio_bucket_usage_total_bytes |
存储桶总大小(字节)。 |
minio_bucket_quota_total_bytes |
存储桶配额大小(字节)。 |
请求指标
| 名称 | 说明 |
|---|---|
minio_bucket_requests_4xx_errors_total |
存储桶 4xx 错误 S3 请求总数。 |
minio_bucket_requests_5xx_errors_total |
存储桶 5xx 错误 S3 请求总数。 |
minio_bucket_requests_inflight_total |
存储桶当前正在处理的 S3 请求数。 |
minio_bucket_requests_total |
存储桶 S3 请求总数。 |
minio_bucket_requests_canceled_total |
客户端取消的存储桶 S3 请求总数。 |
minio_bucket_requests_ttfb_seconds_distribution |
存储桶各 API 调用首字节耗时分布。 |
资源指标
SILO 在节点级别采集以下资源指标。每个指标包含 server 标签用于标识所属节点,并可能包含磁盘路径、网卡名称等附加标签。
每次采集可从任意一个 SILO 节点通过以下 URL 拉取:
将 HOSTNAME:PORT 替换为部署的主机名和端口;部署前存在负载均衡器时,请填写负载均衡器地址。
磁盘资源指标
| 名称 | 说明 |
|---|---|
minio_node_drive_total_bytes |
磁盘总字节数。 |
minio_node_drive_used_bytes |
磁盘已用字节数。 |
minio_node_drive_total_inodes |
磁盘总 inode 数。 |
minio_node_drive_used_inodes |
磁盘已用 inode 数。 |
minio_node_drive_reads_per_sec |
磁盘每秒读次数。 |
minio_node_drive_reads_kb_per_sec |
磁盘每秒读取千字节数。 |
minio_node_drive_reads_await |
磁盘读请求平均服务时间。 |
minio_node_drive_writes_per_sec |
磁盘每秒写次数。 |
minio_node_drive_writes_kb_per_sec |
磁盘每秒写入千字节数。 |
minio_node_drive_writes_await |
磁盘写请求平均服务时间。 |
minio_node_drive_perc_util |
自启动以来磁盘繁忙时间百分比。 |
网络接口指标
| 名称 | 说明 |
|---|---|
minio_node_if_rx_bytes |
60 秒内网卡接收字节数。 |
minio_node_if_rx_bytes_avg |
自启动以来 60 秒接收字节均值。 |
minio_node_if_rx_bytes_max |
自启动以来 60 秒接收字节最大值。 |
minio_node_if_rx_errors |
60 秒内接收错误数。 |
minio_node_if_rx_errors_avg |
60 秒接收错误均值。 |
minio_node_if_rx_errors_max |
60 秒接收错误最大值。 |
minio_node_if_tx_bytes |
60 秒内网卡发送字节数。 |
minio_node_if_tx_bytes_avg |
60 秒发送字节均值。 |
minio_node_if_tx_bytes_max |
60 秒发送字节最大值。 |
minio_node_if_tx_errors |
60 秒内发送错误数。 |
minio_node_if_tx_errors_avg |
60 秒发送错误均值。 |
minio_node_if_tx_errors_max |
60 秒发送错误最大值。 |
CPU 指标
| 名称 | 说明 |
|---|---|
minio_node_cpu_avg_user |
CPU 用户态时间占比。 |
minio_node_cpu_avg_user_avg |
CPU 用户态时间占比均值。 |
minio_node_cpu_avg_user_max |
CPU 用户态时间占比最大值。 |
minio_node_cpu_avg_system |
CPU 内核态时间占比。 |
minio_node_cpu_avg_system_avg |
CPU 内核态时间占比均值。 |
minio_node_cpu_avg_system_max |
CPU 内核态时间占比最大值。 |
minio_node_cpu_avg_idle |
CPU 空闲时间占比。 |
minio_node_cpu_avg_idle_avg |
CPU 空闲时间占比均值。 |
minio_node_cpu_avg_idle_max |
CPU 空闲时间占比最大值。 |
minio_node_cpu_avg_iowait |
CPU IOWait 时间占比。 |
minio_node_cpu_avg_iowait_avg |
CPU IOWait 时间占比均值。 |
minio_node_cpu_avg_iowait_max |
CPU IOWait 时间占比最大值。 |
minio_node_cpu_avg_nice |
CPU nice 时间占比。 |
minio_node_cpu_avg_nice_avg |
CPU nice 时间占比均值。 |
minio_node_cpu_avg_nice_max |
CPU nice 时间占比最大值。 |
minio_node_cpu_avg_steal |
CPU steal 时间占比。 |
minio_node_cpu_avg_steal_avg |
CPU steal 时间占比均值。 |
minio_node_cpu_avg_steal_max |
CPU steal 时间占比最大值。 |
minio_node_cpu_avg_load1 |
1 分钟 CPU 平均负载。 |
minio_node_cpu_avg_load1_avg |
1 分钟 CPU 平均负载均值。 |
minio_node_cpu_avg_load1_max |
1 分钟 CPU 平均负载最大值。 |
minio_node_cpu_avg_load1_perc |
1 分钟 CPU 平均负载百分比。 |
minio_node_cpu_avg_load1_perc_avg |
1 分钟 CPU 平均负载百分比均值。 |
minio_node_cpu_avg_load1_perc_max |
1 分钟 CPU 平均负载百分比最大值。 |
minio_node_cpu_avg_load5 |
5 分钟 CPU 平均负载。 |
minio_node_cpu_avg_load5_avg |
5 分钟 CPU 平均负载均值。 |
minio_node_cpu_avg_load5_max |
5 分钟 CPU 平均负载最大值。 |
minio_node_cpu_avg_load5_perc |
5 分钟 CPU 平均负载百分比。 |
minio_node_cpu_avg_load5_perc_avg |
5 分钟 CPU 平均负载百分比均值。 |
minio_node_cpu_avg_load5_perc_max |
5 分钟 CPU 平均负载百分比最大值。 |
minio_node_cpu_avg_load15 |
15 分钟 CPU 平均负载。 |
minio_node_cpu_avg_load15_avg |
15 分钟 CPU 平均负载均值。 |
minio_node_cpu_avg_load15_max |
15 分钟 CPU 平均负载最大值。 |
minio_node_cpu_avg_load15_perc |
15 分钟 CPU 平均负载百分比。 |
minio_node_cpu_avg_load15_perc_avg |
15 分钟 CPU 平均负载百分比均值。 |
minio_node_cpu_avg_load15_perc_max |
15 分钟 CPU 平均负载百分比最大值。 |
内存指标
| 名称 | 说明 |
|---|---|
minio_node_mem_available |
节点可用内存。 |
minio_node_mem_available_avg |
节点可用内存均值。 |
minio_node_mem_available_max |
节点可用内存最大值。 |
minio_node_mem_buffers |
节点缓冲区内存。 |
minio_node_mem_buffers_avg |
节点缓冲区内存均值。 |
minio_node_mem_buffers_max |
节点缓冲区内存最大值。 |
minio_node_mem_cache |
节点页缓存内存。 |
minio_node_mem_cache_avg |
节点页缓存内存均值。 |
minio_node_mem_cache_max |
节点页缓存内存最大值。 |
minio_node_mem_free |
节点空闲内存。 |
minio_node_mem_free_avg |
节点空闲内存均值。 |
minio_node_mem_free_max |
节点空闲内存最大值。 |
minio_node_mem_shared |
节点共享内存。 |
minio_node_mem_shared_avg |
节点共享内存均值。 |
minio_node_mem_shared_max |
节点共享内存最大值。 |
minio_node_mem_total |
节点总内存。 |
minio_node_mem_total_avg |
节点总内存均值。 |
minio_node_mem_total_max |
节点总内存最大值。 |
minio_node_mem_used |
节点已用内存。 |
minio_node_mem_used_avg |
节点已用内存均值。 |
minio_node_mem_used_max |
节点已用内存最大值。 |
minio_node_mem_used_perc |
节点内存使用率百分比。 |
minio_node_mem_used_perc_avg |
节点内存使用率百分比均值。 |
minio_node_mem_used_perc_max |
节点内存使用率百分比最大值。 |
6 - 健康检查 API
MinIO 提供无需身份验证的端点,用于探测节点在线状态以及集群 高可用性,从而执行简单健康检查。这些端点返回一个 HTTP 状态码,用于表示底层资源是否健康,或是否满足读写仲裁。MinIO 不会通过这些端点暴露任何其他数据。
原生探针与应用启动
SILO 内置 silo healthcheck 子命令,可直接探测本地 /minio/health/* HTTP 端点,无需在容器内提供 curl、mc 或 shell:
CHECK选择探测目标端点:live(默认)、ready、cluster或cluster-read。--address(或MINIO_ADDRESS,默认:9000,空主机名解析为127.0.0.1)指定目标HOST:PORT;当--certs-dir中存在public.crt与private.key时自动切换为 HTTPS。--url(或MINIO_HEALTHCHECK_URL)使用显式http[s]://HOST:PORT基址覆盖--address与 TLS 自动判定。--maintenance仅适用于cluster,附加?maintenance=true,并在服务端返回 HTTP412 Precondition Failed时以退出码1结束。--timeout设置探测总超时(live与ready默认5s;cluster与cluster-read默认15s)。- 全局参数
--certs-dir、--json与--quiet控制证书查找与输出格式。探测健康时退出码为0,其余情况均为1。
silo healthcheck ready 调用 /minio/health/ready。该端点检查 HTTP 请求队列容量以及已配置的 KMS 和 etcd 可达性,在存储层和 IAM 完成加载前也可能返回 200 OK。这一行为保证了分布式节点的启动互联;Kubernetes 无头服务必须保留 publishNotReadyAddresses: true。不要将 cluster 配置为容器存活探针或节点互联的前置条件。
-distroless 容器镜像将内置 HEALTHCHECK 配置为 /usr/bin/silo healthcheck ready。因此,Docker Compose 的 depends_on: condition: service_healthy 仅确认该就绪探针通过,不代表 S3 数据面已可读写。即使改查 cluster,仍存在下文说明的远端磁盘重连窗口。需要立即访问对象的依赖应用必须执行有界超时的签名 S3 写入与回读检查,并在失败时中止启动或升级流程。请使用专用存储桶和唯一探测对象键,并在校验完成后清理。
节点存活
使用以下端点测试 SILO 服务端 HTTP 监听器是否正在处理请求:
将 https://minio.example.net:9000 替换为待检查服务端的 DNS 主机名和端口。
HTTP 监听器启动后,即使对象层尚未完成加载,/minio/health/live 也会立即返回 200 OK(存储初始化期间响应头包含 x-minio-server-status: offline)。当排队请求数超过 API 请求池容量上限时,该端点返回 503 Service Unavailable。由于存活检查失败在 Kubernetes 中会触发 Pod 重启,/minio/health/live 不访问任何外部系统(不访问 KMS,也不访问 etcd),避免在磁盘初始化缓慢或外部服务故障期间误重启容器。
存活探针仅检查当前客户端能否连通服务端 HTTP 监听器以及请求队列是否有余量。建议配置 Prometheus 告警,使用 指标 v3 的 minio_cluster_health_nodes_offline_count 或 指标 v2 的 minio_cluster_nodes_offline_total 检测集群离线节点。
节点就绪
使用以下端点测试进程就绪状态及已配置的外部依赖:
将 https://minio.example.net:9000 替换为待检查服务端的 DNS 主机名和端口。
/minio/health/ready 检查与 /minio/health/live 相同的 HTTP 请求队列容量,并在配置了 KMS 或 etcd 时进一步验证 KMS 密钥生成与 etcd 健康读写。未配置 KMS 和 etcd 时,/minio/health/ready 与 /minio/health/live 走相同的检查路径。与 /minio/health/live 一样,/minio/health/ready 在对象层或 IAM 完成加载前也可返回 200 OK(附带 x-minio-server-status: offline),以便集群启动阶段完成对端节点发现。
集群写仲裁
使用以下端点测试 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 节点是否离线。
重启后的就绪窗口
SILO 20261109 保留这一机制:集群健康检查实现根据各对端节点上报的磁盘状态评估仲裁。恢复业务流量前,请先检查两个集群端点,再验证真实 S3 读写。完整的探针规格见健康检查探针语义。
上述 HTTP 健康端点均不能证明收到请求的节点在重启后已能立即服务对象读写。每个节点通过后台监控循环连接对端节点的远端纠删码磁盘。启动时未能连上的远端磁盘会在本节点保持未挂载状态,直到后续轮次重连成功。监控循环在每轮结束后等待 15 秒,因此 15 秒只是两次重连尝试之间的最短间隔,而非恢复耗时上限。
在远端磁盘尚未重连期间,该节点的 /minio/health/live、/minio/health/ready、两个 /minio/health/cluster* 端点、mc admin info 与 mcli ready 都可能报告健康。这是因为集群端点汇总各节点对自身本地磁盘的上报结果,而不检查当前接收节点已挂载哪些远端磁盘。在此窗口内,经由该节点的 PUT 可能返回 503 SlowDownWrite,读取其他节点刚写入的对象也可能在远端磁盘重连完成前失败。
升级与故障切换自动化流程必须以有界超时的 S3 数据面检查作为放行门槛,而不能仅依赖 HTTP 健康端点:
- 设置固定的总截止时间,并禁用 SDK 自动重试。
- 经由每个重启节点各写入一个签名探测小对象,按剩余截止时间分配单次请求超时。
- 经由每个节点回读所有已确认写入的探测对象,校验字节内容和版本 ID。
- 将“首次可用 S3 I/O 耗时”与 HTTP 探针就绪状态分开记录,并在校验完成后清理探测对象。
该检查可验证探测对象键所命中纠删集在当时的抽样 S3 读写路径,但不证明所有纠删集磁盘均已齐全或具备再次容忍节点丢失的余量。HTTP 健康端点仍应用于其设计用途:进程存活、外部依赖就绪与上报仲裁检查。
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 仪表板中查看。