前言

minio集群有暴露监控指标接口给Prometheus,可通过配置Prometheus访问MinIO集群的权限,将MinIO集群接入Prometheus监控,并通过MinIO官方发布的Grafana Dashboard(ID:13502,链接:https://grafana.com/grafana/dashboards/13502-minio-dashboard/)将指标展示在Grafana。

本文记录Prometheus与MinIO集群部署在同一k8s集群内的监控接入过程。

1 k8s集群内Prometheus监控MinIO集群

1.1 MinIO端配置Prometheus访问权限

MinIO给Prometheus提供了两种访问策略:

1)public方式:
给MinIO集群设置环境变量export MINIO_PROMETHEUS_AUTH_TYPE=public,Prometheus可以不通过验证访问MinIO集群; 这种方式方便简洁,本文采用这种方式。
2)访问验证token方式:
通过客户端命令mc使用命令mc admin prometheus generate <ALIAS>生成验证token,将token配置到Prometheus,Prometheus根据token信息访问集群,具体方法可参考官网。
修改MinIO集群的minio.yaml文件,修改环境变量env部分,新增Prometheus访问权限:

env:- name: MINIO_PROMETHEUS_AUTH_TYPEvalue: public

执行kubectcl apply minio.yaml生效。

1.2 service暴露监控指标接口

在service的yaml文件中增加annotations模块,暴露监控接口信息:

[root@rancher-01 minio]# cat service-minio.yaml
apiVersion: v1
kind: Service
metadata:labels:app: minioname: minionamespace: publicnamespace: monitoringannotations:        #增加该模块信息prometheus.io/scrape: "true"prometheus.io/port: "9000"prometheus.io/path: "/minio/v2/metrics/cluster"
spec:ports:- name: minio-port-9000port: 9000protocol: TCPtargetPort: 9000- name: minio-port-9001port: 9001protocol: TCPtargetPort: 9001selector:app: miniotype: ClusterIP

执行kubectl apply service-minio.yaml配置生效

1.3 创建servicemonitor

[root@rancher-0001 minio]# cat service-monitor-minio.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: minio
namespace: public
labels:
app: minio-cluster
spec:
endpoints:
- interval: 15s
path: /minio/v2/metrics/cluster
port: minio-port-9000
namespaceSelector:
matchNames:
- public
selector:
matchLabels:
app: minio
[root@rancher-0001 minio]#

执行kubectl apply -f service-monitor-minio.yaml创建。

创建好后,访问Prometheus的Target界面,能看到minio集群节点均已上线:

1.4 监控看板接入

将MinIO官方的发布的Grafana Dashboard (ID为13502)导入Grafana,就能看到监控信息了。

2 MinIO集群监控指标汇总

2.1 对象衡量指标

minio_bucket_objects_size_distribution
存储桶中对象大小的分布,包括存储桶名称的标签。

2.2.复制指标

这些指标仅针对启用了服务器端存储桶复制的 MinIO 集群进行填充。

minio_bucket_replication_failed_bytes
复制的字节总数至少失败一次。minio_bucket_replication_pending_bytes
等待复制的总字节数。minio_bucket_replication_received_bytes
从另一个源存储桶复制到此存储桶的字节总数。minio_bucket_replication_sent_bytes
复制到目标存储桶的总字节数。minio_bucket_replication_pending_count
此存储桶挂起的复制操作总数。minio_bucket_replication_failed_count
此存储桶的复制操作失败总数。

2.3 存储桶指标

minio_bucket_usage_object_total
对象总数minio_bucket_usage_total_bytes
总存储桶大小(以字节为单位)

2.4 缓存指标

minio_cache_hits_total
磁盘缓存命中总数minio_cache_missed_total
磁盘缓存未命中总数minio_cache_sent_bytes
从缓存中提供的总字节数minio_cache_total_bytes
缓存磁盘的总大小(以字节为单位)minio_cache_usage_info
总缓存使用百分比,值 1 表示高,0 表示低,标签级别也设置minio_cache_used_bytes
当前缓存使用情况(以字节为单位)

2.5 集群指标

minio_cluster_capacity_raw_free_bytes
群集中联机的总可用容量。minio_cluster_capacity_raw_total_bytes
群集中联机的总容量。minio_cluster_capacity_usable_free_bytes
群集中联机的总可用容量。minio_cluster_capacity_usable_total_bytes
群集中联机的总可用容量。

2.6 节点指标

minio_cluster_nodes_offline_total
脱机的 MinIO 节点总数。minio_cluster_nodes_online_total
联机的最小值节点总数。minio_heal_objects_error_total
在当前自我修复运行中修复失败的对象minio_heal_objects_heal_total
在当前自我修复运行中修复的对象minio_heal_objects_total
在当前自我修复运行中扫描的对象minio_heal_time_last_activity_nano_seconds
自上次自我修复活动以来经过的时间(以纳米秒为单位)。这被设置为 -1,直到初始自我修复minio_inter_node_traffic_received_bytes
从其他对等节点接收的总字节数。minio_inter_node_traffic_sent_bytes
发送到其他对等节点的总字节数。minio_node_disk_free_bytes
磁盘上可用的总存储。minio_node_disk_total_bytes
磁盘上的总存储。minio_node_disk_used_bytes
磁盘上使用的总存储。minio_node_file_descriptor_limit_total
限制 MinIO 服务器进程的打开文件描述符的总数。minio_node_file_descriptor_open_total
MinIO 服务器进程打开的文件描述符的总数。minio_node_io_rchar_bytes
进程从底层存储系统(包括缓存) 读取的总字节数,/proc/[pid]/io rcharminio_node_io_read_bytes
进程从底层存储系统读取的总字节数,/proc/[pid]/io read_bytesminio_node_io_wchar_bytes
进程写入底层存储系统的总字节数,包括页面缓存,/proc/[pid]/io wcharminio_node_io_write_bytes
进程写入底层存储系统的总字节数,/proc/[pid]/io write_bytesminio_node_process_starttime_seconds
每个节点的 MinIO 进程的开始时间,自 Unix 纪元以来的时间(以秒为单位)。minio_node_process_uptime_seconds
每个节点的 MinIO 进程的正常运行时间(以秒为单位)。minio_node_scanner_bucket_scans_finished
自服务器启动以来完成的存储桶扫描总数。minio_node_scanner_bucket_scans_started
自服务器启动以来启动的存储桶扫描总数。minio_node_scanner_directories_scanned
自服务器启动以来扫描的目录总数。minio_node_scanner_objects_scanned
自服务器启动以来扫描的唯一对象总数。minio_node_scanner_versions_scanned
自服务器启动以来扫描的对象版本总数。minio_node_syscall_read_total
总读取系统调用内核。/proc/[pid]/io syscrminio_node_syscall_write_total
总写入系统调用到内核。/proc/[pid]/io syscw

2.7 S3 指标

minio_s3_requests_error_total
有错误的 S3 请求总数minio_s3_requests_inflight_total
当前正在运行的 S3 请求总数minio_s3_requests_total
S3 请求总数minio_s3_time_ttbf_seconds_distribution
跨 API 调用到第一个字节的时间分布。minio_s3_traffic_received_bytes
接收的 s3 字节总数。minio_s3_traffic_sent_bytes
发送的 s3 字节总数

2.8 软件指标

minio_software_commit_info
Git 提交最小值版本的哈希值。minio_software_version_info
服务器的最小 IO 发布标记

原文链接:MinIO集群怎么接入Prometheus监控?(上)_西风未眠的技术博客_51CTO博客

MinIO集群怎么接入Prometheus监控?(上)相关推荐

  1. 使用 Thanos 实现多集群(租户)监控

    Thanos 已成为目前 Kubernetes 集群监控的标准解决方案之一.它基于 Prometheus 之上,可以为我们提供: 全局的指标查询视图 近乎无限的数据保留期限 包含 Prometheus ...

  2. minio分布式搭建_分布式存储Minio集群环境搭建

    MinIO 分布式集群搭建 分布式 Minio 可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务.由于硬盘分布在不同的节点上,分布式 Minio 避免了单点故障. Minio 分布式模式可 ...

  3. 漫谈 MinIO 集群扩容方法

    [CSDN 编者按]数据的持续积累和应用需求的不断增长,往往造成存储系统空间不足.集群部署条件下,如何有效扩展存储空间,同时快速应对应用需求变化,成为近年来各类存储系统的重要议题.本文主要介绍MinI ...

  4. MinIO纠错码、分布式MinIO集群搭建及启动

    文章目录 前言 一.MinIO纠删码 二.分布式集群部署 1.分布式存储可靠性常用的方法 2.分布式MinIO 3.分布式MinIO集群搭建 3.1 下载MinIO 3.2 为每一台虚拟机创建目录并上 ...

  5. Minio集群部署安装教程

    安装前需要用虚拟机再添加一个磁盘后将磁盘挂载到/opt/minio目录. Linux磁盘挂载 minio集群部署需要独占磁盘分区,不能使用文件夹代替.最开始直接在/opt/minio目录下面创建dat ...

  6. 分布式文件服务minio集群搭建

    minio集群搭建过程记录 minio集群搭建 1.服务器:2台服务器(存储数据目录不能是/root目录,否则会报错) 2.从官网获取Minio二进制文件并上传至2台集群主机: 3.创建目录(2台集群 ...

  7. 【minIO集群 配置负载均衡(二)】

    minIO集群 配置负载均衡(二) minIO集群搭建参考:https://blog.csdn.net/qq_38066812/article/details/122477030 配置负载均衡 使用n ...

  8. docker swarm 布署minio集群

    活动地址:毕业季·进击的技术er docker swarm 布署minio集群 环境:ubuntu18.04服务器 4台,docker(docker-compose,docker swarm) 分为主 ...

  9. 最佳实践|Spring Boot 应用如何快速接入 Prometheus 监控

    简介:SpringBoot 微服务的开发.发布与部署只占其生命周期的一小部分,应用和系统运维才是重中之重.而运维过程中,监控工作更是占据重要位置.那么,为了对系统的状态进行持续地观测,面向Spring ...

最新文章

  1. Java实现MD5(32/16位大小写)加密
  2. Javascript对于不同浏览器的兼容性
  3. 解决微博登录 Application requires permission to access the Internet
  4. dotween曲线运动 unity_Unity中DOTween插件的DOTweenPath轨迹移动
  5. 周志华《机器学习》课后习题(第三章):线性模型
  6. 推荐一个golang的json库
  7. 目前最全的《Android面试题及解析》!面试真题解析
  8. 将Github中Fork的代码,克隆到本地
  9. 服务器IIS asp.net中.aspx映射
  10. 转 db_file_multiblock_read_count
  11. 多个路由指向同一个页面_ASP.NET实战008:MVC路由实现详解
  12. 【洛谷】P1216数字三角形
  13. 云心html mac,萤石云视频Mac版
  14. 免费CDN jsdelivr 加速网站
  15. 阳光房行业现状调研及趋势分析报告
  16. html聚光灯特效,jquery实现聚光灯效果的方法
  17. ValueError: With n_samples=0, test_size=0.2 and train_size=None, the resulting train set will be emp
  18. 百度 oppo 滴滴出行 面试问题总结 阿里
  19. 【华为云CCE】 k8s部署nacos集群
  20. 基于Keras实现鸢尾花分类

热门文章

  1. 为什么百度蜘蛛不对网站进行抓取?
  2. iOS面试:简历模版(A4纸正反两面)
  3. 快速列出字母+数字的全部组合
  4. 如何迅速打造敏捷团队
  5. 教你如何把一张图片做成一段视频
  6. 物联网:断点续传策略及流程图
  7. selenium 批量下载qq邮箱附件
  8. php点击同一个按钮实现正序倒叙,php foreach正序倒序输出
  9. VIPKID大米网校“学费交多少,由家长说了算”背后的实力自信
  10. 常见的图片比例有哪些?App中不同图片比例适用场景