Jmeter監控平台搭建:JMeter+InfluxDB+Grafana
背景
平時一般用Jmeter的Gui模式,添加對應的插件,查看每秒執行緒數、TPS、響應時間等曲線,其實高並發是不建議這麼看的。
解決方案
可以搭配InfluxDB+Grafana工具,使Jmeter非同步發送數據到InfluxDB,然後由Grafana查詢並展示出來,方便查看與比對。
之前使用Docker方式搭建過這個監控平台,這裡記錄下。
安裝Docker
網上安裝Docker的方式很多,我之前也寫過一篇Centos7下安裝Docker可以參考,本次是CentOS8.2安裝(華為雲 root賬戶)。
安裝所需軟體包:
yum install -y yum-utils device-mapper-persistent-data lvm2
發現報錯了,原來是鏡像鏈接不對,官方描述該版本停止更新相應依賴了
於是換源:參考鏈接,重新執行命令
添加阿里雲鏡像:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
直接安裝最新版本:
yum install docker-ce
安裝完成後,輸入systemctl start docker命令啟動docker。
安裝InfluxDB
InfluxDB是一個時間序列資料庫,旨在處理高寫入和查詢負載。用作涉及大量帶時間戳數據的任何用例的後備存儲,包括DevOps監控,應用程式指標,物聯網感測器數據和實時分析。
使用docker命令拉取容器鏡像(由於2.x版本與1.x版本語法不一樣,這裡安裝1.8版本的):
docker pull influxdb:1.8
運行容器(這裡如果不用鏡像id會默認拉取influxdb的最新版本):
docker run --name my_influxdb -p 8086:8086 鏡像id
為了保存jmeter的發送的數據,需要先建一個資料庫,進入容器(docker ps查看容器id)
docker exec -it 容器id /bin/bash
輸入influx進入資料庫交互命令行,創建一個jmeter的資料庫。
influx show databases; create database jmeter; show databases; use jmeter; select * from jmeter; exit;
安裝Grafana
Grafana是一個跨平台的開源的度量分析和可視化工具,可以通過將採集的數據查詢然後可視化的展示,並及時通知,有著精美的可視化圖表模板。
使用docker命令拉取容器鏡像:
docker pull grafana/grafana
運行容器:
docker run --name my_grafana -p 3000:3000 grafana/grafana
輸入IP:3000就可以訪問grafana了, 默認用戶名:admin,密碼admin。(本地訪問華為雲,需要在雲伺服器控制台—安全組,找到對應的安全組開放出入埠)
Grafana配置數據源
登錄grafana,在介面中找到配置中心
接著添加數據源
選擇influxDB
配置數據源的名稱,遠程URL為上面influxdb的ip:8086,database為jmeter
點擊save&test按鈕,會自動連接保存,出現下面彈窗就ok了
數據源添加好後,接著導入圖表展示模板,可以官方下載導入json文件方式,也可以直接輸入模板id導入,這裡選擇後面一種。
直接填寫模板id5496,點擊load
修改模板名稱,匹配數據源,點擊import就ok了
如下所示:
Jmeter配置
Jmeter的安裝就省略了,這裡說下插件配置,添加後端監聽器:
後端監聽器配置如下,其他配置不用動:
調試對比數據
添加一個簡單jmeter腳本,運行5分鐘
查看聚合報告
查看grafana圖表,選擇最近15分鐘的數據,和上面的報告數據也能對得上。