序章html
前幾天在羣裏看到大神們在討論Jmeter + InfluxDB + Grafana監控。提及來Jmeter原生的監控確實太醜了。當年不斷安慰本身說「醜一點不要緊,只要能用,好用,就好了!」。可是心裏並非這樣,作爲一名測試人員,都有一顆精益求精的心。看到有東西能夠替代那原生的監控數據,果斷親自動手部署了一套。web
是吧,很帥吧!數據是用InfluxDB來存儲的,展現則是用Grafana來展現的正則表達式
InfluxDB是一個年輕的時序數據庫,是用一樣很年輕的語言「GO」開發出來的。小數據量的時候還性能還不錯,可是數據量大一點,性能問題就體現出來了。不過只是收集一下我幾個小時測試的數據,仍是足夠了。要是幾個月的測試數據那仍是挑別的數據庫吧。數據庫
Grafana是純粹用js編寫出來的,專門用來展現數據用的。apache
基本上,就是Jmeter經過「Backend Listener」,將測試的數據上傳到個人虛擬機上,經過InfluxDB來存儲,Grafana來展現出來。咱們訪問web,稍微配置一下,就能夠看到展現的數據了。瀏覽器
個人InfluxDB和Grafana都是部署在一臺Linux虛擬機下面的。tcp
虛擬機 --- IP 192.168.245.131性能
1. 安裝InfluxDB 新建InfluxDB下載源學習
cat << EOF | tee /etc/yum.repos.d/influxdb.repo [influxdb] name = InfluxDB Repository - RHEL \$releasever baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdb.key EOF
使用yum下載InfluxDB yum install -y influxdb測試
修改InfluxDB的配置,主要配置jmeter存儲的數據庫與端口號,還有須要將UI端口開放
[root@localhost ~]# vi /etc/influxdb/influxdb.conf # 找到graphite而且修改它的庫與端口 [[graphite]] enabled = true database = "jmeter" bind-address = ":2003" protocol = "tcp" consistency-level = "one" # 找到admin,將前面的#號去掉,開放它的UI端口 [admin] # Determines whether the admin service is enabled. enabled = true # The default bind address used by the admin service. bind-address = ":8083" # Whether the admin service should use HTTPS. # https-enabled = false # The SSL certificate used when HTTPS is enabled. # https-certificate = "/etc/ssl/influxdb.pem
啓動InfluxDB
[root@localhost ~]# /etc/init.d/influxdb restart Stopping influxdb... influxdb process was stopped [ OK ] Starting influxdb... influxdb process was started [ OK ]
打開瀏覽器,訪問虛擬機IP「http://192.168.245.131:8083」 若是啓動成功應該會InfluxDB的web ui界面。查看有沒有jmeter庫,沒有就新建一個。 學習找不到資料?這裏向你們推薦一個學習資料分享羣:175317069,裏面有大牛已經整理好的資料,有自動化,jmeter,性能測試,接口等等的資料,歡迎加羣一塊兒交流學習哦!
在輸入框中,輸入以下,來新建庫: CREATE DATABASE "jmeter"
2. 安裝Grafana 使用yum下載Grafana而且安裝 yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.1-1.x86_64.rpm
啓動Grafana
[root@localhost ~]# /etc/init.d/grafana-server restart OKopping Grafana Server ... [ OK ] Starting Grafana Server: .... OK
打開瀏覽器,訪問虛擬機IP「http://192.168.245.131:3000」
輸入用戶名,密碼登陸系統。用戶名與密碼都是"admin"
添加須要展現數據的數據庫
添加InfluxDB數據庫配置。輸入賬號密碼「admin / admin」,點擊Test & Save 提示「Success」說明成功了 【注意】URL的端口是8086,而剛纔配置的8083是UI的端口。
- 8083端口是InfluxDB的UI界面展現的端口 - 8086端口是Grafana用來從數據庫取數據的端口 - 2003端口則是剛剛設置的,Jmeter往數據庫發數據的端口
3. 添加一個Java請求,方便測試。(由於想偷懶,Java請求我什麼都不用寫,直接運行就能成功) sJava 4. 添加「監聽器 -> 查看結果樹」 運行一下Jmeter,主要看Java請求是否發送出去了
沒有什麼問題,這個時候訪問InfluxDB「http://192.168.245.131:8083」, 在輸入框中輸入以下,點擊回車:
select * from /.*/ limit 1
show measurements 點擊回車後,就應該有數據了,會出現下圖:
這個時候再回來配置Grafana,來展現這些數據
添加一個展現項目
點擊「Home -> New」
添加一個圖表 點擊旁邊的綠
點「Add Panel -> Graph」
配置圖表 配置好了,就能看到圖了。若是看不到圖,請用Jmeter多發幾回Java請求。下圖中選擇監控的選項,能夠在Jmeter的官網上查看到對應的解釋。這裏向你們推薦一個學習資料分享羣:175317069。
大體介紹幾種我經常使用的監控。
【注意】若是要監控<請求名稱>的話,Jmeter上的「Backend Listener」修改以下參數
將「summanyOnly」修改爲False,
將「userRegexpForSamplersList」修改爲True,
而且要設置「samplersList」的值,「samplersList」是能夠支持正則表達式的,「samplersList」的設置要與請求對應,不然找不到該請求。如圖
設置好了,運行一下,在Grafana裏面,就能夠看到本身的請求了。
若是想要了解這些監控都表明什麼意思,能夠訪問Jmeter的官網地址去查看閱讀「http://jmeter.apache.org/usermanual/realtime-results.html」
最後來一張帥氣的圖: