前言
性能測試工具 JMeter 自帶的監視器對性能測試結果的實時展示,在Windows系統下的GUI模式運行,渲染和效果不是太好,在linux環境下又無法實時可視化。
因此如果有一個性能測試結果實時展示的頁面,可以提高我們對系統性能表現的掌握程度,另一方面也提高了我們的測試效率。所以我們現在用InfluxDB+Grafana對性能結果進行實時監控,把JMeter的壓測結果寫入InfluxDB,然后通過Grafana展示出來。
一、InfluxDB簡介與安裝
1、InfluxDB簡介
InfluxDB 是用 Go 語言編寫的一個開源分布式時序、事件和指標數據庫,無需外部依賴。
類似的數據庫有 Elasticsearch、Graphite 等。
主要功能:
1)基於時間序列,支持與時間有關的相關函數(如最大,最小,求和等)
2)可度量性:你可以實時對大量數據進行計算
3)基於事件:它支持任意的事件數據
InfluxDB主要特點:
1)無結構(無模式):可以是任意數量的列
2)可拓展的
3)支持 min, max, sum, count, mean, median 等一系列函數,方便統計
4)原生的 HTTP 支持,內置HTTP API
5)強大的類 SQL 語法
6)自帶管理界面,方便使用
二、InfluxDB安裝
InfluxDB官方文檔:
https://docs.influxdata.com/influxdb/v1.6/
下載安裝包:
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm
下載完之后,直接就可以安裝
yum localinstall influxdb-1.7.0.x86_64.rpm
提示一下信息即表示安裝成功了
啟動 influxdb 數據庫:
service influxdb start
停止 influxdb 數據庫:
service influxdb stop
端口說明
8083:訪問 web 頁面的地址,8083 為默認端口;
8086:數據寫入 influxdb 的地址,8086 為默認端口;
8088:數據備份恢復地址,8088 為默認端口;
開啟防火牆:
firewall-cmd --add-port=8086/tcp --permanent
firewall-cmd --add-port=8086/udp --permanent
firewall-cmd --reload
PS:如果你的服務器是阿里雲的話,在阿里雲控制台-安全組,開啟准入訪問的端口,不然訪問不了。
查看InfluxDB端口號:
``netstat -nultp```
提示沒找到命令。
解決辦法:
linux使用netstat或者ifconfig命令時,顯示命令未找到。
yum install net-tools
再重新查看端口號即可
三、Grafana介紹與安裝
Grafana 是一個跨平台的開源的度量分析和可視化工具,可以通過將采集的數據查詢然后可視化的展示,並及時通知。它主要有以下六大特點:
- 1、展示方式:快速靈活的客戶端圖表,面板插件有許多不同方式的可視化指標和日志,官方庫中具有豐富的儀表盤插件,比如熱圖、折線圖、圖表等多種展示方式;
- 2、數據源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
- 3、通知提醒:以可視方式定義最重要指標的警報規則,Grafana將不斷計算並發送通知,在數據達到閾值時通過Slack、PagerDuty等獲得通知;
- 4、混合展示:在同一圖表中混合使用不同的數據源,可以基於每個查詢指定數據源,甚至自定義數據源;
- 5、注釋:使用來自不同數據源的豐富事件注釋圖表,將鼠標懸停在事件上會顯示完整的事件元數據和標記;
- 6、過濾器:Ad-hoc過濾器允許動態創建新的鍵/值過濾器,這些過濾器會自動應用於使用該數據源的所有查詢。
官方文檔:
https://grafana.com/docs/grafana/latest/
安裝Grafana
wget https://dl.grafana.com/oss/release/grafana-6.2.2-1.x86_64.rpm
下載完成進行安裝
yum localinstall grafana-6.2.2-1.x86_64.rpm
啟動 grafana 服務:
service grafana-server start
停止 grafana 服務:
service grafana-server stop
設置開機啟動:
systemctl enable grafana-server.service
啟動服務,打開瀏覽器,輸入IP+端口,3000為 Grafana 的默認偵聽端口。
注意一點就是先添加防火牆:
firewall-cmd --add-port=3000/tcp --permanent
firewall-cmd --add-port=3000/udp --permanent
firewall-cmd --reload
默認賬號密碼:admin/admin
還記得前面說的原理嗎?InfluxDB數據庫存放數據---通過Grafana動態展示出來,那么數據從哪里來?so。。。配置JMeter
四、JMeter配置
在監聽器中添加后置監聽器
主要是配好url
五、InfluxDB配置
1)進入 InfluxDB 數據庫:influx
2)新建一個”jmetertest”數據庫:create database jmetertest
3)查看數據庫:show databases;
4)使用jmetertest數據庫:use jmetertest;
5)顯示表:show measurements;
有兩張表,我們主要看jmeter表
6)去 JMeter 中運行一個准備好的腳本,運行完在jmeter表中查看有沒有數據。
7)查看 JMeter 表:select * from jmeter;
數據出來了,那么配置Grafana,把這些數據動態展示出來。
六、配置Grafana
登錄 Grafana,進入首頁
1)創建一個數據源
2)選擇InfluxDB
3)填寫好以下信息,注意填寫正確
4)新建一個import
5)選擇4026模板
如果要其他模板,去儀表盤中選擇:
https://grafana.com/grafana/dashboards