Skywalking
Grafana
shell脚本
go脚本
python
在开始下面章节之前先讲解一下grafana的基本概念
Data Source:grafana确切的说是一个前端展示工具,将数据以非常美观直接的图形展示出来。那么这些数据必须有一个来源吧,grafana获取数据的地方就称为Data Source。官方文档上说grafana支持以下数据源:Graphite, InfluxDB, OpenTSDB, Prometheus, Elasticsearch, CloudWatch。在Grafana 3.0+之后,grafana不仅仅支持上面说的这些数据源,还支持一些其它的数据源,这些就称为Grafana Plugins,grafana支持的插件非常多(grafana支持的插件传送门),只要做一些简单的插件安装配置,你就能获取丰富的数据源,后面的文章会讲解如何安装配置使用grafana-zabbix,elasticsearch等插件。
DashBoard:仪表盘,就像汽车仪表盘一样可以展示很多信息,包括车速,水箱温度等。Grafana的DashBoard就是以各种图形的方式来展示从Datasource拿到的数据。
Row:DashBoard的基本组成单元,一个DashBoard可以包含很多个row。一个row可以展示一种信息或者多种信息的组合,比如系统内存使用率,CPU五分钟及十分钟平均负载等。所以在一个DashBoard上可以集中展示很多内容。
Panel:面板,实际上就是row展示信息的方式,支持表格(table),列表(alert list),热图(Heatmap)等多种方式,具体可以去官网上查阅。
Query Editor:用来指定获取哪一部分数据。类似于sql查询语句,比如你要在某个row里面展示test这张表的数据,那么Query Editor里面就可以写成select *from test。这只是一种比方,实际上每个DataSource获取数据的方式都不一样,所以写法也不一样,比如像zabbix,数据是以指定某个监控项的方式来获取的。
Organization:org是一个很大的概念,每个用户可以拥有多个org,grafana有一个默认的main org。用户登录后可以在不同的org之间切换,前提是该用户拥有多个org。不同的org之间完全不一样,包括datasource,dashboard等都不一样。创建一个org就相当于开了一个全新的视图,所有的datasource,dashboard等都要再重新开始创建。
User:这个概念应该很简单,不用多说。Grafana里面用户有三种角色admin,editor,viewer。admin权限最高,可以执行任何操作,包括创建用户,新增Datasource,创建DashBoard。editor角色不可以创建用户,不可以新增Datasource,可以创建DashBoard。viewer角色仅可以查看DashBoard。在2.1版本及之后新增了一种角色read only editor(只读编辑模式),这种模式允许用户修改DashBoard,但是不允许保存。每个user可以拥有多个organization。
grafana 可以对采集的数据进行可视化展示
官网地址:https://grafana.com/
下载地址:https://grafana.com/grafana/download
安装指南:http://docs.grafana.org/installation/rpm/
我本地环境是windows,下载了 grafana-5.3.2
1.Grafana介绍
Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:
- 1、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
- 2、数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
- 3、通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
- 4、混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
- 5、注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
- 6、过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。
2.安装
- 1.解压安装包,进入bin目录,双击 grafana-server.exe 启动
- 2.访问 localhost:3000 ,系统默认用户名和密码为admin/admin,第一次登陆系统会要求修改密码,修改密码后登陆,界面显示如下:
- 3.添加数据源,访问 prometheus 采集的数据,点击设置按钮中的 DataSources,右侧有 Add data source,输入 name 、type、url(prometheus的地址)
- 4.创建DashBoard,DashBoard就是可视化图形界面,我也不太会制作,但我会用别人已经做好且成熟的 DashBoard,导入到我的 grafana中,实现可视化展示,鼠标移动到左侧的 + 号,点击 import,在右侧输入dashboard id 8919,会出现如下界面,可以修改name,选择刚刚添加的datasource数据源,点击 import
- dashboard id 怎么获取,grafana官方有个中央仓库,和maven仓库一样,收集了网友制作好的dashboard,每个dashboard有个唯一 id,dashboard仓库地址:https://grafana.com/dashboards
- 5.享受成果,通过可视化图形界面查看监控数据
以上两篇就是 node_exporter+ prometheus + grafana 以图形化方式展示 云服务器上的各项数据,以后的文章将介绍怎么监控 web 应用
Grafana是一个开源的度量分析与可视化套件。经常被用作基础设施的时间序列数据和应用程序分析的可视化,它在其他领域也被广泛的使用包括工业传感器、家庭自动化、天气和过程控制等。
Grafana支持许多不同的数据源。每个数据源都有一个特定的查询编辑器,该编辑器定制的特性和功能是公开的特定数据来源。
官方支持以下数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB。
每个数据源的查询语言和能力都是不同的。你可以把来自多个数据源的数据组合到一个仪表板,但每一个面板被绑定到一个特定的数据源,它就属于一个特定的组织。下面我们来一起感受一下grafana。
1、登录grafana 界面
http://192.168.21.250:3000 默认用户和密码均为admin
2、配置Grafana启用zabbix插件
登录到grafana,移动鼠标到grafana左上角,单击选择齿轮图标的向下按钮,然后选择“Zabbix”选项卡,选择“Pluugin Config”,打开Zabbix 插件配置对话框,选择启用zabbix插件。
具体操作步骤如下图所示:
3、配置Zabbix数据源
添加新数据源,单击选择齿轮图标的向下按钮,打开 “Data Sources”
,单击“Add new”。
注意红线标注的地方
Name自定义
Type选择Zabbix
Http settings URL填入http://zabbix服务器ip/zabbix/api_jsonrpc.php
Zabbix details用户名和密码需要在Zabbix web页面中设置,本文中用户名:admin,密码:zabbix。如不想新建的话,可以使用zabbix的初始用户。
配置过程如下图所示:
设置完成点击Save & Test按钮,弹出下图所示的Success提示对话框:
本文档的Zabbix版本为Zabbix-3.0.5,详细配置教程请参考官方文档:
http://docs.grafana-zabbix.org/installation/configuration
常见错误解决请参考:http://docs.grafana.org/installation/troubleshooting/
4、开始使用Grafana-Zabbix
添加新的仪表板
让我们开始创建一个新的仪表板。添加新的仪表板过程如下所示:
在新建的仪表板中添加图面板
图面板在Grafana中只是命名图。它提供了一组丰富的图形选项。如下图所示:
单击标题面板可打开一个菜单框。单击edit 选项面板将会打开额外的配置选项。
如下图所示:
Graph里面的选项有:
General(常规选择)、Metrics(指标)、Axes(坐标轴)、Legend(图例)、 Display(显示样式)、Time range(时间范围)
Genera(常规选择):添加图形标题,图形宽度高度等
Title:仪表板上的面板标题
Span:列在面板中的宽度
Height:面板内容高度(以像素为单位)
钻取/详细信息链接(Drilldown / detail link)
钻取部分允许添加动态面板的链接,可以链接到其他仪表板或URL。
每个链接都有一个标题,一个类型和参数。链接可以是 dashboard或 absolute链接。如果它是一个仪表板链接, dashboard值必须是一个仪表板的名字。如果这是一个 absolute链接,是URL链接的URL。
params允许添加额外的URL参数的链接。格式是 name=value与多个参数分开,当链接到另一个仪表板使用模板变量,你可以使用 var-myvar=value填充模板变量的期望值链接。
Metrics(指标)
定义了来源数据的呈现,每个数据源都提供不同的选择。面板的来源数据通过group,host,application,item从zabbix中获得。
Axes(坐标轴)
用于坐标轴和网格的显示方式,包括单位,比例,标签等。
Left Y和 Right Y可以定制使用,因其中的可选参数太多,怕描述不准确。所以请在使用的时候参考官方文档
Legend(图例):图例展示
图例的参数:
Total:返回所有度量查询值的总和
Current:返回度量查询的最后一个值
Min:返回最小的度量查询值
Max:返回最大的度量查询值
Avg:返回所有度量查询的平均值
Decimals:控制Legend值的多少,以小数显示悬浮工具提示(图)
Grafana 中Legend值的计算取决于你使用的度量查询方式和什么样类型的聚合或合并点来实现的,所有上述所说的值在同一时间可能都是不正确的。例如,如果你是每秒请求一次,这可能是使用平均值来作为一个整合,然而这个Legend值不会代表请求的总数。这只是Grafana收到的所有数据点的总和。
Display(显示样式)
显示样式的控件属性图如下:
图表模式(Draw Modes)
Bar:一个条形图显示值
Lines:显示线图值
Points:显示点值
选择模式(Mode Options)
Fill:系列的颜色填充,0是没有。
Line Width:线的宽度。
Staircase:楼梯状显示。
如果有多个选择项,它们可以作为一个群体显示。
叠加和空值(Stacking & Null value)
Stack:每个系列是叠在另一个之上
Null value:空值
如果你启用了堆栈可以选择应该显示鼠标悬停功能。
Time range(时间范围)
顶级头介绍
上图显示了仪表板顶部的标题。
1.侧菜单切换:切换菜单,让你专注于仪表板中给出的数据。侧菜单提供了访问特性,仪表板,用户,组织和数据源等。
2.仪表板下拉菜单:下拉菜单显示你当前浏览的仪表板,并允许轻松地切换到另一个新的仪表板。在这里你还可以创建一个新的仪表板,导入现有的仪表板和管理仪表板播放列表。
3.星仪表板:星(或unstar)当前的仪表板。默认情况下星仪表板将出现在自己建立的仪表板里,为你提供快捷的查看途径。
4.仪表板分享:通过创建一个链接或创建一个静态快照分享当前仪表板。
5.保存仪表板:以当前仪表板的名字保存。
6.设置:管理仪表板的设置和特性,比如模板和注释。
5、创建流量监控图形
6、仪表盘模板功能
单纯的手动去添加一个个监控图,只能显示一个主机的所有监控图形,若要查看不同主机的所有监控图形,就要通过变量的方式去实现。我们要设置的变量包括group,host,application和iteam。
模板
仪表盘模板可以让你创建一个交互式和动态性的仪表板,它是Grafana里面最强大的、最常用的功能之一。创建的仪表盘模板参数,可以在任何一个仪表盘中使用。
创建变量
点击顶部导航栏上的齿轮图标,选择模板。
单击新建按钮,你会看到模板变量编辑器。它包含以下部分:
变量(Variable)
命名:变量的名称。
标签:可见标签变量。例如,主机组,而不是HOST_GROUP。
类型:查询类型选择。
图中有五种变量类型: query,custom,interval,Data source和Contsta。它们都可以用来创建动态变量,不同之处在于获得的数据值不一样。
查询选项(Query Options)
数据源:用于查询变量值的数据源。
刷新:更新此变量的值。
查询:查询字符串。
正则表达式:如果你需要筛选值或提取价值的一部分,那就使用正则表达式。
选择选项(Selection Options)
多值:启用,如果你想在同一时间选择多个值。
数值组/标签(实验功能)(Value groups/tags (Experimental feature))
7、查询格式
zabbix模板变量数据源查询是一个包含了4个部分的以.号隔开的字符串{host group}.{host}.{application}.{item name}。例如, Zabbix servers.Zabbix server.CPU.*。
例子:
* 返回所有可用主机组
*.* 返回主机组里所有可用主机
Servers.*返回服务器组里的所有主机
Linux servers.*.* 返回Linux服务器组中的所有应用程序
Linux servers.*.*.* 返回Linux服务器组中所有主机的监控项。
你可以使用另一个变量作为查询的一部分。例如,你有一个变量组,它返回的是主机组的列表,并仅希望将其用于在选定的组在查询主机。下面是这种情况的查询条件:
$group.*
8、变量的使用
当你创建一个变量,你可以使用它作为一个数据源查询的一部分。Grafana还支持变量在不同的地方被使用,比如面板和行标题、文本面板的内容等。
注意,你需要在变量的名字之前添加$标志。
创建模板
添加变量group,host,Application,iteam
添加完四个变量,如下图所示:
group匹配的显示结果
变量添加完成后,就可以设置图形属性了。将之前所有添加的图形用下面的group,host,application,iteam变量来表示。
这样我们就可以通过切换,来查看不同主机的所有监控内容
下图是通过仪表盘功能在一个页面中用多个graph显示多台机器的网卡流量。
下图是在仪表盘中使用模板功能在一个页面中用一个graph显示单台机器或所有机器的单个监控项或所有监控项。
这个仪表盘模板是在一个页面中用多个graph显示单台机器的多个监控项