跳转至

MinIO

MinIO 性能指标展示,包括 MinIO 在线时长、存储空间分布、bucket 明细、文件大小区间分布、S3 TTFB (s) 分布、S3 流量、S3 请求等。

配置

版本支持

  • MinIO 版本:ALL

说明:示例 MinIO 版本为 RELEASE.2022-06-25T15-50-16Z (commit-id=bd099f5e71d0ea511846372869bfcb280a5da2f6)

指标采集

MinIO 默认已暴露 metric ,可以直接通过 Prometheus 来采集相关指标。

  • 使用minio-client(简称mc)创建授权信息
$ mc alias set myminio http://192.168.0.210:9000 minioadmin minioadmin

scrape_configs:
- job_name: minio-job
  bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ4MTAwNzIxNDQsImlzcyI6InByb21ldGhldXMiLCJzdWIiOiJtaW5pb2FkbWluIn0.tzoJ7ifMxgx4jXfUKdD_Sq5Ll2-YlbaBu6FuNTZcc88t9o9STyg4yicRAgYmezVGFwYR2VFKvBSBnOnVnb0n4w
  metrics_path: /minio/v2/metrics/cluster
  scheme: http
  static_configs:
  - targets: ['192.168.0.210:9000']
注意

Minio 只提供了通过 mc 来生成token 信息,可用于prometheus 指标采集。其中并不包含生成对应 prometheus server, 输出信息包含了 bearer_tokenmetrics_pathscheme以及targets,通过这些信息可以进行拼装最终的 url 。

  • 开启 DataKit 采集器
cd /usr/local/datakit/conf.d/prom/
cp prom.conf.sample prom-minio.conf

-修改 prom-minio.conf 配置文件

prom-minio.conf
[[inputs.prom]]
  # Exporter URLs
  urls = ["http://192.168.0.210:9000/minio/v2/metrics/cluster"]

  # 忽略对 url 的请求错误
  ignore_req_err = false
  # 采集器别名
  source = "minio"
  metric_types = []

  # 保留指标,防止时间线炸裂
  metric_name_filter = ["minio_bucket","minio_cluster","minio_node","minio_s3","minio_usage"]
  # 采集间隔 "ns", "us" (or "µs"), "ms", "s", "m", "h"
  interval = "1m"

  # TLS 配置
  tls_open = false
  # tls_ca = "/tmp/ca.crt"
  # tls_cert = "/tmp/peer.crt"
  # tls_key = "/tmp/peer.key"

  # 过滤 tags, 可配置多个tag
  # 匹配的 tag 将被忽略,但对应的数据仍然会上报上来
  tags_ignore = ["version","le","commit"]

  # 自定义认证方式,目前仅支持 Bearer Token
  # token 和 token_file: 仅需配置其中一项即可
  [inputs.prom.auth]
    type = "bearer_token"
    token = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ4MTAwNzIxNDQsImlzcyI6InByb21ldGhldXMiLCJzdWIiOiJtaW5pb2FkbWluIn0.tzoJ7ifMxgx4jXfUKdD_Sq5Ll2-YlbaBu6FuNTZcc88t9o9STyg4yicRAgYmezVGFwYR2VFKvBSBnOnVnb0n4w"
  # token_file = "/tmp/token"

  # 自定义指标集名称
  # 可以将包含前缀 prefix 的指标归为一类指标集
  # 自定义指标集名称配置优先 measurement_name 配置项
  #[[inputs.prom.measurements]]
  #  prefix = "cpu_"
  #  name = "cpu"

  # [[inputs.prom.measurements]]
  # prefix = "mem_"
  # name = "mem"

  # 对于匹配如下 tag 相关的数据,丢弃这些数据不予采集
  [inputs.prom.ignore_tag_kv_match]
  # key1 = [ "val1.*", "val2.*"]
  # key2 = [ "val1.*", "val2.*"]

  # 在数据拉取的 HTTP 请求中添加额外的请求头
  [inputs.prom.http_headers]
  # Root = "passwd"
  # Michael = "1234"

  # 重命名 prom 数据中的 tag key
  [inputs.prom.tags_rename]
    overwrite_exist_tags = false
    [inputs.prom.tags_rename.mapping]
    # tag1 = "new-name-1"
    # tag2 = "new-name-2"
    # tag3 = "new-name-3"

  # 将采集到的指标作为日志打到中心
  # service 字段留空时,会把 service tag 设为指标集名称
  [inputs.prom.as_logging]
    enable = false
    service = "service_name"

  # 自定义Tags
  [inputs.prom.tags]
  # some_tag = "some_value"
  # more_tag = "some_other_value"

主要参数说明 :

  • urls:prometheus 指标地址,这里填写 MinIO 暴露出来的指标 url
  • source:采集器别名,建议写成minio
  • interval:采集间隔
  • metric_name_filter: 指标过滤,只采集需要的指标项
  • tls_open:TLS 配置
  • metric_types:指标类型,不填,代表采集所有指标
  • tags_ignore: 忽略不需要的 tag
  • [inputs.prom.auth]:配置授权信息
  • token : bearer_token 值

  • 重启 DataKit

重启 DataKit

指标

指标 含义
node_process_uptime_seconds 节点在线时长
node_disk_free_bytes 节点空间空闲大小
node_disk_used_bytes 节点空间使用大小
node_file_descriptor_open_total 节点文件描述打开次数
node_go_routine_total 节点 go_routine 次数
cluster_disk_online_total 集群磁盘在线数
cluster_disk_offline_total 集群磁盘离线数
bucket_usage_object_total bucket 已用对象数
bucket_usage_total_bytes bucket 已用字节
bucket_objects_size_distribution bucket 对象大小区间分布
s3_traffic_received_bytes s3 接收流量
s3_traffic_sent_bytes s3 发送流量
s3_requests_total s3 请求总数
s3_requests_waiting_total s3 正在等待请求数
s3_requests_errors_total s3 异常总数
s3_requests_4xx_errors_total s3 4xx 异常数
s3_time_ttfb_seconds_distribution s3 TTFB
usage_last_activity_nano_seconds 自上使用活动以来的时间

文档评价

文档内容是否对您有帮助? ×