MinIO配置
minio
自身提供了Prometheus
监控的指标数据,分为两种形式获取:
通常我们会采用通过认证的方式获取监控数据。
查看目前的别名信息,mc
命令为minio
的客户端,若没有此命令,请自行安装。
增加一个prometheus
别名,http://minio.snoopyops.osa
为minio
的9000
端口所对应的地址,请根据自己的环境进行修改。
1
2
3
4
|
mc alias set prometheus http://minio.snoopyops.osa
Enter Access Key: minio用户名
Enter Secret Key: minio密码
Added `prometheus` successfully.
|
再次查看别名信息,已经添加了名为prometheus
的别名。
1
2
3
4
5
6
7
8
|
mc alias list
prometheus
URL : http://minio.snoopyops.osa
AccessKey : xxxx
SecretKey : 29xxxxxx
API : s3v4
Path : auto
|
为prometheus
别名生产prometheus
配置文件。后面的prometheus
为别名,与上文是对应的。
1
2
3
4
5
6
7
8
9
|
mc admin prometheus generate prometheus
scrape_configs:
- job_name: minio-job
bearer_token: eyJhbGxxxx.eyxxxx.xxx-xx
metrics_path: /minio/v2/metrics/cluster
scheme: http
static_configs:
- targets: [minio.snoopyops.osa]
|
验证生成的token
,看是否可以获取到监控指标。
1
2
3
|
curl -v -sSL -H 'Authorization: Bearer 你上面申请的token' http://minio.snoopyops.osa/minio/v2/metrics/cluster
示例:
curl -v -sSL -H 'Authorization: Bearer eyJhbGxxxx.eyxxxx.xxx-xx' http://minio.snoopyops.osa/minio/v2/metrics/cluster
|
Prometheus
Prometheus
配置直接复制上文生成的配置即可。
1
2
3
4
5
6
|
- job_name: minio-job
bearer_token: eyJhbGxxxx.eyxxxx.xxx-xx
metrics_path: /minio/v2/metrics/cluster
scheme: http
static_configs:
- targets: [minio.snoopyops.osa]
|
告警规则配置。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
- alert: MinIONodesOffline
expr: avg_over_time(minio_cluster_nodes_offline_total{job="minio"}[5m]) > 0
for: 10m
labels:
severity: critical
annotations:
summary: "Node down in MinIO deployment"
description: "Node(s) in cluster {{ $labels.instance }} offline for more than 5 minutes"
- alert: MinIODisksOffline
expr: avg_over_time(minio_node_drive_offline_total{job="minio"}[5m]) > 0
for: 10m
labels:
severity: critical
annotations:
summary: "Disks down in MinIO deployment"
description: "Disks(s) in cluster {{ $labels.instance }} offline for more than 5 minutes"
|
重载Prometheus
。
1
|
curl -XPOST https://prometheus地址/-/reload
|
Grafana
Grafana
模版ID
为13502
最终效果如图: