Prometheus 是一个开源的监控和警报工具,特别适合云原生环境,下面是Prometheus的架构图。
Prometheus有非常多的优点:灵活的数据模型、简单易用、高效的查询语言、拉取模型、高可扩展性、开源社区支持,告警系统。这些优点使得 Prometheus 成为现代 IT 基础设施监控的热门选择。
如果要全面了解Prometheus,需要先部署一个测试环境。
在K8S上部署prometheus一般有两种常用的方式,一种是源码安装,一种是helm安装。
监控K8S效果展示
我下面就介绍一下使用源码方式安装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.14.0.tar.gz
如果网络不好,可以在github上下载后再上传到服务器。
1.2 修改配置
上传软件包后解压
# 解压
tar -xvf kube-prometheus-0.14.0.tar.gz
# 重命名
mv kube-prometheus-0.14.0 kube-prometheus
执行基本配置安装
进入到解压后目录,可以看到有个manifests目录这里面是我们所需的yaml,并且先运行manifests目录下setup中的yaml文件
[root@k8s-master data]# cd kube-prometheus
# 使用tree命令可以看到所有目录结构
tree
# 进入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
(2)修改granfana暴露端口为30000
vim grafana-service.yaml
(3)修改altermanager暴露端口为30093
vim alertmanager-service.yaml
1.3 安装prometheus
(1)执行安装
cd /data/kube-prometheus/manifests/
kubectl apply -f .
(2)删除不必要的网络策略
删除grafana、prometheus以及alertmanger的网络策略NetworkPolicy,如果不删除会导致安装后外网访问不了这三个资源。
cd /data/kube-prometheus/manifests
kubectl delete -f prometheus-networkPolicy.yaml
kubectl delete -f grafana-networkPolicy.yaml
kubectl delete -f alertmanager-networkPolicy.yaml
(3)查看安装情况
kubectl get pod -n monitoring
发现有几个pod没有起来,镜像拉取失败。
1.4 解决镜像问题
在我部署过程重要出现了grafana,state-metrics和ada这三个pod无法拉取的情况。通过更改镜像仓库来解决
(1)Adapter镜像问题
在镜像前面添加docker.m.daocloud.io
有些是将镜像修改为:v5cn/prometheus-adapter:v0.12.0
(2)grafana镜像问题
在镜像前面添加docker.m.daocloud.io
(3)kubeStateMetrics镜像问题
将镜像改为quay.io/coreos/kube-state-metrics:latest
解决完以上镜像问题,再执行部署
cd /data/kube-prometheus/manifests/
kubectl apply -f .
查看deployment,Service和pod的情况
2 使用promtheus和grafana
2.1 登录界面
(1)grafana登录界面
默认登录密码为admin/admin,首次登录需要修改密码
(2)prometheus登录界面
(3)altermanager登录界面
2.2 导入监控模版
登录grafana后,查看数据源是否正常,点击Test一下
导入监控模板,可以从grafana官网查找:
2.3 常用的监控模板
Dashboard ID:15661
可以查看集群的整体资源状态
Dashboard ID:9730
主要展示Deployment,Pod等重要资源对象的可用情况和使用率
本次分享先到这里,后面会将继续深入讲解prometheus的理论知识和告警配置。
码字不易,戳下方名片,关注+星标
往期精彩文章