docker環境搭建JMeter+Grafana+influxdb可視化性能監控平臺的教程

背景:

在用jmeter壓測接口的時候發現其原生的監控起來不是很友好,在網上查閱的時候發現結合influxDB和grafana,出來的報告很炫酷,監聽結果看起來很舒服很明瞭。

前言:

InfluxDB:是一款用Go語言編寫的開源分佈式時序數據庫。該數據庫現在主要用於存儲涉及大量的時間戳數據。 小數據量的時候還性能還不錯,但是數據量大一點,性能問題就體現出來瞭。不過隻是收集一下我幾個小時測試的數據,還是足夠瞭。要是幾個月的測試數據那還是建議換其他的數據庫。

時序數據庫:處理帶時間標簽(按照時間的順序變化,即時間序列化)的數據,帶時間標簽的數據也稱為時間序列數據。想象它就像一個sql表,其中時間是它的主鍵

Grafana:是一個開源軟件,擁有豐富的指標儀表盤和圖形編輯器,適用Graphite, Elasticsearch, OpenTSDB, Prometheus,InfluxDB。簡單點說就是一套開源WEB可視化平臺。

原理:

jmeter壓測生成測試數據 –> 然後通過jmeter中的後端監聽異步將測試數據發送到influxDB中保存起來 –> grafana通過拉取influxDB中的數據,將測試結果的相關數據展示到儀表盤中

influxdb數據庫中的名詞理解

influxDB中的名詞 傳統數據庫中的概念
database 數據庫
measurement 數據庫中的表
points 表裡面的一行數據

我是在ubuntu上部署的

1、安裝docker

由於apt官方庫裡的docker版本可能比較舊,所以先卸載可能存在的舊版本:

sudo apt-get remove docker docker-engine docker-ce docker.io

更新apt包索引:

sudo apt-get update

安裝以下包以使apt可以通過HTTPS使用存儲庫(repository):

sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

添加Docker官方的GPG密鑰:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

使用下面的命令來設置stable存儲庫:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

再更新一下apt包索引:

sudo apt-get update

安裝最新版本的Docker CE:

sudo apt-get install -y docker-ce

檢查docker是否安裝完成:

docker --version

當提示docker 版本就說明docker安裝成功瞭

2、安裝及配置influxDB

2.1 docker下安裝influxDB 查看並拉取鏡像

##查看鏡像 
docker search influx 
 
## 根據鏡像名稱拉取鏡像 
docker pull tutum/influxdb

運行鏡像並生成容器

## -d 讓服務後臺運行,指令退出瞭,程序依舊運行 
docker run -d --name jmeter-influx -p 8086:8086 tutum/influxdb

–name jmeter-influx:指定生成的容器的名稱為jmeter-influx,可根據自己情況自行起名

-p 8086:8086:指定端口映射,宿主機端口 : 容器端口

tutum/influxdb :鏡像名稱,可根據自己情況自行起名

查看容器是否生成成功

## 查看鏡像是否打成功 
docker images 
 
## 查看容器是否啟動成功 
docker ps 
 
## 查看所有啟動過的容,包括成功和失敗的 
docker ps -a

瀏覽器可訪問地址:http://xxx.x.xxx.xxx:8086/ , 地址是服務器ip+映射的地址

頁面提示404,但是沒有無法訪問即可

2.2 創建數據庫

##進入Influxdb的Docker容器內 
docker exec -it 容器id /bin/bash 
 
##打開influx 
influx 
 
##查看數據庫並創建jmeter數據庫 
show databases; 
create database jmeter; 
show databases; 
use jmeter; 
select * from jmeter; 
exit;

3、Grafana安裝及配置

3.1 docker安裝grafana 查看並拉取鏡像

##查看鏡像 
docker search grafana 
 
## 根據鏡像名稱拉取鏡像 
docker pull grafana/grafana

運行鏡像並生成容器

## 運行鏡像並生成容器 
run -d --name my_grafana -p 3000:3000 grafana/grafana

3.2 Grafana中配置influxDB

瀏覽器通過訪問網址 http://ip:端口,登錄用戶名和密碼都為admin

成功登陸後,添加數據源,我們這裡選擇influxDB。我這已經創建成功瞭一個名為influxDB_demo的數據源瞭

配置前面我們創建的influxDB的jmeter數據庫信息,並測試連接是否成功

至此,數據源配置成功成功瞭。因我已經有一個瞭,這個就給刪除掉瞭

3.3 Grafana使用模板創建儀表盤

配置好瞭influxdb的數據源,那麼就可以獲取到測試數據,現在需要將獲取的數據展示出來,這也是grafana圖形化的作用瞭

官網下載jmeter對應的儀表盤模板

下載地址:https://grafana.com/grafana/dashboards

左右Data Source 選擇influxDB,然後可以根據名稱搜索一下jmeter就可以看到需要的插件瞭

grafana中導入模板

+ 號 –> import –> upload JSON file –>選擇下載下來的jmeter插件,然後配置一下相關信息

name:儀表盤的名稱,自己定義即可

Folder:文件夾目錄,即這個儀表盤保存到哪個目錄下;默認即可

DB name:前面配置的influxdb數據源

Measurement name:influxDB數據庫名稱

Backend send interval:間隔時間

配置好信息後,點擊【import】就可以看到儀表盤頁面瞭

4、Jmeter配置及壓測一個接口

在jmeter測試的一個接口中配置一個後端監聽器

配置這個監聽器

Backend Listener implementation:後端監聽器實現選擇帶有influxdb的

influxdbUrl:ip、端口和數據庫名稱修改為influxdb的ip和端口,以及對應數據庫的名稱

jmeter中運行這個接口後,查看grafana中對應儀表盤中的數據

到此這篇關於docker環境搭建JMeter+Grafana+influxdb可視化性能監控平臺的教程的文章就介紹到這瞭,更多相關docker搭建可視化性能監控平臺內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: