minio部署及监控
部署单机
使用docker-compose启动
version: '3'
services:
minio:
image: minio/minio
container_name: minio
environment:
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
- MINIO_PROMETHEUS_AUTH_TYPE="public" #public方式打开监控
- MINIO_PROMETHEUS_URL=http://10.210.13.21:9090 #minio console自带工具采集promethous数据
- MINIO_PROMETHEUS_JOB_ID=minio-job #minio console自带工具采集promethous数据
command: server --console-address ":9001" -address ":9000" /data
volumes:
- /home/minio/data:/data #创建此目录文件
- /home/minio/config:/root/.minio/ #创建此目录文件
- /etc/localtime:/etc/localtime
ports:
- "9000:9000"
- "9001:9001"
restart: always
监控
minio打开监控的二种方式(楼主是用第二种方式)
1. public方式
minio增加MINIO_PROMETHEUS_AUTH_TYPE="public"配置,然后重启minio服务
prometheus中的配置
- job_name: minio-job
metrics_path: /minio/v2/metrics/cluster
scheme: http
static_configs:
- targets: ['10.200.13.27:9000']
2. 身份验证方式
首先使用minio client设置别名,然后获取prometheus配置
这里使用docker形式运行mc
#运行mc容器
docker pull minio/mc
docker run -it --entrypoint=/bin/sh minio/mc
#设置别名
mc alias set minio http://10.200.13.27:9000 minioadmin minioadmin
#输出
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
Added `minio` successfully
#生产配置
mc admin prometheus generate minio
#输出配置
- job_name: minio-job
bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoibWluaW9hZG1pbiIsImV4cCI6NDg1MTA0MDcyOH0.CJrubFabHAc15CHodqGJBJ0Bwmzf51CBubHRz525xVuq003M_t3YwHzmQXMiv3RmVWMuV2cwh5o-ksw8FVznjA
metrics_path: /minio/v2/metrics/cluster
scheme: http
static_configs:
- targets: ['10.200.13.27:9000']
将输出的配置加入到prometheus配置中后重启服务即可。
prometheus中的配置
- job_name: minio-job
bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoibWluaW9hZG1pbiIsImV4cCI6NDg1MTA0MDcyOH0.CJrubFabHAc15CHodqGJBJ0Bwmzf51CBubHRz525xVuq003M_t3YwHzmQXMiv3RmVWMuV2cwh5o-ksw8FVznjA
metrics_path: /minio/v2/metrics/cluster
scheme: http
static_configs:
- targets: ['10.200.13.27:9000']
区别
二种方式的区别就是token使用
我目前进行测试是使用public方式,target会提示“server 403”,修改为身份验证方式才能正常取到监控数据
minio console自带工具
访问http://10.200.13.27:9001 此时也有监控数据了
granafa-dashboard展示
集群13502
单机
告警规则
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"