当前位置: 首页 > 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可以参考一下。

相关文章:

  • test ssl java
  • Java 序列化与反序列化终极解析
  • pointnet pointnet++论文笔记
  • 麒麟操作系统漏洞修复保姆级教程弱(一)算法漏洞修复
  • Vue3 + TypeScript中provide和inject的用法示例
  • 基于ubuntu24.10安装NACOS2.5.1的简介
  • 第18周:对于ResNeXt-50算法的思考
  • 51单片机实验一:点亮led灯
  • 2025妈妈杯Mathorcup数学建模竞赛选题建议+初步分析
  • 路由交换网络专题 | 第五章 | ISIS | RIP | 路由引入 | 策略路由
  • Crawl4AI:重塑大语言模型数据供给的开源革命者
  • Vue Teleport 及其在 SSR 中的潜在问题
  • 蓝桥杯之前缀和
  • 基于瑞芯微RK3576国产ARM八核2.2GHz A72 工业评估板——Docker容器部署方法说明
  • Ubuntu20.04 部署llama-factory问题集
  • Tensorflow实现用接口调用模型训练和停止训练功能
  • openGauss基于PITR恢复测试
  • 第五章 制作工具优化
  • VUE简介
  • 【 图像梯度处理,图像边缘检测】图像处理(OpenCv)-part6
  • 汕头22岁女子手术成功却意外脑死亡,家属称缺氧30分钟医生未发觉
  • 巡视杭州市工作动员会召开,市长姚高员表态
  • 哈马斯:愿就达成一项“全面”协议进行谈判
  • 中华人民共和国和马来西亚关于构建高水平战略性中马命运共同体的联合声明
  • 商务部等9部门联合印发《服务消费提质惠民行动2025年工作方案》
  • 今年世界读书日“世纪好书”特别书单发布