使用 Prometheus 进行监控和警报
https://min.io/docs/minio/linux/operations/monitoring/collect-minio-metrics-using-prometheus.html
MinIO 使用Prometheus 数据模型发布集群和节点指标。此页面上的过程记录了以下内容:
配置 Prometheus 服务以从 MinIO 部署中抓取和显示指标
在 MinIO 指标上配置警报规则以触发 AlertManager 操作
配置 Prometheus 以使用 MinIO 指标收集和警报
1)生成抓取配置
通过客户端命令mc
使用命令mc admin prometheus generate <ALIAS>
生成验证token,将token配置到Prometheus,Prometheus根据token信息访问集群,
使用命令生成抓取配置,供 Prometheus 在发出抓取请求时使用:mc admin prometheus generate
mc admin prometheus generate <ALIAS>
替换ALIAS
为 MinIO 部署的地址。
#设置别名
mc alias set minio http://192.168.1.170:9000 admin 44qwsgxQgmci5KK
#输出
Added `minio` successfully.
#生成配置
mc admin prometheus generate minio
#配置输出
scrape_configs:
- job_name: minio-job
bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoiYWRtaW4iLCJleHAiOjQ4Mzc2ODA0NjZ9.U38HXi50Yo34v3Ga7oG9womAUysFrA7_ZgqlItoL2JAnLOmWJwZdgbzf0hQ0eSHXIPGG7PYtNV7iBNwGHFQvGw
metrics_path: /minio/v2/metrics/cluster
scheme: http
static_configs:
- targets: ['192.168.1.170:9000']
该命令返回类似于以下内容的输出:
scrape_configs:
- job_name: minio-job
bearer_token: TOKEN
metrics_path: /minio/v2/metrics/cluster
scheme: https
static_configs:
- targets: [minio.example.net]
将 设置
job_name
为与 MinIO 部署关联的值。使用唯一值确保将部署指标与该 Prometheus 服务收集的任何其他指标隔离开来。
MINIO_PROMETHEUS_AUTH_TYPE
以 set to 开头的 MinIO 部署”public”可以省略该bearer_token
字段。scheme将不使用 TLS 的 MinIO 部署设置为 http。
targets使用解析为 MinIO 部署的主机名设置数组。
这可以是任何单个节点,也可以是处理与 MinIO 节点的连接的负载均衡器/代理。
2) 使用更新后的配置重启 Prometheus
将生成的配置加入到prometheus的配置中,重启服务即可。
global:
scrape_interval: 15s
scrape_configs:
- job_name: minio-job
bearer_token: TOKEN
metrics_path: /minio/v2/metrics/cluster
scheme: https
static_configs:
- targets: [minio.example.net]
使用配置文件启动 Prometheus 集群:
prometheus –config.file=prometheus.yaml
3) 分析收集的指标
Prometheus 包含一个表达式浏览器。您可以在此处执行查询以分析收集的指标。
以下查询示例返回 Prometheus 收集的指标:
minio_cluster_disk_online_total{job="minio-job"}[5m]
minio_cluster_disk_offline_total{job="minio-job"}[5m]
minio_bucket_usage_object_total{job="minio-job"}[5m]
minio_cluster_capacity_usable_free_bytes{job="minio-job"}[5m]
4) 使用 MinIO 指标配置警报规则
您必须在 Prometheus 部署上配置警报规则,以根据收集的 MinIO 指标触发警报。
以下示例警报规则文件为 MinIO 部署提供了警报基线。您可以修改或以其他方式使用这些示例作为构建您自己的警报的指南。
groups:
- name: minio-alerts
rules:
- alert: NodesOffline
expr: avg_over_time(minio_cluster_nodes_offline_total{job="minio-job"}[5m]) > 0
for: 10m
labels:
severity: warn
annotations:
summary: "Node down in MinIO deployment"
description: "Node(s) in cluster {{ $labels.instance }} offline for more than 5 minutes"
- alert: DisksOffline
expr: avg_over_time(minio_cluster_disk_offline_total{job="minio-job"}[5m]) > 0
for: 10m
labels:
severity: warn
annotations:
summary: "Disks down in MinIO deployment"
description: "Disks(s) in cluster {{ $labels.instance }} offline for more than 5 minutes"
将警报文件的路径指定为 Prometheus 配置作为rule_files
密钥的一部分:
global:
scrape_interval: 5s
rule_files:
- minio-alerting.yml
一旦触发,Prometheus 就会将警报发送到配置的 AlertManager 服务。
5)(可选)配置MinIO控制台查询Prometheus
控制台还支持通过查询配置为从 MinIO 部署中抓取数据的Prometheus服务来显示时间序列和历史数据。
MinIO 控制台显示 Prometheus 支持的监控数据
要在 MinIO 控制台中启用历史数据可视化,请在 MinIO 部署中的每个节点上设置以下环境变量:
设置
MINIO_PROMETHEUS_URL
为 Prometheus 服务的 URL设置
MINIO_PROMETHEUS_JOB_ID
为分配给收集的指标的唯一作业 ID
重新启动 MinIO 部署并访问Monitoring窗格以查看历史数据视图。
最后编辑:Jeebiz 更新时间:2024-08-02 11:04