helm3 部署 prometheus 监控

prometheus 架构简介

用 helm 来部署 prometheus 来监控我们的 k8s 集群。

1.png

exporter 是用来收集数据的,要监测不同的东西,就需要有不同的 exporter。比如要监测 mysql,需要创建一个 mysql 的 exporter,要监测 pod 则需要 pod 的 exporter,要监测 kube-proxy 则需要一个 kube-proxy

prometheus server 会从 exporter 获取并存储数据,然后通过 grafana 进行画图,这样可以 以图形化的界面展示出当前环境的负载情况,比如看下图:

2.png

开始部署 prometheus

因为前面创建了很多的 pod,为了看的清晰一些,我们单独创建一个命名空间 mon,并进 入此命名空间。

[root@vms10 ~]# kubectl create ns mon
namespace/mon created
[root@vms10 ~]# kubens mon
Context "kubernetes-admin@kubernetes" modified.
Active namespace is "mon".
[root@vms10 ~]#

从 ali 仓库下载 prometheus-operator

[root@vms10 ~]# helm pull ali/prometheus-operator
[root@vms10 ~]#
解压并进入
[root@vms10 ~]# cd prometheus-operator/
[root@vms10 prometheus-operator]#

然后开始安装 prometheus-operator
3.png

查看当前 pod 运行状况:

4.png

查看当前的 svc:
5.png

把 mon-grafana 的服务类型改为 NodePort,获得 nodeport 端口为 31041(这个端口是随 机生成的,每个人的不一样,自己看自己的端口)。

在浏览器里输入 192.168.26.10:31041

查看密码

查看当前命名空间里的 secret:

[root@vms10 prometheus-operator]# kubectl get secrets | grep grafana
mon-grafana Opaque 3 10m
mon-grafana-test-token-gpmcd kubern.....-token 3 10m
mon-grafana-token-vg5ql kubernete....-token 3 10m
[root@vms10 prometheus-operator]#

查看 mon-grafana 的具体信息:

[root@vms10 prometheus-operator]# cd
[root@vms10 ~]#
[root@vms10 ~]# kubectl get secrets mon-grafana -o yaml | head -5apiVersion:
v1data:
admin-password: cHJvbS1vcGVyYXRvcg==
admin-user: YWRtaW4=
ldap-toml: ""
[root@vms10 ~]#

这里黑体字 admin-user 是用户名,admin-password 是密码,分别是用 base64 编码过的, 现在需要解码:

[root@vms10 ~]# echo -n "YWRtaW4=" | base64 -d
admin[root@vms10 ~]#
[root@vms10 ~]# echo -n "cHJvbS1vcGVyYXRvcg==" | base64 -d
prom-operator[root@vms10 ~]#
[root@vms10 ~]#

可以得到,用户名为 admin,密码为 prom-operator,然后登录,之后依次点击设置

Q.E.D.