Skip to content

前面我们通过Prometheus获取到了node-exporter提供的主机监控指标,本文将学习如何将监控指标可视化。 Prometheus自身提供了对于指标的查询以及简单的图表展示功能,但对于企业级的监控展示而言,这是远远不够的。

对此,Prometheus官方推荐的可视化方案是与Grafana结合,来实现丰富的监控展示效果。

一. Grafana简介

Grafana是一个开源的可视化和分析工具,它支持Prometheus、elasticsearch、graphite、influxdb 等众多的数据源,并提供了强大的界面编辑器和可视化模板。

该产品具有以下几个特点:

  1. 可视化:快速灵活的图形类型和多种选项,面板插件支持多种不同的方式来可视化指标和日志,例如:热图、折线图、图表等多种展示方式;
  2. 混合展示:在同一个图表中混合不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
  3. 数据源支持:支持Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,Mysql等多种数据源;
  4. 告警通知:支持以可视化方式定义警报规则,并会不断的计算数据,在指标达到阀值时通过Slack、PagerDuty、VictorOps等系统发送通知。

二. 安装部署

下载二进制包,运行安装

bash
$ wget https://dl.grafana.com/oss/release/grafana-7.5.10-1.x86_64.rpm
$ sudo yum install grafana-7.5.10-1.x86_64.rpm

启动服务 $ sudo systemctl start grafana-server

grafana默认端口为3000,打开浏览器输入 http://ip:3000 访问, 默认账号密码都为admin。

登录系统后,可看到左边一排功能键,分别对应着Dashboard搜索、Dashboard创建、Dashboard管理、Explore、告警管理、系统配置、管理员选项等功能,具体的功能这里不做详细介绍,

感兴趣的话可以上官网自行查阅:https://grafana.com/docs/grafana/latest/。

三. Grafana使用方法

下面我们以Prometheus为例,讲解关于Grafana的使用方法。

在列表中可以看到grafana支持多种数据源,此处选择Prometheus

填写数据源名称与URL,完成后点击“save&test”按键,如果正常会收到Success提示。

点击“Add an empty panel”,添加一个新的面板

点击Panel Title选择Edit

选择数据源名称“Prometheus”,在metrics处填写监控指标的PromQL语句,此处以上篇文章中的CPU使用率公式为例。在

图表右边处提供了丰富的功能,用于自定义图表类型,此处我们选择Graph类型图表。

完成后,点击右上角"Apply”按键,一个简单的图表就做好了。如果需要在仪表盘中增加更多展示图表,可点击右上角的“Add panel”继续添加。

如果需要对Dashboard进行配置,可点击右上角的“Dashboard setting”按键,进入配置界面 。

在配置界面可设置Dashboard名称等基础信息,还有配置变量、权限管理、版本管理等多个功能。 配置完成后,点击“save dashboard"保存并退出。

四. 下载Dashboard模板

上面介绍了关于Dashboard的配置,但考虑到监控的图表很多,如果全部手动去配置,无疑是件耗时耗力的事。

在这点上,Grafana官网很贴心的提供了不少Dashboard的模板,可以下载即用,极大的提升了我们的工作效率。 浏览器打开官网:https://grafana.com,点击 “Grafana”-“Dashboards”,

按需要的模板类型进行搜索,如node。搜索后一般会出现较多的可选模板,这里可根据下载量和星数判断,推荐选择受欢迎的模板。

https://grafana.com/grafana/dashboards/?search=node

点击模板后,进入介绍页面,会有该模板的详细介绍。在右边会看到该模板的ID号,这个很重要,Grafana需要根据这个ID号进行模板下载。

拷贝该ID号(8919),回到grafana系统,选择”Create"-"import" ,进入模板导入界面

下载加载。(grafana也支持json文件导入的方式,可将Dashboard导出为json备份,需要时再选择“Upload Json file”进行模板导入)

选择Prometheus的数据源,点击"import",完成导入

查看新生成的Dashboard,顺利完成。