Prometheus 是一个开源的监控和警报工具,特别适合云原生环境,Prometheus的架构图。

Prometheus有非常多的优点:灵活的数据模型、简单易用、高效的查询语言、拉取模型、高可扩展性、开源社区支持,告警系统。这些优点使得 Prometheus 成为现代 IT 基础设施监控的热门选择。
如果要全面了解Prometheus,需要先部署一个测试环境。
在K8S上部署prometheus一般有两种常用的方式,一种是Operator安装,一种是helm安装。
监控K8S效果展示

我下面就介绍一下使用operator方式安装prometheus。
在安装之前需要查看一下兼容性,根据自己的K8S版本选择对应的prometheus版本
下载地址:https://github.com/prometheus-operator/kube-prometheus
1 安装prometheus
1.1 下载软件包
wget https://github.com/prometheus-operator/kube-prometheus/archive/refs/tags/v0.16.0.tar.gz
如果网络不好,可以在github上下载后再上传到服务器。
1.2 修改配置
上传软件包后解压
# 解压
tar -xvf kube-prometheus-0.16.0.tar.gz
# 重命名
mv kube-prometheus-0.16.0 kube-prometheus
执行基本配置安装
进入到解压后目录,可以看到有个manifests目录这里面是我们所需的yaml,并且先运行manifests目录下setup中的yaml文件
[root@k8s-master data]# cd kube-prometheus
# 进入manifests目录
[root@k8s-master kube-prometheus]# cd manifests/
# 执行setup文件夹,将会为prometheus创建名称空间和一些基础清单
[root@k8s-master manifests]# kubectl create -f setup/
修改暴露端口
主要修改prometheus,grafana和alertmanager的Service类型为NodePort,默认是ClusterIP
【温馨提示】端口范围:30000-32767,也可以不指定具体端口,会随机生成一个
(1)修改prometheus暴露端口为30090
vim prometheus-service.yaml
spec:
type: NodePort
ports:
- name: web
port: 9090
targetPort: web
nodePort: 30090
(2)修改granfana暴露端口为30000
vim grafana-service.yaml
spec:
type: NodePort
ports:
- name: http
port: 3000
targetPort: http
nodePort: 30000
(3)修改altermanager暴露端口为30093
vim alertmanager-service.yaml
spec:
type: NodePort
ports:
- name: web
port: 9093
targetPort: web
nodePort: 30093
1.3 安装prometheus
(1)执行安装
cd /data/kube-prometheus/manifests/
kubectl apply -f .
(2)删除不必要的网络策略
注意:新版添加了NetworkPolicy,可能会导致grafana、prometheus以及alertmanger等服务无法访问,所以需要删除掉:
kubectl delete networkpolicy --all -n monitoring
(3)查看安装情况
kubectl get pod -n monitoring
发现grafana,s
[root@k8s-master manifests]# kubectl get pod -n monitoring
NAME READY STATUS RESTARTS AGE
alertmanager-main-0 2/2 Running 0 58m
alertmanager-main-1 2/2 Running 0 58m
alertmanager-main-2 0/2 Init:ErrImagePull 0 58m
blackbox-exporter-697ff675cd-2l67w 3/3 Running 0 61m
grafana-765466c5cd-x5fdq 1/1 Running 0 61m
kube-state-metrics-885669f79-hmqgt 3/3 Running 0 44m
node-exporter-rbkq7 2/2 Running 0 61m
node-exporter-vllkd 2/2 Running 0 61m
node-exporter-whqwj 2/2 Running 0 61m
prometheus-adapter-74c49c584b-bvlx8 1/1 Running 0 56m
prometheus-adapter-74c49c584b-svfmp 1/1 Running 0 56m
prometheus-k8s-0 0/2 Init:0/1 0 19m
prometheus-k8s-1 2/2 Running 0 19m
prometheus-operator-5869ccc896-pln49 2/2 Running 0 61m
tate-metrics和adapter这三个pod镜像拉取失败,这种一般通过添加镜像加速器来解决。
1.4 解决镜像问题
(1)Adapter镜像问题
在镜像前面添加m.daocloud.io
[root@k8s-master manifests]# grep image prometheusAdapter-deployment.yaml
image: m.daocloud.io/registry.k8s.io/prometheus-adapter/prometheus-adapter:v0.12.0
# 重新加载
[root@k8s-master manifests]# kubectl replace -f prometheusAdapter-deployment.yaml
(2)grafana镜像问题
在镜像前面添加docker.m.daocloud.io
[root@k8s-master manifests]# grep image grafana-deployment.yaml
image: docker.m.daocloud.io/grafana/grafana:12.1.0
# 重新加载
[root@k8s-master manifests]# kubectl replace -f grafana-deployment.yaml
(3)kubeStateMetrics镜像问题
在镜像前面添加m.daocloud.io
image: m.daocloud.io/registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.16.0
image: quay.io/brancz/kube-rbac-proxy:v0.19.1
image: quay.io/brancz/kube-rbac-proxy:v0.19.1
# 重新加载
kubectl replace -f kubeStateMetrics-deployment.yaml
查看deployment,Service和pod的情况
kubectl get deploy,svc,po -n monitoring
2 使用promtheus和grafana
2.1 登录界面
(1)grafana登录界面
默认登录密码为admin/admin,首次登录需要修改密码!
192.168.9.225:30000
(2)prometheus登录界面
192.168.9.225:30090
(3)altermanager登录界面
192.168.9.225:30093
2.2 导入监控模版
登录grafana后,自动会连接到prometheus中

导入监控模板,可以从grafana官网查找:

2.3 常用的监控模板
Dashboard ID:15661
可以查看集群的整体资源状态

Dashboard ID:9730
主要展示Deployment,Pod等重要资源对象的可用情况和使用率

至此,Prometheus监控搭建好,后续再分享Alertmanager相关的告警知识。



3239

被折叠的 条评论
为什么被折叠?



