MinIO集群怎么接入Prometheus监控?(下)

这篇具有很好参考价值的文章主要介绍了MinIO集群怎么接入Prometheus监控?(下)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


前言

在《MinIO集群怎么接入Prometheus监控?(上)》一文中主要记录了同在k8s集群内的Prometheus怎么监控minio集群。

本文则记录当Prometheus部署在k8s集群内,MinIO集群部署在k8s集群外部时怎么接入监控。

同时,新版MinIO的控制台新增了“Monitoring”模块,怎么将Prometheus收集到的监控指标展示在MinIO控制台。

1. k8s集群内Prometheus监控外部MinIO集群

1.1 MinIO端配置Prometheus访问权限

修改minIO集群的启动脚本,加入Prometheus权限的环境变量(所有MinIO集群节点都要加):

[root@test64 minio]# cat run.sh 
#!/bin/bash
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=passadmin@minio
export MINIO_PROMETHEUS_AUTH_TYPE=public   #加入这行环境变量,“public”表示Prometheus访问minio集群可以不通过身份验证
/home/App/minio/minio server --config-dir /home/Config/minio  --console-address ":9001" \
http://10.99.68.64:9000/home/Data/minio \
http://10.99.68.65:9000/home/Data/minio \
http://10.99.68.66:9000/home/Data/minio \
http://10.99.68.67:9000/home/Data/minio>/home/Logs/minio/start.txt 2>&1 &
[root@test64 minio]#

修改后重新启动MinIO集群服务。

1.2 Prometheus端监控配置

Prometheus监控配置需要手动创建MinIO的service、enpoint和servicemonitor。

1.2.1 创建MinIO集群service
[root@rancher-0001 minio]# cat service.yaml 
apiVersion: v1
kind: Service
metadata:
  labels:   #此处label要和后面servicemonitor对象的seletor匹配
    app: minio-cluster
  name: minio-cluster
  namespace: monitoring   #指定创建service的namespace
spec:
  type: ClusterIP
  ports:
  - name: minio-port
    port: 9000
    protocol: TCP
    targetPort: 9000
[root@rancher-0001 minio]# 
[root@rancher-0001 minio]# kubectl apply -f service.yaml 
service/minio-cluster created
[root@rancher-0001 minio]#

service创建成功:

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档

此时还看不到挂载点信息:

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档
1.2.2 创建MinIO集群endpoint

在上一步创建的service下,创建MinIO集群endpoint信息

[root@rancher-0001 minio]# cat endpoint.yaml 
apiVersion: v1
kind: Endpoints
metadata:
  labels:
    app: minio-cluster   #此处和service保持一致
  name: minio-cluster
  namespace: monitoring
subsets:
- addresses:       #minio集群节点IP
  - ip: 10.99.68.64 
  - ip: 10.99.68.65
  - ip: 10.99.68.66
  - ip: 10.99.68.67
  ports:
    - name: minio-port
      port: 9000
      protocol: TCP
[root@rancher-0001 minio]# 
[root@rancher-0001 minio]# kubectl apply -f endpoint.yaml   #创建endpoint
endpoints/minio-cluster created
[root@rancher-0001 minio]#

再看svc,能看到挂载IP信息:

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档
1.2.3 创建MinIO集群servicemonitor

创建MinIO集群servicemonitor信息:

[root@rancher-0001 minio]# cat servicemonitor.yaml 
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    app: minio-node
  name: minio-node
  namespace: monitoring
spec:
  endpoints:
  - interval: 15s   # 采集频率根据实际需求配置,prometheus默认是15s
    port: minio-port     # 采集节点端口,service中定义的name
    path: /minio/v2/metrics/cluster  # 暴露指标的接口路径;默认路径是/metrics,老版本minio的监控接口是/minio/prometheus/metrics ,现在也还能用,暴露的指标少很多
  namespaceSelector:
    matchNames:       # Namespace选择器,关联minio service所在namespace
    - monitoring
  selector:
    matchLabels:   #service选择器,和service的labels保持一致
      app: minio-cluster 
[root@rancher-0001 minio]# 
[root@rancher-0001 minio]# kubectl apply -f   servicemonitor.yaml  #创建servicemonitor
servicemonitor.monitoring.coreos.com/minio-node created
[root@rancher-0001 minio]# 

创建成功:

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档

访问Prometheus的Target界面,能看到4台MinIO服务器节点均已上线:

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档

1.3 Grafana看板导入

导入官方监控模板13502,即可看到监控数据:

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档

1.4 MinIO控制台展示Prometheus数据

截至上一步骤,监控看板已经可以正常查看。目前Prometheus的数据尚未接入MinIO控制台,因此控制看无法查看监控数据,页面标签均为灰色,无法访问:

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档

将Prometheus监控数据展示在MinIO集群控制台,只需如下步骤:

1)配置Prometheus域名到每一台MinIO集群节点的/etc/hosts

因我没有做域名解析,只用了nginx转发,因此要配置hosts,如有做Prometheus域名解析,可跳过。


10.99.68.110 promethues-sre.com

2)修改MinIO启动脚本,加入Prometheus的URL和job_name两个环境变量。

MinIO根据Prometheus的URL访问Prometheus;根据job_name去获取该job下的监控数据。job_name一定不能配置错了!

[root@test64 minio]# cat run.sh 
#!/bin/bash
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=passadmin
export MINIO_PROMETHEUS_AUTH_TYPE=public  #上一步骤加入的,允许Prometheus访问minio的配置
export MINIO_PROMETHEUS_URL="http://promethues-sre.com"  #加入这行环境变量,连接Prometheus
export MINIO_PROMETHEUS_JOB_ID=minio-cluster  #加入这行环境变量,根据job_id获取对应的监控数据
/home/App/minio/minio server --config-dir /home/Config/minio  --console-address ":9001" \
http://10.99.68.64:9000/home/Data/minio \
http://10.99.68.65:9000/home/Data/minio \
http://10.99.68.66:9000/home/Data/minio \
http://10.99.68.67:9000/home/Data/minio>/home/Logs/minio/start.txt 2>&1 &
[root@test64 minio]#

MINIO_PROMETHEUS_JOB_ID和Prometheus的job字段保持一致:

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档

3)重启MinIO

重启后,访问MinIO的monitoring界面,便能正常看到数据了:

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档

2. MinIO监控配置的踩坑记录

2.1 Prometheus采集数据报错403

Prometheus采集MinIO集群数据后,target页面报错server returned HTTP status 403 Forbidden:

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档

原因:

是MinIO配置Prometheus访问权限异常,导致Prometheus没有权限访问MinIO集群。

2.2 Dashboard报错函数错误

导入MinIO监控模板13502到Grafana后,无法看到job集群,也无法看到数据,右上角报错 Templating [scrape_jobs] Error updating options: e.replace is not a function

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档

原因:

Grafana版本过低,该错误是在grafana的7.3.4版本出现,后来把grafana升级到8.5.5版本后,Dashboard立即恢复正常。

2.3 Dashbord报错nodata

导入MinIO监控模板13502到Grafana后,能看到job集群,但是所有指标没有数据:

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档

原因:

遇到该错误时,Prometheus的target界面看到4台MinIO均为在线状态,经查是Prometheus的接口配置问题。

因最开始参考的是MinIO的中文官网,中文官网落后很多,给出的监控指标接口路径是/minio/prometheus/metrics,这个接口的监控指标少很多,而且不适用于新的Dashboard 13502,所以拿不到数据。英文官网给的监控路径是/minio/v2/metrics/cluster,将监控路径改成/minio/v2/metrics/cluster,数据就出来了。

如果配置的监控接口路径是/minio/prometheus/metrics,则可使用ID为12563的Dashboard。

2.4 Prometheus URL is unreachable

开始将Prometheus接入MinIO控制台时,Monitoring界面刷不出来,页面提示Prometheus URL is unreachable:

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档

原因:

MinIO无法访问到Prometheus,因我的Prometheus域名未作解析,只有一个内部nginx做的代理,没有配置hosts解析,MinIO集群解析不到环境变量中Prometheus的域名http://promethues-sre.com。

2.5 MinIO控制台拿不到Prometheus数据

MinIO控制台拿不到Prometheus数据:

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档

原因:

因为MinIO启动脚本中环境变量MINIO_PROMETHEUS_JOB_ID的配置问题,MINIO_PROMETHEUS_JOB_ID的值是Prometheus target界面标签中的job名:文章来源地址https://www.toymoban.com/news/detail-661334.html

minio prometheus,存储,监控,prometheus,java,kubernetes,Powered by 金山文档

到了这里,关于MinIO集群怎么接入Prometheus监控?(下)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云原生系列之使用prometheus监控redis集群实战

    本次实战使用prometheus监控redis集群,如果你只想监控redis的某一个单机服务,可以参考: 超级实用,解密云原生监控技术,使用prometheus轻松搞定redis监控 本文中的是prometheus已经安装好,如果你还未安装,可以参考上一篇文章:prometheus安装及使用入门 若你想监控其他服务可以

    2023年04月14日
    浏览(43)
  • 在k8s集群内搭建Prometheus监控平台

    Prometheus由SoundCloud发布,是一套由go语言开发的开源的监控报警时间序列数据库的组合。 Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控

    2024年02月14日
    浏览(51)
  • 【k8s】基于Prometheus监控Kubernetes集群安装部署

    目录 基于Prometheus监控Kubernetes集群安装部署 一、环境准备 二、部署kubernetes集群 三、部署Prometheus监控平台 四、部署Grafana服务 五、grafana  web操作 IP地址 主机名 组件 192.168.100.131 k8s-master kubeadm、kubelet、kubectl、docker-ce 192.168.100.132 k8s-node01 kubeadm、kubelet、kubectl、docker-ce 192.168

    2024年02月12日
    浏览(53)
  • k8s集群监控cadvisor+prometheus+grafana部署

    目录 1.新建命名空间monitor 2.部署 2.1部署cadvisor 2.2部署node_exporter 2.3部署prometheus 2.4部署rbac权限 2.5.部署 metrics 2.6部署grafana 3.测试监控效果 参考文章: k8s集群部署cadvisor+node-exporter+prometheus+grafana监控系统 - cyh00001 - 博客园 准备工作: Cluster集群节点介绍: master:192.168.136.21(以

    2024年01月16日
    浏览(55)
  • 二进制部署Prometheus + Grafana监控集群,及各exporter安装

    Prometheus三大组件: Server 主要负责数据采集和存储,提供PromQL查询语言的支持。 Alertmanager 警告管理器,用来进行报警。 Push Gateway 支持临时性Job主动推送指标的中间网关。 Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google B

    2024年02月13日
    浏览(45)
  • Linux 集群监控部署:prometheus + node-exporter + Grafana

    之前我们有用到top、free、iostat等等命令,去监控服务器的性能,但是这些命令,我们只针对单台服务器进行监控,通常我们线上都是一个集群的项目,难道我们需要每一台服务器都去敲命令监控吗?这样显然不是符合逻辑的,Linux中就提供了一个集群监控工具 – prometheus。

    2024年02月04日
    浏览(42)
  • 使用Prometheus对k8s集群外的Elasticsearch进行监控

    本文介绍了使用Prometheus对k8s集群外的elasticsearch进行监控,这里Prometheus是使用operator部署于k8s集群中,相较于进程部署或docker部署的Prometheus,部署过程更为复杂,不能通过直接修改配置文件的方式增加job,而需要采用k8s的方式进行配置。 配置步骤为: 1,增加endpoint和service,

    2024年02月04日
    浏览(56)
  • Prometheus+Grafana(外)监控Kubernetes(K8s)集群(基于containerd)

    1、k8s环境 版本 v1.26.5 二进制安装Kubernetes(K8s)集群(基于containerd)—从零安装教程(带证书) 主机名 IP 系统版本 安装服务 master01 10.10.10.21 rhel7.5 nginx、etcd、api-server、scheduler、controller-manager、kubelet、proxy master02 10.10.10.22 rhel7.5 nginx、etcd、api-server、scheduler、controller-manager、kubel

    2024年02月16日
    浏览(50)
  • k8s集群监控方案--node-exporter+prometheus+grafana

    目录 前置条件 一、下载yaml文件 二、部署yaml各个组件 2.1 node-exporter.yaml 2.2 Prometheus 2.3 grafana 2.4访问测试 三、grafana初始化 3.1加载数据源 3.2导入模板 四、helm方式部署 安装好k8s集群(几个节点都可以,本人为了方便实验k8s集群只有一个master节点),注意prometheus是部署在k8s集群

    2024年02月12日
    浏览(50)
  • k8s集群监控及报警(Prometheus+AlertManager+Grafana+prometheusAlert+Dingding)

    k8s集群部署后,急需可靠稳定低延时的集群监控报警系统,报警k8s集群正常有序运行,经过不断调研和测试,最终选择Prometheus+AlertManager+Grafana+prometheusAlert的部署方案,故障信息报警至钉钉群和邮件,如需要额外监控可部署pushgateway主动推送数据到Prometheus进行数据采集 Promet

    2024年02月08日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包