多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

MinIO 监控实战:3 份配置接入 Prometheus,十分钟搭出第一块 Grafana 看板

MinIO 监控实战:3 份配置接入 Prometheus,十分钟搭出第一块 Grafana 看板 MinIO 监控实战3 份配置接入 Prometheus十分钟搭出第一块 Grafana 看板【免费下载链接】minioMinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPLv3 license.项目地址: https://gitcode.com/GitHub_Trending/mi/minio凌晨两点容量告警响了值班的人却不确定该打开哪块面板。下面以 MinIO 对象存储的 Prometheus 指标接口为主线把采集、看板和告警这条链路走通让告警落地时有据可查。 监控全景指标从哪来、谁来采、在哪看本节先解决链路长什么样的问题后面所有配置都挂在这条链路上。MinIO 服务本身把指标暴露为 HTTP 端点V3 体系挂在/minio/metrics/v3前缀下按 collector 拆分成集群、系统、桶级等子路径实现见 cmd/metrics-v3.goPrometheus 通过拉取模型周期性抓取这些端点认证默认走 JWT bearer token可用mc admin prometheus generate ALIAS一键签发Grafana 再从 Prometheus 查询渲染。官方部署文档在 docs/metrics/prometheus/ 下。指标体系速览按你要回答的问题挑指标本节解决指标这么多先看哪几个的问题。V3 指标按 collector 分组集群、系统、桶级、复制等下表只列日常排障和容量规划最常用的四个方向完整清单可查 docs/metrics/prometheus/list.md。可用性——集群还能不能读写minio_cluster_health_status集群健康状态的单一判断位值班第一眼看它minio_cluster_nodes_offline_total/minio_cluster_drive_offline_total掉线节点与磁盘数定位故障范围minio_cluster_health_erasure_set_status纠删集是否保有仲裁低于 1 即存在读写风险容量——还能存多久minio_cluster_capacity_usable_total_bytes/minio_cluster_capacity_usable_free_bytes可用容量口径比裸容量更适合做水位告警minio_cluster_usage_total_bytes/minio_cluster_usage_object_total已用字节数与对象总数看增长斜率性能——请求快不快minio_api_requests_totalV3 路径/api/requests按 API 维度计数配合rate看 QPSminio_api_requests_ttfb_seconds首字节延迟分布定位慢请求方向minio_api_traffic_sent_bytes/minio_api_traffic_recv_bytes进出流量判断带宽瓶颈同步——多站点数据有没有丢minio_cluster_replication_last_minute_failed_count上一分钟复制失败对象数0 就该介入minio_cluster_replication_sent_bytes/minio_cluster_replication_last_minute_failed_bytes复制吞吐与失败量 最小可用部署最短能跑通的配置本节解决怎么用最少的配置把指标采上来的问题。只需一段 scrape 配置和一条启动命令认证走 JWTtoken 由 mc 生成后落盘供 Prometheus 读取。# prometheus.yml抓取集群指标token 由 mc admin prometheus generate 生成 global: scrape_interval: 15s scrape_configs: - job_name: minio-cluster metrics_path: /minio/metrics/v3 scheme: https authorization: credentials_file: /etc/prometheus/minio-token static_configs: - targets: [minio-a:9000, minio-b:9000]# 容器化启动 Prometheus挂载上面的配置与 token 文件 docker run -d -p 9090:9090 -v $PWD/prometheus.yml:/etc/prometheus/prometheus.yml -v $PWD/minio-token:/etc/prometheus/minio-token prom/prometheus启动后在 Prometheus 的 Targets 页确认 job 状态为UP再进 Grafana 添加prometheus数据源即可开图。 看板与告警两块高价值面板加一条硬规则本节解决采上来之后看什么、什么时候叫人的问题。仓库 docs/metrics/prometheus/grafana/ 下提供现成的仪表盘 JSON集群总览、桶级、节点、复制Grafana 里 Import 对应文件就能用例如集群总览模板长这样若要从零自建优先补这两块面板容量水位查询minio_cluster_capacity_usable_free_bytes / minio_cluster_capacity_usable_total_bytes用 gauge 展示剩余比例历史趋势曲线看增长斜率请求健康度rate(minio_api_requests_5xx_errors_total[5m])与rate(minio_api_requests_total[5m])比值5xx 占比抬升早于用户投诉告警规则方面先落一条最硬的纠删集丢失仲裁。这类事件直接威胁数据读写参考 docs/metrics/prometheus/alerts.md 的配置方式# rules.yml纠删集状态异常持续 5 分钟即报 critical groups: - name: minio-quorum rules: - alert: MinIOSetLosesQuorum expr: minio_cluster_health_erasure_set_status 1 for: 5m labels: severity: critical annotations: summary: 节点 {{ $labels.server }} 的池 {{ $labels.pool }} 纠删集 {{ $labels.set }} 失去仲裁容量水位超过 85%、复制失败数大于 0、离线磁盘数大于 0 这几条规则可复用同一套写法阈值按业务余量自定。生产加固清单风险点、后果与建议动作本节解决上线前该堵哪些洞的问题安全与性能项合并成一张清单过一遍。风险点不做的后果建议动作指标走明文 HTTP 采集集群结构与用量数据在网上传输可被嗅探MinIO 启用 TLSPrometheus 端scheme: https认证类型设为public拿到地址即可读全部指标等同泄露容量数据保持默认 JWT用 mc 生成 token 并定期轮换采集间隔过密data scanner 与指标聚合占用磁盘和 CPUscrape_interval保持 15s 量级多 job 错峰Prometheus 无限期保留本地盘被 TSDB 写满监控自身先挂设置--storage.tsdb.retention或远程写入Grafana 无访问控制看板里的拓扑与用量成为内网侦察入口开启认证与角色权限敏感看板仅对运维组可见故障速查现象、定位命令与处理动作本节解决监控本身出了问题怎么快速定位的问题用对照表替代逐段排查。现象定位命令处理动作Targets 页 401/403curl -k -H Authorization: Bearer $(cat minio-token) https://minio-a:9000/minio/metrics/v3token 过期或未挂载重新mc admin prometheus generate并替换文件Targets 为 UP 但查询无数据对比 scrape 的metrics_path与实际端点curl 端点验证返回内容修正路径前缀注意 V3 为/minio/metrics/v3重启 Prometheus看板全图 No Data查询器提示 series 为空Prometheus 中直接执行看板里的 PromQL检查 job 标签与看板变量取值是否匹配修正实例标签告警一直不触发查 Alertmanager 的alertmanagers目标是否 UP核对rule_files路径、for时长与抑制规则抓取超时导致数据断续看 Targets 的最近 scrape 错误与耗时调大scrape_timeout或检查 MinIO 节点负载监控链路的价值在于告警响铃时你能在十分钟内看到对的面板。本文覆盖了 MinIO V3 指标的采集、看板与告警最小闭环更多细节可查 docs/metrics/ 官方监控文档、cmd/metrics-v3.go 指标实现与 docs/metrics/prometheus/alerts.md 告警示例。【免费下载链接】minioMinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPLv3 license.项目地址: https://gitcode.com/GitHub_Trending/mi/minio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表