版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1433264
- [1、Prometheus & Grafana 介绍](https://cloud.tencent.com/developer/audit/support-plan/4867117#1Prometheus__Grafana__3)
- [2、环境、软件准备](https://cloud.tencent.com/developer/audit/support-plan/4867117#2_6)
- [3、Rancher 2.x 应用商店](https://cloud.tencent.com/developer/audit/support-plan/4867117#3Rancher_2x__9)
- [4、一键式部署 Prometheus](https://cloud.tencent.com/developer/audit/support-plan/4867117#4_Prometheus_23)
- [5、验证 Prometheus + Grafana](https://cloud.tencent.com/developer/audit/support-plan/4867117#5_Prometheus__Grafana_42)
- [5.1、NodePort 方式](https://cloud.tencent.com/developer/audit/support-plan/4867117#51NodePort__43)
- [5.2、Ingress Host 方式](https://cloud.tencent.com/developer/audit/support-plan/4867117#52Ingress_Host__56)
Prometheus 是一套开源的系统监控、报警、时间序列数据库的组合,Prometheus 基本原理是通过 Http 协议周期性抓取被监控组件的状态,而通过 Exporter Http 接口输出这些被监控的组件信息,而且已经有很多 Exporter 可供选择。Grafana 是一个可视化仪表盘,它拥有美观的图标和布局展示,功能齐全的仪表盘和图形编辑器,默认支持 CloudWatch、Graphite、Elasticsearch、InfluxDB、Mysql、PostgreSQL、Prometheus、OpenTSDB 等作为数据源。我们可以将 Prometheus 抓取的数据,通过 Grafana 优美的展示出来,非常直观。
上一篇文章 Rancher 2.x 负载均衡配置及使用 中,我们是在虚拟机上安装 RancherOS 系统,然后在本机上启动 Rancher,然后通过 RKE 在 RancherOS 上搭建 Kubernetes 集群,这里需要的环境、软件准备跟之前一样,那么我们就直接在该环境下通过 Rancher 一键式安装 Prometheus + Grafana 监控 Kubernetes 集群。其他方式搭建 Prometheus + Grafana 可以参照之前文章,本地安装可以参照 初试 Prometheus + Grafana 监控系统搭建并监控 Mysql,在 Kubernetes 集群中搭建可以参照 部署 Prometheus Operator 监控 Kubernetes 集群。
Rancher 2.x 提供了应用商店功能,通过应用商店,我们可以非常方便的安装各服务到 Kubernetes 集群中,而且真的是一键式,非常方便了有木有。Rancher 应用商店默认支持官方认证
、Helm Stable
、Helm Incubator
三种类型的仓库,当然也支持自定义类型的商店。
注意:默认 Rancher 只开启了官方认证方式,即由 Rancher 维护的官方模板仓库,如果想也支持 Helm Stable
仓库,那么需要将开关设置为 启动
即可,那么 Rancher 会自动同步 Helm 模板仓库到本地。
稍等片刻,同步完成后,就可以切换到任意集群任意 project 下应用商店页面,点击 启动
就可以查看到所有支持的模板应用啦!例如下图显示了所有官方认证支持的模板应用。
可以看到其中有很多熟悉且常用的模板服务,例如一些常用基础服务:docker-registry
、efk
、fluentd-aggregator
、grafana
、istio
、kubernetes-dashboard
、prometheus
,还有一些常用数据存储服务:hadoop
、mariadb
、mysql
、nfs-provisioner
、redis
等等。注意:这只是 Rancher 维护的官方模板仓库,Kubernetes 维护的模板仓库有更多服务,这里就不在截图列举了,太多了。
回到正题,接下来我们就可以通过 Rancher 官方提供的模板来一键式部署 Prometheus。登录 Rancher UI,切换到 my-rancheros
集群下 Default
项目下的应用商店页面,找到 Prometheus 点击 “查看详情” 进入到 Prometheus 配置页面。可以看到 Rancher 默认会将一些可配置信息已经提取出来了,例如 Image
、Service Type
、Ingress
、Volume
等参数,我们可以根据实际应用需要来配置它们。
说明一下:
Use Default Image
项我选择否,因为默认中有两个镜像,由于墙的问题我本地网络无法获取的到,所以这里需要修改 quay.io/coreos/kube-state-metrics
为 huwanyang168/kube-state-metrics
,修改 quay.io/coreos/grafana-watcher
为 huwanyang168/grafana-watcher
,以上两个镜像对应的版本我已经上传到个人 Dockerhub 仓库。Hostname
我配置 Ingress 负载均衡域名为 my-prometheus.k8s.com
,它会自动创建对应 Ingress,方便外部访问。Grafana Admin password
项需要设置一下初始密码,方便登录 UI 页面。Hostname
我配置 Ingress 负载均衡域名为 my-grafana.k8s.com
。NodePort Http Port
项我设置为 30005
,这样可以直接外部通过 NodePort 方式访问。一切配置完毕,我们还可以点击预览,选择对应的模板,看下修改配置后的模板文件是怎样的,最后点击 “启动” 就会开始自动部署啦!稍等片刻,拉取镜像会费点时间,如果一切部署正常,在工作负荷、负载均衡、服务发现页面下 prometheus 命令空间下可以看到如下:
此时,切换到应用商店页面,就可以列举出来我们已经部署的模板服务。
点击应用名称 prometheus
进入到该模板服务详情页面,这里可以看到该服务所有启动的资源以及一些注释说明信息。
最后,我们来验证一下通过模板仓库部署的 Prometheus 服务是否能够正常运行并访问。首先本地通过 NodePort 方式访问一下 Grafana 页面,Grafana 服务自动分配的端口号为 30424
,本地访问 http://192.168.99.102:30424
地址,使用上边配置的 Grafana Admin password
登录一下即可。
默认安装的 Grafana 已经配置好了 8 个 Dashboard,涉及到 Deployment、Nodes、Pods、Kubernetes Cluster Status 等监控仪表盘。
我们选择 Kubernetes Capacity Planning
Dashboard 监控一段时间,得到的监控图像如下,妥妥没问题。
接下来,本地访问一下 http://192.168.99.102:30773
地址,Prometheus 服务自动分配的端口号为 30773
,也是妥妥没有问题的。
最后,本地访问一下 http://192.168.99.102:30005
地址,上边 Alertmanager 配置的 NodePort 端口号为 30005
,也是妥妥没有问题的。
上边启动时,我们配置了使用 Ingress 来做 L7 负载均衡,并且配置了 Grafana 服务 Hostname 为 my-grafana.k8s.com
,Prometheus 服务 Hostname 为 my-prometheus.k8s.com
,那么本地绑定一下 Host 验证一下吧!
$ echo "192.168.99.102 my-grafana.k8s.com my-prometheus.k8s.com" >> /etc/hosts
分别访问一下,妥妥没有问题的。
参考资料