性能测试——监控工具Grafana的介绍与使用

1.简介

Grafana是一款用Go语言开发的.源数据可视化工具,能够作数据监控和数据统计,带有告警功能。目前使用grafana的公司有不少,如paypal、ebay、intel等。php

1.1 七大特色

①可视化:快速和灵活的客户端图形具备多种选项。面板插件为许多不一样的方式可视化指标和日志。
②报警:可视化地为最重要的指标定义警报规则。Grafana将持续评估它们,并发送通知。
③通知:警报更改状态时,它会发出通知。接收电子邮件通知。
④动态仪表盘:使用模板变量建立动态和可重用的仪表板,这些模板变量做为下拉菜单出如今仪表板顶部。
⑤混合数据源:在同一个图中混合不一样的数据源!能够根据每一个查询指定数据源。这甚至适用于自定义数据源。
⑥注释:注释来自不一样数据源图表。将鼠标悬停在事件上能够显示完整的事件元数据和标记。
⑦过滤器:过滤器容许您动态建立新的键/值过滤器,这些过滤器将自动应用于使用该数据源的全部查询。css

2 安装

详细安装教程可参考:http://docs.grafana.org/installation/debian/shell

2.1 下载安装包

wget <u>https://dl.grafana.com/oss/release/grafana-6.0.1-1.x86_64.rpm</u>ruby

2.2 安装环境依赖

yum install initscripts fontconfig  
yum install freetype
yum install urw-fonts

2.3 安装Grafana服务

rpm -Uvh grafana-6.0.1-1.x86_64.rpm

2.4 插件安装

使用grafana-cli工具安装 #获取可用插件列表 grafana-cli plugins list-remote 修改图形为饼状 grafana-cli plugins install grafana-piechart-panel 安装其余图形插件 grafana-cli plugins install grafana-clock-panel #钟表形展现 grafana-cli plugins install briangann-gauge-panel #字符型展现 grafana-cli plugins install natel-discrete-panel #服务器状态 grafana-cli plugins install vonage-status-panel 

2.5 插件卸载

例:grafana-cli plugins uninstall vonage-status-panel
安装和卸载后须要重启grafana才可以生效

2.6 启动、重启、关闭

启动:service grafana-server start 中止:service grafana-server stop 重启:service grafana-server restart 加入开机自启动: chkconfig --add grafana-server on 

2.7 启动测试

默认用户密码:admin/admin, 访问地址: 服务地址 : [http://grafana服务地址:3000](http://localhost:3000/) 若是出现登陆界面,表明安装启动成功 

3 建立Dashboard

3.1 数据源配置

Dashboard的创建都是基于某一个数据源的,因此要先加一个数据源。bash

 
增长MySQL数据源

3.2 可视化方式

可视化方式有不少种,不过Graph、Table、Pie chart 这三种基本就已经知足数据展示要求了。服务器

 
可视化方式

3.2.1 Graph

注意:只有Graph才能配置告警并发

新建时间间隔变量

 
新建时间间隔变量

Graph折线图

 
Graph折线图
SELECT $__timeGroupAlias(create_time,$__interval), country_name as metric, COUNT(user_id) as '用户数量' FROM `user` WHERE $__timeFilter(create_time) GROUP BY 1,2 ORDER BY $__timeGroup(create_time,$__interval); 
 
展示方式默认是lines

Graph柱状图

把这个Graph折线图Copy一份,改一下展示方式便可。ide

 
 
 
 
 
改Lines为Bars

3.2.2 Table

建立筛选查询变量

 
新建一个下拉列表作筛选

用户列表

 
用户列表
select user_id,user_name,mobile,id_number,country_name,money,create_time from user WHERE $__timeFilter(create_time) and country_name in ($countryName)

注意:默认添加完table后,若是有数字,会以K为单位,好比将300000展现位30k。
数字展现方式修改,Add column style:工具

 
修改数字样式

3.2.3 Pie

 
饼图
select country_name, create_time as time, count(*) as c from user where $__timeFilter(create_time) group by country_name order by c asc; 

3.3 权限管理

3.3.1 用户管理

 
用户管理

3.3.2 团队管理

 
新建团队

 
团队加成员

3.3.3 文件夹权限设置

 
 

3.3.4 dashboarad权限设置

 
 

若是user在该org下role=admin,就拥有了对该dashboard的admin权利,爱干啥干啥,好比配置这个dashboard,看dashboard,配置dashboard的权限。
若是user在该org下role=editor,就拥有了对该dashbaord的edit操做权限,能够编辑dashboard,固然也能够看。
若是user在该org下role=viewer,就拥有对该dashbaord的view操做权限,就是能够看这个dashboard,但不能编辑。
就如上图设置,若是登陆用户是admin,就能够进行编辑;若是登陆用户是wade,仅有查看权限。测试

3.4 模板变量

当表格中出现数据后,须要经过筛选条件进行筛选,grafana提供了模板变量用于自定义筛选字段。
Type:定义变量类型
Query:这个变量类型容许您编写一个数据源查询,该查询一般返回一个 metric names, tag values or keys。例如,返回erver names, sensor ids or data centers列表的查询。
interval:interval值。这个变量能够表明时间跨度。不要按时间或日期直方图间隔硬编码一个组,使用这种类型的变量。

遗留问题:当选择1d(单位是d)时,会报解析错误:error parsing interval 1d,暂未解决;

Datasource:此类型容许您快速更改整个仪表板的数据源。若是在不一样环境中有多个数据源实例,则很是有用。
Custom:使用逗号分隔列表手动定义变量选项。
Constant:定义一个隐藏常数。有用的metric路径前缀的dashboards,你想分享。在dashboard export,期间,常量变量将做为一个重要的选项。
Ad hoc filters:很是特殊类型的变量,只对某些数据源,InfluxDB及Elasticsearch目前。它容许您添加将自动添加到使用指定数据源的全部metric查询的key/value 过滤器。

上面的Table和Graph分别使用了interval和query来定义变量进行筛选,再也不重复。

Text box

 
新建输入框

 
 

Custom

 
新建Custom变量

 
下拉选择

3.5 版本控制

 
 

4 告警通知

4.1 开启告警

grafana只有graph支持告警通知。
grafana的告警通知渠道有不少种,像Email、Teams、钉钉等都有支持。
在grafana.ini中开启告警:

#################################### Alerting ############################
[alerting]
# Disable alerting engine & UI features
enabled = true   #开启
# Makes it possible to turn off alert rule execution but alerting UI is visible
execute_alerts = true  #开启
# Default setting for new alert rules. Defaults to categorize error and timeouts as alerting. (alerting, keep_state)
;error_or_timeout = alerting
# Default setting for how Grafana handles nodata or null values in alerting. (alerting, no_data, keep_state, ok)
;nodata_or_nullvalues = no_data
# Alert notifications can include images, but rendering many images at the same time can overload the server
# This limit will protect the server from render overloading and make sure notifications are sent out quickly
;concurrent_render_limit = 5

4.2 邮件通知

4.2.1 STMP服务器配置

要能发送邮件通知,首先须要在配置文件grafana.ini中配置邮件服务器等信息:

#################################### SMTP / Emailing ########################## [smtp] enabled = true #是否容许开启 host = #发送服务器地址,能够再邮箱的配置教程中找到: user = 你的邮箱 # If the password contains # or ; you have to wrap it with trippel quotes. Ex """#password;""" password = 这个密码是你开启smtp服务生成的密码 ;cert_file = ;key_file = skip_verify = true from_address = 你的邮箱 from_name = Grafana # EHLO identity in SMTP dialog (defaults to instance_name) ;ehlo_identity = dashboard.example.com [emails] ;welcome_email_on_sign_up = false 

修改完配置,记得重启Grafana服务

4.2.2 邮件发送

配置邮件通知渠道

 
配置邮件通知渠道

发送测试

 
发送测试

设置告警条件

 
 

5 小结

Grafana是个功能强大、展示层很漂亮的数据可视化监控工具,本篇主要介绍了Grafana基于MySQL数据源的安装及经常使用姿式,也支持其余数据源如ElasticSearch、InfluxDB等。

相关文章
相关标签/搜索