浅谈Grafana在SkyForm CMP 5中的运用

■ 文/ 天云软件 刘苇

前言

监控系统是SkyForm CMP 5中重要的组成部分,而要对成千上万的虚拟机和主机进行多种维度的监控,必将产生海量的监控指标数据。如果要将这些海量数据在前端采用JS图表插件来展示出图,会产生查询性能慢,定制性差,开发成本大,开发耗时等等各种问题。

为了解决以上问题,SkyForm CMP 5使用了Grafana来作为仪表盘和报表工具的开发。

Grafana介绍

Grafana到底是什么呢?

Grafana是一个自定义报表、显示图表开源仪表盘工具,它可支持使用多种数据源(比如Elasticsearch、Collectd、Zabbix、MySql等等)。它具有功能齐全的度量仪表盘和图形编辑器,灵活丰富的图形化选择项帮助用户简单快捷的创建仪表板,并提供目标解析器,来降低度量和函数编辑的难度。

1

下面我们来简单介绍一下Grafana的一些强大功能

1、丰富的绘图配置功能

作为一个数据可视化工具最重要的当然是要有强大的绘图功能

  • 点击、选择区域进行时间轴的zoom in及zoom out 方便快速选择时间区间
  • 支持多Y轴
  • 支持柱状图、折线图、点图、饼图、表格等多种图表
  • 支持多种计算函数包括:count、max、min、sum、average等
  • 可以设置阈值、对数刻度
  • 可以设置阈值告警,并可以对接邮箱,钉钉等
  • Y轴多种单位(字节、毫秒等等)
  • 全屏查看或者编辑图表
  • 可以通过界面或者http api导出任何图表为png图片格式

2

2、强大的仪表盘(Dashboard)

  • 轻松拖拽图表,改变行和图表的宽度
  • 当图表数量众多的时候可以通过搜索标题(title)或者标签(tag)定位
  • 模板化的仪表盘
  • 脚本化的仪表盘,可以保存为Json文档,快速保存、复制
  • 可以通过 HTTP API 进行创建和更新
  • 多种多样的图表类型

3

3、模板变量

Dashboard 通过定义变量在不同界面被引用,如当你定义了变量在某一个Dashboard页面就会出现下拉选择框,从而也就具有可交互性了。在使用时只需要制作好一个Dashboard,然后利用Dashboard Templating功能就可以把做好的Dashboard进行复用,类似于模板。

试想一个典型的运用场景,监控系统需要监控成千上万的主机,每台主机又有成百上千的监控指标,那么我们就需要配置无数的Dashboard,这显然是不合适的。模板变量功能提供了按照变量参数的方式传入给每个图形,极大方便了我们配置监控图表。

  • metric的查询中使用变量
  • 图表标题使用变量
  • 函数参数可以使用变量
  • 可以通过URL来给变量赋值

4

4、快速的时间范围选择

  • 通过下拉按钮快速选择时间范围
  • 支持本地时间和UTC时间
  • 设置自动刷新时间间隔
  • 复杂的日期选择,如最近x分钟、小时、天,昨天,上周的今天等等

5

5、丰富的插件(plugin)支持

Grafana.net提供了众多特色插件支持

6

Grafana可以用在任何需要数据可视化的地方,如果有一天客户需要你做一份新的监控指标图表,你无需头疼用什么绘图库去开发,你要做的仅仅是配置该监控数据的数据源,然后简单配置即可。

6、快速的数据迁移

Grafana能够快速的对仪表盘进行数据迁移

  • 把Dashborad配置导出成json文件
  • 拷贝Grafana.db文件

7

GrafanaSkyForm CMP 5监控服务无缝对接

下面我们举一个简单示例来展示Grafana在SkyForm CMP 5监控的场景中是如何运用的

8

1、设置Grafana免登陆

由于Grafana支持权限管理系统,默认是需要登录的,为了跳过登录这一环节,把对应的监控图表能够直观的嵌入到SkyForm CMP 5系统自己的界面中,我们需要设置免登陆权限。

在#enable anonymous access下面增加enabled = true

9

然后重启grafana服务。

2、配置仪表盘

  • 浏览器访问grafana  http://ip:3000  初始密码admin/admin
  • 根据你所保存的数据,添加一个数据源:

10

  • 新建一个DashBorad来创建仪表盘:

11

  • 选择你要配置的图形,设置查询函数,条件等:

12

3、导出Grafana对应链接

选中配置好的图形标题,点击share按钮,我们就可以将已经配置好的图形进行导出:

13

把导出的iframe的链接嵌入到对应的系统当中就完成了一个指标监控仪表盘的开发。

以上就是配置一个监控仪表盘的简单示例。是不是很简单?我们只需掌握一些基本的Lucence查询语法和Grafana的一些基本知识,便能够开发出很多复杂美观的监控仪表盘。

结语

SkyForm CMP 5对多种不同平台进行支持,并对不同平台进行监控。而不同客户针对不同业务又有不同的关注点,所以有的时候不可避免的要进行一些二次开发来满足客户的定制化需求。采用Grafana作为可视化仪表盘工具与SkyForm CMP 5进行结合,能够快速开发定制仪表盘和报表可以快速响应和完成客户的需求,并且大大降低开发成本和开发时间。