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.tar

k8s-proemtheus-adapter.tar

kube-rbac-proxy.tar

kube-state-metrics.tar

node-exporter.tar

prometheus2.11.0.tar

prometheus-oprator

addon-resizer

alertmanager

prometheus-config-reloader

config-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.bak



kubectl 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可以参考一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值