乐趣区

容器监控实践—Prometheus数据可视化

一. 概述
Prometheus 自带了一个 web 服务,包括一个默认的 dashboard,可以使用表达式查询并进行图表可视化,默认服务的地址为:http://prometheus_ip:9090
如下图:

自带的 web 展示一般只用于表达式快速输入或者临时调试,因为默认服务没有鉴权,且图表表达能力有限,因此不会作为线上可视化方案,正式的监控数据可视化一般使用 Grafana 来配套
prometheus 可视化方案:

自带 web 服务:在验证指标时是非常好用的,grafana 虽然是作为可视化展示,但一般是先确认表达式,才去配置到 grafana 面板
grafana 可视化

Console templates: 官方给的一种选择,使用 go templete 来实现,使用难度较大,不太推荐

promviz:开源项目,不算是监控图,可以做集群实时流量的可视化。

二. Grafana 可视化
Grafana 是一个开源的图表可视化系统,简单说图表配置比较方便、生成的图表比较漂亮。并且模板众多,默认支持了 prometheus 作为数据源,也是 prometheus 官方推荐方案
这里只对 grafana 做简单介绍,更多详细的内容参考展示 -Grafana
2.1 部署
grafana 是很成熟的 (商业) 项目,可以在官网下载客户端,或者在 github 主页自己 build 为镜像。
主要的配置文件为 conf 文件夹下的 defaults.ini 文件,常用的配置可以配置在文件中,如果是 docker 运行或者在 k8s 中运行,可以使用 env 的方式,传入全局变量,将覆盖原有的 defaults.ini 配置。
使用 docker 运行:
docker run -d –name=grafana -p 3000:3000 grafana/grafana
访问:http://127.0.0.1:3000
账号:admin 密码:admin
2.2 配置
第一步:配置数据源
进入 grafana 后,第一步需要配置数据源,grafana 默认支持 prometheus 作为数据源,因此 Type 直接选择 Prometheus

Http 的 url 地址为 prometheus 的服务地址,如果是同一个 pod 内,可以 127.0.0.1:9090,不同 pod 的话,可以使用 svc 地址:http://prometheus.kube-system…:9090
数据源配置后,点击 save&test,可以验证数据源是否可用:

第二步:配置面板:

点击左侧的加号,可以添加面板(dashboard),并在该面板中添加各种类型的图表。
对于面板,可以设置变量,用于下拉框筛选等场景,如设置机器变量:节点信息

然后使用该变量,配置查询语句:得到各节点的 cpu 使用率

面板 demo

配置完成后,可以出现类似图表,可以点击分享按钮,将本面板分享为 json 文件

也可以筛选时间周期,设置自动刷新

上图的 json 文件如下,仅供参考(需要安装 node-exporter)
json 文件:https://raw.githubusercontent…
本文为容器监控实践系列文章,完整内容见:container-monitor-book

退出移动版