Kubernetes运行监控-使用Helm快速部署Prometheus和Grafana

Kubernetes运行监控-使用Helm快速部署Prometheus和Grafana

使用Helm快速部署Pormetheus和Grafana非常方便,很多手工部署的方法不再需要了。

Kubernetes运行监控分为宿主机、容器以及Kubernetes集群的Node、Deployment、Replicaset、Storage、Pod、Service等数量和状态等方面,可以使用Heapster+Influxdb+Grafana的组合,或者使用Prometheus + Grafana的组合,传统的ELK方案无法穿透集群、而且集中于离线的方式不太适合Kubernetes中应用。

这里重点介绍KPG(Kubernetes+Prometheus+Grafana)的监控方案,功能全面、指标详细、模版丰富,更重要的是可以直接运行在Kubernetes集群之中。目前,Prometheus和Grafana部署都支持Helm了,安装非常方便。

简介

Prometheus主要用于度量指标的产生和收集,可以即时查询各种系统指标并以曲线图、表方式展示。Grafana提供图表化的监控面板,可以直接访问Prometheus产生的数据源并组装为可视化面板,支持监控面板的定制、保存和共享,需要与Prometheus配合起来使用。目前,已经有大量的Kubernetes监控面板面板模版可以使用,可以从https://grafana.com上下载或直接import进来使用,非常快捷。

1、准备存储卷

参考“基于Kubernetes的容器存储系统”(https://my.oschina.net/u/2306127/blog/1822634)中的方法创建虚拟存储系统,创建StorageClass或者PVC,为监控系统所用。

Prometheus支持StorageClass方式指定存储系统,安装时系统自动产生pv卷。或者指定现存的pvc进行重用。

2、安装Prometheus

可以从helm的远程chart库直接安装,或者将该chart拷贝到自己的目录,修改参数后安装。

直接安装

指定storageClass为nfs,自动产生pv:

helm install --namespace monitor --name prometheus stable/prometheus \
  --set alertmanager.persistentVolume.storageClass="nfs" \
  --set server.persistentVolume.storageClass="nfs"

更多的参数,可以参考:

这里为了管理方面,我们将其安装在Kubernetes的命名空间monitor中,同时命名实例版本为prometheus,安装完毕后运行 helm list 即可列出。

本地安装

如果复制到本地,可以直接修改参数,进去目录将values.yaml里的参数修改后运行helm即可,如:

helm install --namespace monitor --name prometheus ./prometheus
  • 注意
    • 跟上面的网络安装一样,alertmanager和server的storageClass参数需要分别指定。
    • storageClass或者pv的指定是必须的,如果没有指定,运行helm install会失败。

映射服务

缺省的服务安装为ClusterIP,端口9090。需要通过port-forward映射出来(grafana运行在集群上,可以直接访问的),集群外面才可以访问。如下所示:

export POD_NAME=$(kubectl get pods --namespace monitor -l "app=prometheus,component=server" -o jsonpath="{.items[0].metadata.name}")

kubectl --namespace monitor port-forward $POD_NAME 9090

然后浏览器打开 http://127.0.0.1:9090就可以访问Prometheus的主界面了。

3、安装Grafana

远程安装

方法与Prometeheus基本一样,我们将其安装到同一个命名空间monitor中。如下:

helm install  --namespace monitor --name grafana stable/grafana \
  --set persistence.storageClassName="nfs"

更多的参数,可以参考:

获取admin密码:

kubectl get secret --namespace monitor grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

本地安装

也可以复制chart到本地,修改参数后安装,如下:

helm install  --namespace monitor --name grafana ./grafana

映射服务

export POD_NAME=$(kubectl get pods --namespace monitor -l "app=grafana" -o jsonpath="{.items[0].metadata.name}")
     kubectl --namespace monitor port-forward $POD_NAME 3000
  • 注意
    • 我这里去掉了prometeus里的component筛选项,有的文档说要加上是有问题的,因为目前的这个版本chart并没有这个选项,会导致列表项为空而出错。
    • 也可以修改service的网络类型为nodeip,集群外就可以直接访问了,不需要端口映射。或者使用其他的代理来访问,不过需要注意安全性问题,不要把服务地址暴露到因特网上。

4、使用监控面板

现在,可以使用浏览器打开 http://127.0.0.1:3000,看到Grafana的面板界面。首先创建prometheus的数据源,注意里面的ip地址为prometheus的service地址(ClusterIP),不是主机地址。然后创建Dashboard即可。

选取“+”图标,import进去kubernetes-tool/monitor/dashboard下的面板json文件,或者直接import一个  https://grafana.com上的模版,即可看到监控面板的情况(有的有一些问题,需要自行试验、选择)。也可以自己设计面板、然后保存起来,或者分享给别人使用。

 

转载于:https://my.oschina.net/u/2306127/blog/1828656

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值