0x01 前言

我喜欢用zabbix从各个设备中读取数据,然后用grafana进行展示。

zabbix作为一款监控软件,在图表方面仅仅足够满足工作需求,而达不到对外展示所需要的美观程度。grafana作为一款展示类的软件,则可以弥补zabbix的不足。

正如我在家庭项目中的展示项目,用得最多的有singlestat与graph这两种图表:

本文主要讲述这两种图表的设置方式,在实际操作之前需要准备zabbix或其他可用的数据源。

0x02 singlestat(状态图)

0x02.1 准备

状态图为上图中类似刻度仪表盘的图形,主要用于展示单一的数据,比如上图中的电流、电压、功率与功率因数等。

首先新建一个新的仪表盘,在初始界面即可看到singlestat的添加按钮:

单击后会自动在当前ROW插入一个singlestat,然后单击该singlestat上的“Panel Title”,在弹出的菜单中单击“Edit”打开设置窗口:

0x02.2 数据源

在设置窗口中首先要选择数据源,也就是Data Source,在这里我选择我的zabbix作为数据源:

完成数据源的添加后,如果zabbix插件设置正确且与zabbix服务器的连接正常,那么在下面的查询(Query)配置窗口中即可通过下拉菜单选择相应的监控点。

例如上图,我选择了以数字记录为主的计量查询模式,并选择zabbix中的Linux servers组,同时选择该组下的idrac.t.com服务器,读取该服务器Temp Sensor Application中的CPU1 Temp监控点。

完成监控点的选择后,上方会显示一个数值,在初始状态下,该数值为页面右上方设定时间间隔的平均值。

状态图只能读取一个数值,所以只配置一个查询即可。

0x02.3 Options

然后单击“Options”进入选项标签:

该配置界面中有四个部分的内容,首先是“Value”:

  • Stat:选择读取数据的统计类型,可选择最后、最大、最小、平均或总计等;
  • Prefix:前标,需手动填入内容;
  • Postfix:后标,需手动填入内容;
  • Unit:单位,某些单位会自动转换,如长度单位“毫米”,当数值较大时会自动转换为“米”或“千米”;
  • Decimals:小数位,设置显示的小数位;
  • Font size:配置字体大小。

第二个部分为“Coloring”,主要配置背景色、数值颜色与三个阈值的颜色:

  • Background:背景颜色,默认为不勾选;
  • Value:数值颜色,默认位不勾选;
  • Thresholds:阈值,格式为“50,80”。意义为设置了50与80两个阈值,将数据分为了3个间隔:小于50的、50至80的与80以上的;
  • Colors:阈值三个区间的颜色。

第三部分为“Spark lines”,主要设置以历时数据为背景的曲线图:

  • Show:是否开启该功能,默认为不勾选;
  • Full height:是否开启该功能,默认为不勾选,勾选后,曲线图为全高模式;
  • Line Color:曲线图曲线的颜色;
  • Fill Color:曲线图的填充颜色。

第四部分为“Gauge”,这部分的内容比较重要,主要添加仪表的展示样式,先上图:

  • Show:是否开启仪表样式,默认为不勾选;
  • Min:最小值;
  • Max:最大值;
  • Threshold labels:阈值标签,我一般不启用这个;
  • Threshold markers:阈值颜色标签,建议启用;

如上图所示,我服务器中这个监控点的温度一般为55度左右,所以我将阈值设置为“60,70”,将阈值分成了三个部分,颜色为“Coloring”中“Colors”的设置值。

此时建议勾选上“Coloring”中的“Value”,数值的颜色会根据阈值区间的颜色而变化,可以增强警示效果。

在某些情况,数值加上单位后会使得空间不足,数据会超出仪表盘,是的整体比较难看,此时可以调整“Font size”,以达到最佳的显示效果。

0x02.4 Value Mappings(数值映射)

这个功能用得比较少,目前我能想到的只有在功率因数和PUE展示上用到。

比如说功率因数大于1.9的时候为高效,1.89至1.8的时候为中等,小于1.8为低效。那么可以类似下面的方式设置:

这里可以分为多个范围,只需要单击“Add a range mapping”即可。

支持数值转为文字,也支持文字转换为数值。

0x02.5 Time range

在某些图表中可能需要展示不同时间段的数据,这时候就需要配置Time range(时间间隔)这个功能。在默认情况下,图表数据的统计时间是根据右上角的全局Time range所设定的区间所计算出来的:

比如本篇文章中的CPU温度,我想在同一个界面中展示过去1小时、过去2小时和过去3小时的图表,这时候就需要分别建立同样的3个图表,然后在“Override relative time”中分别设定1h、2h和3h:

设定统计间隔后,改图表不再受全局Time range的限制,而是成为一个独立统计间隔的图表,同时会在图表右上角显示统计间隔。

如果需要隐藏统计间隔的提示,可以勾选“Hide time override info”这个选项。

在某些情况我们还需要统计前1小时、前2小时或前3小时的数据,这时候就需要用到偏移量的设置“Add time shift”。这个和“Override relative time”有本质上的区别:

  • Override relative time:以设定值为区间,且忽略全局“Time range”。统计该区间内的数据。
  • Add time shift:以设定值为偏移量,只能往前偏移。统计偏移后的数据。

只能使用单一的单位,如:1s;不可组合使用,如:1m1s。

可设定的单位如下:

  • 1s:1秒
  • 1m:1分钟
  • 1h:1小时
  • 1M:1个月
  • 1y:1年

0x2.6 General

我一般是将所有主要项都配置好后再回头设置General,而在General配置标签中一般只会用到“Title”。

在这里可以设置以下内容:

  • Title:图表标题;
  • Description:图表描述;
  • Span:图表间隔,无需设定,在前端可手动调整图表大小;
  • Height:图表高度,无需设定,在前端可手动调整图表高度;
  • Transparent:背景是否透明,默认情况下不勾选,如果觉得不需要深灰色背景,可以勾选此项;
  • Templating和Drilldown / detail link用处不大,忽略即可。

0x03 其他

所有内容都设定完成后,点击右侧的“x”符号即可关闭设置窗口。

在仪表盘中可以通过图表右下角的拖动把手调整图表的大小:

如果需要添加多个类似数据的图表,又需要保持图表样式的一致性,那么可以单击图表的标题,在弹出的菜单中选择“Duplicate”即可复制一个一模一样的图表,再修改新的图表即可。

在上图中的右上角可以看到我设定的统计间隔与偏移量,如果需要增加一个统计间隔与偏移量分别为2小时和3小时的图表,只需要复制,修改即可:

0x04 结语

grafana是一款很好的数展示工具,我会继续对其他类型图表作出详细的记录。