K8S集群源码部署Prometheus监控(附有常用监控模板)

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

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

Prometheus 有非常多的优点:灵活的数据模型、简单易用、高效的查询语言、拉取模型、高可扩展性、开源社区支持,告警系统。这些优点使得 Prometheus 成为现代 IT 基础设施监控的热门选择。

如果要全面了解 Prometheus,需要先部署一个测试环境。

在 K8S 上部署 prometheus 一般有两种常用的方式,一种是源码安装,一种是 helm 安装。

监控 K8S 效果展示

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

我下面就介绍一下使用源码方式安装 prometheus。

在安装之前需要查看一下兼容性,根据自己的 K8S 版本选择对应的 prometheus 版本

下载地址:https://github.com/prometheus-operator/kube-prometheus

K8S 集群源码部署 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

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

(2)修改 granfana 暴露端口为 30000


vim grafana-service.yaml

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

(3)修改 altermanager 暴露端口为 30093


vim alertmanager-service.yaml 

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

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

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

发现有几个 pod 没有起来,镜像拉取失败。

1.4 解决镜像问题

在我部署过程重要出现了 grafana,state-metrics 和 ada 这三个 pod 无法拉取的情况。通过更改镜像仓库来解决

(1)Adapter 镜像问题

在镜像前面添加 docker.m.daocloud.io

有些是将镜像修改为:v5cn/prometheus-adapter:v0.12.0

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

(2)grafana 镜像问题

在镜像前面添加 docker.m.daocloud.io

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

(3)kubeStateMetrics 镜像问题

将镜像改为 quay.io/coreos/kube-state-metrics:latest

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

解决完以上镜像问题,再执行部署


cd /data/kube-prometheus/manifests/
kubectl apply -f .

查看 deployment,Service 和 pod 的情况

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

2 使用 promtheus 和 grafana

2.1 登录界面

(1)grafana 登录界面

默认登录密码为admin/admin,首次登录需要修改密码K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

(2)prometheus 登录界面

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

(3)altermanager 登录界面

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

2.2 导入监控模版

登录 grafana 后,查看数据源是否正常,点击 Test 一下

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

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

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

2.3 常用的监控模板

Dashboard ID:15661

 可以查看集群的整体资源状态

K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

Dashboard ID:9730

主要展示 Deployment,Pod 等重要资源对象的可用情况和使用率K8S 集群源码部署 Prometheus 监控(附有常用监控模板)

© 版权声明

☆ END ☆
喜欢就点个赞吧
点赞0 分享
评论 抢沙发
  • 武穆逸仙

    昵称

  • 取消回复

    请填写用户信息:

图片正在生成中,请稍后...