当前位置: 首页 > news >正文

k8s低版本1.15安装prometheus+grafana进行Spring boot数据采集

目录

一、背景:

二、实施过程

1).安装地址:https://github.com/prometheus-operator/kube-prometheus

2).安装方式两种,

3).安装Prometheus需要对照k8s集群版本。

4).拉去prometheus

5).导入镜像,替换镜像地址

6).部署

7).开放端口

8).访问

9).根据业务添加prometheus监控项

10).镜像验证是否完成监控项的添加

11).配置Grafana

12).下载对应的grafana的dashboard,镜像页面展示,地址如下:


一、背景:

作为一名运维工程师,现在业务升级,需要安装prometheus,用于监控微服务,在这做一个记录,以后不想在去查找,有需要的可以借鉴,交流。

二、环境:

1、集群安装

2、k8s版本为1.15.1

3.选择了prometheus 2.11.0 

4.选择grafana版本为 6.2.2

5.选择node-exporter0.18.0

6.kube-state-metrics1.7.2版本

7.alertmanager 0.18.0

8.k8s-prometheus-adater 0.5.0版本

9.addon-resizer 1.8.4

10.kube-rbac-proxy 0.4.1

三、实施过程

1).安装地址:https://github.com/prometheus-operator/kube-prometheus

2).安装方式两种,

一是,prometheus安装在服务器上,采集组件安装在k8s集群内

二是,都安装在集群内部(建议安装在集群内部,较为简单)

3).安装Prometheus需要对照k8s集群版本。

git clone https://github.com/prometheus-operator/kube-prometheus   #拉去部署文件
cd kube-prometheus
git tag    #先查看有哪些版本分支
git checkout 0.4.0   #切换分支

这里我出现的问题是,因为安装prometheus需要对照底层k8s的版本,但是我的k8s版本是1.15.1,早都不用的垃圾版本,所以,通过官网查询要去找0.2.0版本,这里找了很久.....,一定找好对应的版本,会避免很多事情。

4).拉去prometheus

5).导入镜像,替换镜像地址

因为是本地部署,没有联网,所以需要修改镜像地址。

cd kube-prometheus
grep -rn image:  ./manifests    

挨个去替换分别我替换的镜像为:

grafana.tark8s-proemtheus-adapter.tarkube-rbac-proxy.tarkube-state-metrics.tarnode-exporter.tarprometheus2.11.0.tarprometheus-opratoraddon-resizeralertmanagerprometheus-config-reloaderconfig-reloader 

由于版本太低,导致一些镜像不好找,希望大家不会遇到这种情况,这些镜像把我找死了

6).部署

cd kube-prometheus
kubectl apply -f ./manifests   #部署之后可能会有一些镜像不兼容的情况如果出现镜像不兼容,需要查看每个pod的日志和详细情况,找出对应的镜像名称以及版本,然后去下载更换。

7).开放端口

因为在集群里部署,prometheus和grafana做的都是clusterIP

需要修改为nodeport,ingress,或者metalb,这里我修改为了nodeport,让服务发出来

8).访问

在浏览器里输入,http://localhost:30080 #这里我映射的端口为30080,这里根据个人修改的配置

                            http://localhost:30081  #同上

ps:到这里不要高兴的太早,真正的好戏才是最后登场,fucking.......

9).根据业务添加prometheus监控项

因为prometheus在k8s集群里,需要去找配置文件挂载路径

通过查看pod的yaml,--config.file 参数指定了配置文件的路径为 /etc/prometheus/config_out/prometheus.env.yaml

Volumes 部分,可以看到以下内容

这表示配置文件是通过 Secret 挂载的,SecretNameprometheus-k8s。

PS:这里建议先做备份,如果改不好还有回退的机会

kubectl get secret prometheus-k8s -n monitoring -o yaml #这会显示 Secret 中的内容,通常配置文件是经过 base64 编码的kubectl get secret prometheus-k8s -n monitoring -o yaml | tee prometheus-k8s-secret.yaml.bakkubectl get secret prometheus-k8s -n monitoring -o jsonpath='{.data.prometheus\.yaml\.gz}' | base64 -d  > prometheus.yaml.gz  #secret解码内容gunzip prometheus.yaml.gz          #解压缩包,查看内容vi prometheus.yaml          #进行配置,添加监控项gzip prometheus.yaml       #将修改好的文件,重新压缩文件base64 prometheus.yaml.gz > prometheus.yaml.gz.base64   #重新编码kubectl create secret generic prometheus-k8s -n monitoring --from-file=prometheus.yaml.gz --dry-run=client -o yaml | kubectl apply -f -   #一般这种都会好,但是我这里出现了问题

secret被operator调用,跟改不了的情况

这里出现的原因是:

直接原因,云控制台编辑时未自动刷新资源版本(但是在底层也不行)

根本原因,prometheus Operator 在后台持续同步Secret,(通过helm或者Operator管理)

解决方案:

步骤一:禁用Operator自动同步(临时)

kubectl -nmonitoring patch promehtus k8s --type merge  -p '{"spec":{"paused":true}}'
#暂停Prometheus Operator 自动协调(避免冲突)
#作用:阻止Operator覆盖修改内容,保持约5分钟窗口期

步骤二:通过底层命令安全更新Secret

kubectl create secret generic prometheus-k8s -n monitoring --from-file=prometheus.yaml.gz --dry-run=client -o yaml | kubectl apply -f - #这里不能apply,解决方案如下kubectl delete secret prometheus-k8s -nmonitoring #首先删除之前的包kubectl create -f prometheus.yaml   #将之前备份的源文件,把secret内容更改为新的之后,进行创建

10).镜像验证是否完成监控项的添加

kubectl get secret prometheus-k8s -n monitoring -o yaml

访问prometheus的端口,页面的status中target里查看是否有内容(因为工作内容原因,无法放图,大家部署到这一步的时候,会看到的....)

11).配置Grafana

1、进入页面之后,点击左边齿轮里的Data Sources

2、右边的Add data source进行数据源添加

3、选择Prometheus ,配置url,起个名字

4、点击下面的Test

12).下载对应的grafana的dashboard,镜像页面展示,地址如下:

https://grafana.com/grafana/dashboards/   #地址

如果是离线部署,建议下载json格式的,然后进行导入,在grafana页面左边有一个+号,点击进去有一个Improt,右边有一个绿色的Upload .json File的接口,导入你下载的json文件,然后会有几个选项如下

Options:

Name:随便起个名字

Folder:给个目录

Uid:自动会出现

prometheus:选择数据源

然后点击Import(Overwrite)提交就完成了

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

OKOK,到这里就结束了,因为我这里的版本太低,所以导致安装不顺利,希望大家不会遇到,如果有k8s版本为1.15.的需要安装prometheus可以参考一下。

http://www.xdnf.cn/news/13843.html

相关文章:

  • npx 的作用以及延伸知识(.bin目录,npm run xx 执行)
  • AI 推理框架详解,包含如COT、ReAct、LLM+P等的详细说明和分类整理,涵盖其原理、应用场景及对比分析
  • Linux 线程互斥
  • Power BI 中 EXCEPT() 函数的使用指南
  • 悟空CRM系统部署+迁移
  • Vue.directive自定义v-指令
  • 【AI部署】腾讯云GPU-常见故障—SadTalker的AI数字人视频—未来之窗超算中心 tb-lightly
  • JAVA中多线程的经典案例
  • 4.黑马学习笔记-SpringMVC(P43-P47)
  • 学习设计模式《一》——简单工厂
  • 算法驱动光场革命:SLM技术引领智能光学新时代
  • 用 NLP + Streamlit,把问卷变成能说话的反馈
  • 红宝书第五十一讲:Web Components:创造你自己的HTML标签
  • 习题2.3 数列求和-加强版
  • PHP发送邮件
  • 【刷题Day19】HTTP的各个版本(浅)
  • 记录git stash误删除恢复方法
  • 探索 JavaScript 中的 Promise 高级用法与实战
  • 什么是MMOE?
  • 坐标上海,20~40K的面试强度
  • Android Studio 常见报错
  • 计算机网络——应用层
  • 济南通过首个备案生活服务大模型,打造行业新标杆
  • 【人工智能】Prompt攻击与防范策略总结
  • 2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析
  • ELF2开发板的ubuntu系统的ax200 wifi配网
  • Vue 3.0 Composition API 与 Vue 2.x Options API 的区别
  • 8.Rust+Axum 数据库集成实战:从 ORM 选型到用户管理系统开发
  • 2025MathorcupC题 音频文件的高质量读写与去噪优化 保姆级教程讲解|模型讲解
  • Docker中镜像、容器、仓库三者之间的关系