如何监控centos上的minio服务
导读:监控方案总览 在 CentOS 上监控 MinIO,建议采用“指标采集 + 可视化告警 + 进程与日志守护”的组合: 指标采集:使用 Prometheus 抓取 MinIO 暴露的 /minio/prometheus/metrics(旧版...
监控方案总览 在 CentOS 上监控 MinIO,建议采用“指标采集 + 可视化告警 + 进程与日志守护”的组合:
- 指标采集:使用 Prometheus 抓取 MinIO 暴露的 /minio/prometheus/metrics(旧版)或 /minio/v2/metrics/{ cluster,node,bucket,resource} (v2 版本),配合 Grafana 做可视化。
- 健康检查:对接 /minio/health/live 与 /minio/health/ready 探针,便于 Kubernetes 或系统监控做存活/就绪探测。
- 进程与日志:用 systemd 或 Supervisor 保证进程常驻,集中采集 journald 或日志文件,便于故障定位与审计。
步骤一 暴露并验证 MinIO 指标与健康检查
- 确认监听端口:对象接口默认 9000/TCP,控制台默认 9001/TCP;在防火墙放行对应端口(示例:firewall-cmd --permanent --add-port=9000,9001/tcp & & firewall-cmd --reload)。
- 选择指标 API 版本:
- v2(推荐,RELEASE.2023-10-07T15-07-38Z 起):集群/节点/桶/资源分别通过 /minio/v2/metrics/cluster|node|bucket|resource 暴露;使用 mc admin prometheus generate { cluster|node|bucket|resource} 生成抓取配置(包含 bearer_token 或设置为 public 后省略)。
- 旧版(兼容):/minio/prometheus/metrics,默认需要 JWT 认证;可在环境变量设置 MINIO_PROMETHEUS_AUTH_TYPE=public 开放为匿名访问(仅在内网可信环境使用)。
- 本机快速验证(示例):
- curl http://127.0.0.1:9000/minio/health/live
- curl http://127.0.0.1:9000/minio/health/ready
- curl http://127.0.0.1:9000/minio/prometheus/metrics 若使用 v2,请将路径替换为 /minio/v2/metrics/cluster 等对应端点。
步骤二 配置 Prometheus 抓取 MinIO 指标
- 生成抓取片段(推荐):
- mc alias set myminio http://< MINIO_ADDR> :9000 < ACCESS_KEY> < SECRET_KEY>
- mc admin prometheus generate myminio cluster > /etc/prometheus/minio-cluster.yml
- 如需节点/桶/资源维度,分别生成对应片段并合并到 prometheus.yml 的 scrape_configs。
- 关键配置要点:
- scrape_interval:建议 60s(指标较多时可适当增大以减少负载)。
- scheme:部署为 TLS 用 https,否则 http。
- bearer_token:v2 默认需要;若设置 MINIO_PROMETHEUS_AUTH_TYPE=public 可省略。
- targets:可填写任一能解析到 MinIO 的地址(单节点、节点列表或负载均衡/代理)。
- 示例片段(v2,已设置 public 时):
- job_name: minio-job
- metrics_path: /minio/v2/metrics/cluster
- scheme: http
- static_configs:
- targets: [minio.example.net]
- 重启 Prometheus 使配置生效。
步骤三 Grafana 可视化与常用告警规则
- Grafana 配置:
- 添加数据源:选择 Prometheus,URL 指向 http://< PROMETHEUS_ADDR> :9090。
- 导入面板:可使用社区 MinIO 仪表盘(如 ID 1860),或基于 v2 指标自行构建。
- 常用告警规则示例(Prometheus Alertmanager):
- 磁盘离线
- expr: minio_offline_disks != 0
- for: 5m
- labels.severity: page
- annotations.summary: “MinIO 有磁盘离线”
- 可用空间不足
- expr: minio_disk_storage_free_bytes < 1010241024*1024 # 小于 10GiB
- for: 15m
- labels.severity: warning
- annotations.summary: “MinIO 可用空间不足 10GiB”
- 高延迟(示例:P95 超过 1s)
- expr: histogram_quantile(0.95, sum(rate(minio_http_requests_duration_seconds_bucket[5m])) by (le, handler))
- for: 10m
- labels.severity: warning
- annotations.summary: “MinIO P95 请求延迟 > 1s” 说明:上述指标名以 MinIO 暴露的 Prometheus 指标为准(如 minio_offline_disks、minio_disk_storage_free_bytes、以及 minio_http_requests_duration_seconds 直方图)。
- 磁盘离线
步骤四 进程与日志的守护与审计
- 使用 systemd 守护(示例):
- /etc/systemd/system/minio.service
- [Unit]
- Description=MinIO
- After=network.target
- [Service]
- User=minio
- Group=minio
- Environment=“MINIO_ROOT_USER=AKIA…”
- Environment=“MINIO_ROOT_PASSWORD=SECRET…”
- ExecStart=/usr/local/bin/minio server --address :9000 --console-address :9001 /data/minio
- Restart=always
- LimitNOFILE=65536
- [Install]
- WantedBy=multi-user.target
- [Unit]
- 常用命令:systemctl daemon-reload & & systemctl enable --now minio & & journalctl -u minio -f
- /etc/systemd/system/minio.service
- 使用 Supervisor 守护(示例):
- /etc/supervisord.d/minio.ini
- [program:minio]
- command=/usr/local/bin/minio server /data/minio
- user=minio
- autostart=true
- autorestart=true
- redirect_stderr=true
- stdout_logfile=/var/log/supervisor/minio.log
- 常用命令:supervisorctl reread & & supervisorctl update & & supervisorctl tail -f minio
- /etc/supervisord.d/minio.ini
- 日志与审计:
- 建议将 journald 或日志文件接入 rsyslog/Loki 等集中系统;结合 mc 或 REST API 做配置巡检与合规审计(如 mc admin info、mc ilm list 等)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何监控centos上的minio服务
本文地址: https://pptw.com/jishu/760882.html
