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 等重要资源对象的可用情况和使用率