性能測試——監控工具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等。

相關文章
相關標籤/搜索