Grafana基础

1、Grafana基础

Grafana是一个开源的指标量监测和可视化工具。官方网站为:https://grafana.com/, 经常使用于展现基础设施的时序数据和应用程序运行分析。Grafana的dashboard展现很是炫酷,绝对是运维提高逼格的一大利器。php

官方在线的demo能够在这里找到: http://play.grafana.org/node

Grafana是一个通用的可视化工具。这意味着Grafana不只仅适用于展现zabbix下的监控数据,也一样适用于一些其余的数据可视化需求。在开始使用Grafana以前,咱们首先须要明确一些Grafana下的基本概念,以帮助用户可以快速理解Grafana。mysql

一、数据源(datasource )web

数据的存储源,它定义了将用什么方式来查询数据展现在grafana上面,不一样的datasource拥有不一样的查询语法,grafana支持多种数据源,官方支持如下数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch。正则表达式

每一个数据源的查询语言和能力各不一样,咱们能够未来自多个数据源的数据组合到一个仪表盘中,可是每一个面板都绑定到属于特定组织的特定数据源。sql

二、仪表盘(Dashboard )docker

经过数据源定义好可视化的数据来源以后,对于用户而言最重要的事情就是实现数据的可视化。在Grafana中,咱们经过Dashboard来组织和管理咱们的数据可视化图表,以下图所示:shell

在一个Dashboard中一个最基本的可视化单元为一个Panel(面板),Panel经过如趋势图,热力图的形式展现可视化数据。 而且在Dashboard中每个Panel是一个彻底独立的部分,经过Panel的Query Editor(查询编辑器)咱们能够为每个Panel本身查询的数据源以及数据查询方式,例如,若是以Prometheus做为数据源,那在Query Editor中,咱们实际上使用的是PromQL,而Panel则会负责从特定的Prometheus中查询出相应的数据,而且将其可视化。因为每一个Panel是彻底独立的,所以在一个Dashboard中,每每可能会包含来自多个Data Source的数据。数据库

Grafana经过插件的形式提供了多种Panel的实现,经常使用的如:Graph Panel,Heatmap Panel,SingleStat Panel以及Table Panel等。用户还可经过插件安装更多类型的Panel面板。json

除了Panel之外,在Dashboard页面中,咱们还能够定义一个Row(行),来组织和管理一组相关的Panel。

除了Panel, Row这些对象之外,Grafana还容许用户为Dashboard定义Templating variables(模板参数),从而实现能够与用户动态交互的Dashboard页面。同时Grafana经过JSON数据结构管理了整个Dasboard的定义,所以这些Dashboard也是很是方便进行共享的。Grafana还专门为Dashboard提供了一个共享服务。
https://grafana.com/dashboards

经过该服务用户能够轻松实现Dashboard的共享,同时咱们也能快速的从中找到咱们但愿的Dashboard实现,并导入到本身的Grafana中。

2、Grafana的安装与配置

Grafana的安装很是简单,官方就有软件仓库能够直接使用,也能够经过docker镜像等方式直接本地启动。还能够直接下载rpm包、二进制包进行安装。

你们能够从 https://grafana.com/get 下载Grafana安装包,而后根据须要的系统平台及性能下载便可,官方给出了很是详细的安装方法,例如,要经过rpm包安装在Redhat & Centos平台,可直接执行以下命令:

[root@localhost ~]# wget https://dl.grafana.com/oss/release/grafana-5.4.3-1.x86_64.rpm [root@localhost ~]# sudo yum localinstall grafana-5.4.3-1.x86_64.rpm

安装完毕后,使用“service grafana-server start”就能够启动grafana,访问 http://your-host:3000 就能够看到登陆界面了。默认的用户名和密码都是admin。

默认状况下,grafana的配置存储于sqlite3中,若是你想使用其余存储后端,如mysql,postgresql等,请参考官方文档配置: http://docs.grafana.org/installation/configuration/

本文是在centos7.x版本下进行的安装,安装方法与上面相同,安装完毕后,设置一些服务器启动便可,操做以下:

[root@localhost ~]# systemctl enable grafana-server #开启自启动 [root@localhost ~]# systemctl start grafana-server #启动服务 [root@localhost ~]# systemctl status grafana-server #查看服务是否正常启动

Grafana的配置文件位于/etc/grafana/grafana.ini,通常状况下无需修改配置文件。这样,安装就完成了。很是简单。

3、Grafana与zabbix整合提高运维监控逼格

zabbix的UI作的中规中矩,逼格不是很高,因此咱们能够结合Grafana的炫酷界面来补充zabbix这方面的不足,Grafana有着漂亮的图表及布局展现,功能上绝对可以知足咱们的须要,是运维装B的必备运维利器之一。

一、安装grafana-zabbix 插件

grafana和zabbix的集成是经过插件方式实现的,所以,须要先安装grafana-zabbix插件,grafana官方已经包含了这个插件,直接使用便可。

安装以前能够经过grafana-cli plugins list-remote 命令来查看都有什么插件能够安装。操做以下:

[root@localhost ~]# grafana-cli plugins list-remote|grep zabbix id: alexanderzobnin-zabbix-app version: 3.9.1

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

[root@localhost ~]# grafana-cli plugins install alexanderzobnin-zabbix-app

执行这个命令须要grafana服务器可以上网,由于它会从外网下载插件包,安装成功以后会提示咱们须要重启grafana 服务,以使插件生效。

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

[root@localhost ~]# grafana-cli plugins install grafana-clock-panel

全部须要的插件安装完成后,执行以下命令重启grafana服务:

[root@localhost ~]# systemctl restart grafana-server

二、配置zabbix数据源

全部准备工做完成后,下面就能够进入Grafana的web界面了,登录Grafana Protal,在浏览器中输入: http://Grafana_IP:3000 , 默认用户和密码:admin/admin ,首先会看到以下界面:

这是第一步,配置数据源,点击这个“Add data source”,进入以下界面:

能够看到,这是默认Grafana自带的数据源,咱们要添加zabbix,那么zabbix默认是以插件形式存在的,因此点击上图Plugins标签,而后搜索zabbix,以下图所示:

能够看到,这个显示的zabbix插件,就是咱们刚刚安装好的。点击这个插件,进入以下界面:

这里点击“Enable”,启用这个插件。启用zabbix插件以后,再次选择“Data Source”标签,以下图所示:

能够看到,基于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”,这个Dashboard是zabbix插件自带的,是一个简单的对zabbix server状态监控的Dashboard,以下图所示:

能够看到,默认Dashboard已经有数据了,这个数据就是经过上面配置的数据源而来。这只是一个初步配置,后续还有不少能够细化的东西。

若是没有数据,能够修改相关配置,例如对上面CPU这个Panel进行修改,能够这样操做,以下图所示:

点击“Edit”后,进入下图所示界面:

此界面是调试出图是否正常的方法,很是重要,首先,图中“$datasource”用来指定数据源,“Query Mode”指定查询模式,有“Metrics、text”等可选项,还有四个选项“Group”、 “Host”、“ Application”、“ Item”,分别对应zabbix中的主机组、主机、应用集和监控项。正常状况下选择“Group”后,会在“Host”中看到此“Group”下的全部主机,“ Application”和“ Item”也是相似的。

三、自定义Dashboard

除了zabbix插件自带的Dashboard,咱们还能够自定义须要的Dashboard,点击Grafana左侧导航,选择建立一个Dashboard,以下图所示:

而后出现以下界面:

今后图能够看出,默认已经存在一些Panel,能够选择添加,可是在添加以前,须要先作几个变量配置,点击右上角的齿轮按钮,以下图所示:

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

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

首先是General部分:

 name:变量的名字,好比我这里取名为group,到时候要使用这个变量名就用$group来调用。
 type: 变量类型,变量类型有多种,其中query表示这个变量是一个查询语句,type也能够是datasource,datasource就表示该变量表明一个数据源,若是是datasource你能够用该变量修改整个DashBoard的数据源,变量类型还能够是时间间隔Interval等等。这里咱们选择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。

最后是Selection Options部分:

 Multi-value:启用这个功能,变量的值就能够选择多个,具体表如今变量对应的下拉框中能够选多个值的组合。
 Include All option:启用这个功能,变量下拉框中就多了一个all选项。

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

按照这个方式能够建立多个变量(host,application,item、Network)。建立方法和group基本同样,除了name,query不同以外其它都同样。例如:

建立变量host:
Name:host  
Query:$group.* 建立变量application: Name:application Query:$group.$host.* 建立变量item: Name:item Query:$group.$host.$application.*

这里咱们再建立一个host变量和netif便可,下图是netif变量的建立方法:

全部变量建立完成后,截图以下:

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

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

点击编辑这个panel,进入下图:

这里选择数据源为zabbix,而后选择Query Mode为Metrics,因为Grafana已经能够链接到zabbix数据库,因此,Group一项会列出zabbix因此的主机组,这里选择Linux servers,接着在Host一项中会列出对应主机组下的全部主机,同理,Application和Item项都会自动列出全部的对应内容,选择一个须要图形展现的监控项便可,这里选择的是CPU,而监控项能够选择全部,经过“/.*/”会展现全部关于CPU应用集的监控项。

由于上面咱们定义了多个变量,为了查询和展现方便,上面的这个panel也可这么设置,以下图所示:

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

经过这种方法,依次添加多个不一样类型的panel,便可构建一个自定义的Dashboard,Dashboard中能够对每一个panel进行拖、拉等布局操做,下图是一个自定义好的Dashboard:

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

4、Prometheus与Grafana整合

Prometheus UI提供了快速验证PromQL以及临时可视化支持的能力,而在大多数场景下引入监控系统一般还须要构建能够长期使用的监控数据可视化面板(Dashboard)。这时用户能够考虑使用第三方的可视化工具如Grafana,Grafana是一个开源的可视化平台,而且提供了对Prometheus的完整支持。

有了前面的基础,对Prometheus与Grafana整合的实现,就变得更加简单,由于Grafana已经默认自带了Prometheus数据源,因此无需安装插件,直接使用便可。

这里将添加Prometheus做为数据源,以下图所示,指定数据源类型为Prometheus而且设置Prometheus的访问地址便可,在配置正确的状况下点击“Add”按钮,会提示链接成功的信息:

在完成数据源的添加以后就能够在Grafana中建立咱们可视化Dashboard了。

Grafana提供了对PromQL的完整支持,以下所示,经过Grafana添加Dashboard而且为该Dashboard添加一个类型为“Graph”的面板。 并在该面板的“Metrics”选项下经过PromQL查询须要可视化的数据:

点击界面中的保存选项,就建立了咱们的第一个可视化Dashboard了。

固然做为开源软件,Grafana社区用户分享了大量的Dashboard,能够经过访问 https://grafana.com/dashboards 网站,找到大量可直接使用的Dashboard,这里咱们推荐一个Dashboard,下载地址以下:

http://www.ixdba.net/grafana/1-node-exporter-0-16-0-17-for-prometheus_rev7.zip

此Dashboard须要饼图插件的支持,所以须要先在grafana上安装饼图的插件:

[root@localhost ~]#grafana-cli plugins install grafana-piechart-panel

安装完插件后,记得重启grafana服务。

Grafana中全部的Dashboard能够经过JSON进行共享,下载而且导入这些JSON文件,就能够直接使用这些已经定义好的Dashboard,要导入JSON文件,首先打开下面界面:

这里打开Grafana左侧的Manage选项后,进入以下界面:

选择上图右上角的“import”,而后进入下图界面:

在此图中,点击右上角的upload按钮,导入对应的json文件便可。
最后,打开刚刚导入的json文件对应的Dashboard,便可出现炫酷的展现效果,以下图所示:

Prometheus与Grafana整合很是简单,难点在于出图中每一个panel的展现内容,这须要经过PromQL语句进行实现。而PromQL语句是学习Prometheus的一个难点。

相关文章
相关标签/搜索