提升运维格调?Grafana整合Zabbix

转自:南非蚂蚁 51CTO

Zabbix的UI做的中规中矩,格调不是很高,而Grafana有着漂亮的图表及布局展示。

我们可以结合Grafana的炫酷界面来补充Zabbix这方面的不足,功能上绝对能够满足我们的需要,是运维格调的必备运维利器之一。


提升运维格调?Grafana整合Zabbix


提升运维格调?Grafana整合Zabbix


安装grafana-zabbix 插件

grafana官方已经包含了这个插件,直接使用即可。安装之前可以通过grafana-cli plugins list-remote 命令来查看都有什么插件可以安装。操作如下:


可以看到,有一个名为alexanderzobnin-zabbix-app的zabbix 插件,接着直接在grafana上安装zabbix插件即可,执行如下命令:

执行这个命令需要grafana服务器能够上网,因为它会从外网下载插件包,安装成功之后会提示我们需要重启grafana 服务,以使插件生效。

接着,再安装一个clock-panel插件,这个插件是个时钟插件,可以在dashboard上显示时间用。命令如下:


所有需要的插件安装完成后,执行如下命令重启grafana服务:


提升运维格调?Grafana整合Zabbix



配置zabbix数据源

所有准备工作完成后,下面就可以进入Grafana的web界面了,登陆Grafana Protal,在浏览器中输入: http://Grafana_IP:3000 , 默认用户和密码:admin/admin ,首先会看到如下界面:

提升运维格调?Grafana整合Zabbix

依次点击“Add data source”、“Plugins”标签,然后搜索zabbix,点击“Enable”,启用这个插件。启用zabbix插件之后,再次选择“Data Source”标签,如下图所示:

提升运维格调?Grafana整合Zabbix

可以看到,基于zabbix的数据源已经出来了,点击这个数据源,进入如下界面:

提升运维格调?Grafana整合Zabbix

这就是配置zabbix数据源的界面,具体配置的参数有如下几个:

注意!

URL填写的是zabbix server 的api 地址,我这里是:http://172.16.213.140/zabbix/api_jsonrpc.php , 注意后面的uri,前面IP换成你的即可,后面uri保持不变。

Zabbix API details 的配置的用户名和密码就是zabbix web的登录用户名和密码,默认是Admin/zabbix。

配置完成之后,点击最下面的“Save &Test”,如果配置有问题会报错提示,如果没有问题会提示成功。这样zabbix数据源就配置完成了。

最后,点击左侧导航中的zabbix图标,选择“Zabbix Server Dashboard”,就进入了“Zabbix Server Dashboard”。

提升运维格调?Grafana整合Zabbix

如果没有数据,可以修改相关配置,例如对上面CPU这个Panel进行修改,点击“Edit”后,如下图所示:

提升运维格调?Grafana整合Zabbix

得到如下界面,此界面是调试出图是否正常的方法,非常重要。

提升运维格调?Grafana整合Zabbix


提升运维格调?Grafana整合Zabbix



自定义Dashboard

除了zabbix插件自带的Dashboard,我们还可以自定义需要的Dashboard,点击Grafana左侧导航,选择创建一个Dashboard。

然后出现如下界面:

提升运维格调?Grafana整合Zabbix

从此图可以看出,默认已经存在一些Panel,可以选择添加,但是在添加之前,需要先做几个变量配置,点击右上角的齿轮按钮,如下图所示:

提升运维格调?Grafana整合Zabbix

此界面是对Dashboard进行配置,这里我们修改Dashboard名称为“ Zabbix Template Linux Server”,其它保存不变,接着,点击上图左侧的“Variables”,然后添加一个Variables,如下图所示:

提升运维格调?Grafana整合Zabbix

下面解释一下各个参数的作用:

General部分:

name:变量的名字,比如我这里取名为group,到时候要使用这个变量名就用$group来调用。

type: 变量类型。变量类型有多种,query表示变量是一个查询语句。datasource表示变量代表一个数据源,可以用该变量修改整个DashBoard数据源。这里我们选择query。

label: 是对应下拉框的名称,默认就是变量名,选择修改为“主机组”。

hide: 有三个值,分别为空,label,variable。选择label,表示不显示下拉框的名字。选择variable表示隐藏该变量,该变量不会在DashBoard上方显示出来。默认选择为空,这里也选默认。


接着

Query options部分:

Data source: 数据源,不用多说。

Refresh: 何时去更新变量的值,Refresh有三个值可以选择,Never:永不更新。On Dashboard Load:在DashBoard加载时更新。On Time Range Change:在一个时间范围内更新。可根据情况进行选项。

Query:查询表达式,不同的数据源查询表达式都不同(这些可以到官网上查询),这里由于是要查询zabbix的groups信息,所以表达式为“*”,代表所有。

Regex:正则表达式,用来对抓取到的数据进行过滤,这里默认不过滤。

Sort:排序,对下拉框中的变量值做排序,排序的方式挺多的,默认是disable,表示查询结果是怎样下拉框就怎样显示。此处选disable。

Regex:正则表达式,用来对抓取到的数据进行过滤,这里默认不过滤。


最后

Selection Options部分:

Multi-value:启用这个功能,变量的值就可以选择多个,具体表现在变量对应的下拉框中可以选多个值的组合。根据孩子的年龄选择合适的玩具;

Include All option:启用这个功能,变量下拉框中就多了一个all选项。

这里我们添加了一个group变量,类型为“Query”,对应的标签为主机组,到时候要使用这个变量名就用$group来调用即可。接着在“Query Options”中的Query方法,这里是一个星号,代表所有组。就设置这么多,最后,点击add,group这个变量就创建好了。

按照这个方式可以创建多个变量,例如:


这里我们再创建一个host变量和netif即可,下图是netif变量的创建方法:

提升运维格调?Grafana整合Zabbix

所有变量创建完成后,截图如下:

提升运维格调?Grafana整合Zabbix

变量创建完成后,接着就要增加panel了,返回刚刚创建好的“Zabbix Template Linux Server”,如下图所示:

提升运维格调?Grafana整合Zabbix

点击右上角的添加panel按钮,选择左边的“Graph”,如下图所示:

提升运维格调?Grafana整合Zabbix

提升运维格调?Grafana整合Zabbix

这里选择数据源为zabbix,然后选择Query Mode为Metrics,由于Grafana已经可以连接到zabbix数据库,所以,Group一项会列出zabbix所以的主机组,这里选择Linux servers,接着在Host一项中会列出对应主机组下的所有主机,同理,Application和Item项都会自动列出所有的对应内容,选择一个需要图形展示的监控项即可,这里选择的是CPU,而监控项可以选择所有,通过“/.*/”会展示所有关于CPU应用集的监控项。

因为上面我们定义了多个变量,为了查询和展示方便,上面的这个panel也可这么设置,如下图所示:

提升运维格调?Grafana整合Zabbix

从上图可以看出,我们之前定义的变量都展示出来了,在左上角选择主机组、主机等条件,这个CPU展示的图形会随着条件不同,而展示不同的主机状态, 要实现这样的功能,需要将此panel中的group和host设置成变量,如上图所示。

通过这种方法,依次添加多个不同类型的panel,即可构建一个自定义的Dashboard,Dashboard中可以对每个panel进行拖、拉等布局操作,下图是一个自定义好的Dashboard:

提升运维格调?Grafana整合Zabbix

好了,掌握这些,基本就可以自由的在Grafana上玩耍了。


分享到:


相關文章: