用jmeter的朋友越來越多了,畢竟開源、免費、輕量,而且功能、自動化、性能,都能做,
最近不少朋友問JMeter+Grafana+Influxdb可視化性能測試監控平台搭建的問題,雖然網上資料不少,但是有些是錯的;
so,抽時間總結了常用的3種搭建方式,供大家參考;
方式一:運行自定義鏡像
方式二:docker方式安裝
方式三:rpm包方式安裝
建議通過雲服務器來練習:https://www.cnblogs.com/uncleyong/p/12694334.html
方式一:運行自定義鏡像
鏡像方式可以快速部署到不同的環境上搭建可視化性能測試監控平台,我們也可以自定義鏡像,參考:https://www.cnblogs.com/uncleyong/p/8894133.html
我已經自定義好了鏡像,大家直接pull下來,按如下方式操作即可;如果打鏡像或者運行過程中有問題,歡迎進Q群交流;
下面我簡單介紹下pull下來如何使用。
拉取:docker pull registry.cn-hangzhou.aliyuncs.com/qzcsbj/qzcsbj-influxdb_grafana:v1.0
運行容器:docker run -tid --name qzcsbj-influxdb_grafana -p 4000:3000 -p 9086:8086 --privileged=true 9756039ba6b4 /sbin/init
已經創建了數據庫jemter,如果你要重新創建,進入容器:docker exec -it qzcsbj-influxdb_grafana /bin/bash
influx show databases; create database jmeter; show databases; use xxx; exit;
訪問grafana:http://ip:4000,登錄:admin/admin
跳過
添加數據源
選擇數據源為InfluxDB
配置
配置數據寫庫的頻率
測試數據源是否ok
成功
可以修改數據源
下載模板
https://grafana.com/grafana/dashboards
搜索
或者直接訪問:https://grafana.com/grafana/dashboards?dataSource=influxdb&direction=asc&orderBy=name&search=jmeter
導入json模板:
修改為下面配置,然后點擊“Import”
修改模板
可以刪除
下面展示的不是我們設置的值,是定義描述
so,如果要修改,建議刪除后,重新導入模板,修改參數值
jmeter壓測效果展示
jmeter腳本
效果圖:
示例配置2:
summaryOnly:線程組有多個請求,展示明細,值改為false
transaction勾選HTTP請求1
因為上面transaction勾選的HTTP請求1
模板還很多配置,感興趣的可以深入研究下。
方式二:docker方式安裝
和方式一類似,只是你需要自己拉取多個鏡像
建議通過雲服務器來練習:https://www.cnblogs.com/uncleyong/p/12694334.html
前提:
安裝docker,參考:https://www.cnblogs.com/uncleyong/p/8894133.html
安裝influxdb
搜索influx:docker search influx
拉取influxdb鏡像:docker pull influxdb
運行influxdb容器:docker run --name my_influxdb -p 8086:8086 influxdb
進入容器:docker exec -it 容器id /bin/bash
創建數據庫jmeter
influx show databases; create database jmeter; show databases; use jmeter; select * from jmeter; exit;
安裝grafana
搜索grafana:docker search grafana
拉取grafana鏡像:docker pull grafana/grafana
運行容器:docker run --name my_grafana -p 3000:3000 grafana/grafana
配置
(請參考方式一的截圖)
訪問grafana:http://ip:3000
登錄:admin/admin
添加、配置、測試數據源
下載模板:https://grafana.com/grafana/dashboards?dataSource=influxdb&direction=asc&orderBy=name&search=jmeter
導入json模板
jmeter壓測效果展示
(請參考方式一的截圖)
jmeter腳本
效果圖
方式三:rpm包方式安裝
influxdb下載、安裝、配置、啟動
InfluxDB是一個當下比較流行的時序數據庫,InfluxDB使用 Go 語言編寫,無需外部依賴,安裝配置非常方便,適合構建大型分布式系統的監控系統。
下載:wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.1.x86_64.rpm
安裝:yum localinstall influxdb-1.7.1.x86_64.rpm
配置:vim /etc/influxdb/influxdb.conf,搜索:graphite
/graphite
改為:
2003是jmeter往數據庫發數據的端口
注意,后端監聽器要用下面這個,才配置上面
啟動:systemctl start influxdb
查看狀態:systemctl status influxdb.service
查看服務,默認啟動了三個端口,分別是:8088,2003,8086
其中,我們要用到的8086是Grafana從數據庫獲取數據的端口
下面也可以配置數據庫認證
命令行方式進入數據庫
創建數據庫jmeter
再創建一個jmeter2
查看創建的數據庫
查詢數據
創建jmeter腳本
influxdbUrl :http://ip:8086/write?db=jmeter
ip寫安裝influxdb服務的ip地址+端口
db指定數據庫jmeter
application名稱自定義,后面grafana會用到
jmeter中添加請求運行, 執行的數據就會記錄到influxDB
下面腳本運行一次
有數據就說明jmeter入庫成功。
Grafana下載、安裝、配置
下載:官網https://grafana.com/,或者用命令下載:wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.3-1.x86_64.rpm
安裝:yum localinstall grafana-4.6.3-1.x86_64.rpm
配置:vim /etc/grafana/grafana.ini
端口默認是3000
啟動:systemctl start grafana-server,或者systemctl start grafana-server.service
查看狀態:systemctl status grafana-server,或者systemctl status grafana-server.service
瀏覽器訪問Grafana首頁:ip:3000,賬號/密碼默認是admin/admin
創建用戶
輸入用戶名、郵箱、登錄名、登錄密碼
如果這個賬號登錄,test/test,下面展示用戶名
再創建一個用戶:qzcsbj2
賬號密碼:test2/test2
配置數據源
創建用戶qzcsbj的數據源,名稱就用用戶名,對應的數據庫是jmeter
創建用戶qzcsbj2的數據源,名稱就用用戶名,對應的數據庫是jmeter2
為qzcsbj用戶添加模板
導入模板
下載模板:https://grafana.com/grafana/dashboards?dataSource=influxdb
https://grafana.com/grafana/dashboards?dataSource=influxdb&search=jmeter
復制id5496
填寫模板id:5496,然后點擊“Load”
選擇數據源
可以看到我們創建的兩個數據源
選擇第一個數據源,另外,下面間隔時間可以改為1s
但是,並沒有顯示模板(暫時懷疑是版本問題)
不要的可以刪除
4026
為qzcsbj2用戶添加模板
jmeter2為數據庫
用戶qzcsbj的腳本,5u5min
用戶qzcsbj2的腳本,3u5min
下面jmeter2不是數據,是添加模板的measurement名稱,需要匹配
先把數據庫jmeter和jmeter2的數據清了,然后上面兩份腳本分別發一筆請求
下面jmeter是measurement名稱
下面jmeter2是measurement名稱
第一份腳本場景是:5u5min
第一份腳本場景是:3u5min
運行完成后,
用戶qzcsbj看到的
聚合報告845筆,加上最剛剛發的1筆,總共就是846
用戶qzcsbj2看到的
聚合報告509筆,加上最剛剛發的1筆,總共就是510
自定義
點擊【Graph】
點擊【Edit】
修改名稱
選擇數據庫
總結
其實,很多測試朋友喜歡這個監控,是因為炫酷,可以在領導面前裝逼,出個很炫的報告,
我覺得真正性能監控分析,用這個沒啥卵用(個人觀點,只能做一個全局的監控,看到的都是表象,其實,我用命令也都能看到這些指標,最終都是需要定向監控分析,找出問題),
總之我不喜歡用,喜歡原生的命令監控,so,模板配置,感興趣的自己研究下,之所以寫這篇,也是總結下大家的疑問,
當然,如果你出去面試,可以把這個拿出去吹一下,畢竟工作不好找。
有朋友問我用的什么監控?
根據項目技術架構,如果是微服務,公司有類似skywalking的鏈路級監控平台;非微服務,我個人喜歡用命令或者寫shell;
還是那句話:沒有絕對的好與不好,做性能,能發現性能瓶頸就好,能保證穩定運行就ok。