docker環(huán)境搭建JMeter+Grafana+influxdb可視化性能監(jiān)控平臺(tái)的教程
背景:
在用jmeter壓測(cè)接口的時(shí)候發(fā)現(xiàn)其原生的監(jiān)控起來不是很友好,在網(wǎng)上查閱的時(shí)候發(fā)現(xiàn)結(jié)合influxDB和grafana,出來的報(bào)告很炫酷,監(jiān)聽結(jié)果看起來很舒服很明了。
前言:
InfluxDB:是一款用Go語言編寫的開源分布式時(shí)序數(shù)據(jù)庫。該數(shù)據(jù)庫現(xiàn)在主要用于存儲(chǔ)涉及大量的時(shí)間戳數(shù)據(jù)。 小數(shù)據(jù)量的時(shí)候還性能還不錯(cuò),但是數(shù)據(jù)量大一點(diǎn),性能問題就體現(xiàn)出來了。不過只是收集一下我?guī)讉€(gè)小時(shí)測(cè)試的數(shù)據(jù),還是足夠了。要是幾個(gè)月的測(cè)試數(shù)據(jù)那還是建議換其他的數(shù)據(jù)庫。
時(shí)序數(shù)據(jù)庫:處理帶時(shí)間標(biāo)簽(按照時(shí)間的順序變化,即時(shí)間序列化)的數(shù)據(jù),帶時(shí)間標(biāo)簽的數(shù)據(jù)也稱為時(shí)間序列數(shù)據(jù)。想象它就像一個(gè)sql表,其中時(shí)間是它的主鍵
Grafana:是一個(gè)開源軟件,擁有豐富的指標(biāo)儀表盤和圖形編輯器,適用Graphite, Elasticsearch, OpenTSDB, Prometheus,InfluxDB。簡(jiǎn)單點(diǎn)說就是一套開源WEB可視化平臺(tái)。
原理:
jmeter壓測(cè)生成測(cè)試數(shù)據(jù) --> 然后通過jmeter中的后端監(jiān)聽異步將測(cè)試數(shù)據(jù)發(fā)送到influxDB中保存起來 --> grafana通過拉取influxDB中的數(shù)據(jù),將測(cè)試結(jié)果的相關(guān)數(shù)據(jù)展示到儀表盤中
influxdb數(shù)據(jù)庫中的名詞理解
influxDB中的名詞 | 傳統(tǒng)數(shù)據(jù)庫中的概念 |
---|---|
database | 數(shù)據(jù)庫 |
measurement | 數(shù)據(jù)庫中的表 |
points | 表里面的一行數(shù)據(jù) |
我是在ubuntu上部署的
1、安裝docker
由于apt官方庫里的docker版本可能比較舊,所以先卸載可能存在的舊版本:
sudo apt-get remove docker docker-engine docker-ce docker.io
更新apt包索引:
sudo apt-get update
安裝以下包以使apt可以通過HTTPS使用存儲(chǔ)庫(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 -
使用下面的命令來設(shè)置stable存儲(chǔ)庫:
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
當(dāng)提示docker 版本就說明docker安裝成功了
2、安裝及配置influxDB
2.1 docker下安裝influxDB 查看并拉取鏡像
##查看鏡像 docker search influx ## 根據(jù)鏡像名稱拉取鏡像 docker pull tutum/influxdb
運(yùn)行鏡像并生成容器
## -d 讓服務(wù)后臺(tái)運(yùn)行,指令退出了,程序依舊運(yùn)行 docker run -d --name jmeter-influx -p 8086:8086 tutum/influxdb
--name jmeter-influx:指定生成的容器的名稱為jmeter-influx,可根據(jù)自己情況自行起名
-p 8086:8086:指定端口映射,宿主機(jī)端口 : 容器端口
tutum/influxdb :鏡像名稱,可根據(jù)自己情況自行起名
查看容器是否生成成功
## 查看鏡像是否打成功 docker images ## 查看容器是否啟動(dòng)成功 docker ps ## 查看所有啟動(dòng)過的容,包括成功和失敗的 docker ps -a
瀏覽器可訪問地址:http://xxx.x.xxx.xxx:8086/ , 地址是服務(wù)器ip+映射的地址
頁面提示404,但是沒有無法訪問即可
2.2 創(chuàng)建數(shù)據(jù)庫
##進(jìn)入Influxdb的Docker容器內(nèi) docker exec -it 容器id /bin/bash ##打開influx influx ##查看數(shù)據(jù)庫并創(chuàng)建jmeter數(shù)據(jù)庫 show databases; create database jmeter; show databases; use jmeter; select * from jmeter; exit;
3、Grafana安裝及配置
3.1 docker安裝grafana 查看并拉取鏡像
##查看鏡像 docker search grafana ## 根據(jù)鏡像名稱拉取鏡像 docker pull grafana/grafana
運(yùn)行鏡像并生成容器
## 運(yùn)行鏡像并生成容器 run -d --name my_grafana -p 3000:3000 grafana/grafana
3.2 Grafana中配置influxDB
瀏覽器通過訪問網(wǎng)址 http://ip:端口,登錄用戶名和密碼都為admin
成功登陸后,添加數(shù)據(jù)源,我們這里選擇influxDB。我這已經(jīng)創(chuàng)建成功了一個(gè)名為influxDB_demo的數(shù)據(jù)源了
配置前面我們創(chuàng)建的influxDB的jmeter數(shù)據(jù)庫信息,并測(cè)試連接是否成功
至此,數(shù)據(jù)源配置成功成功了。因我已經(jīng)有一個(gè)了,這個(gè)就給刪除掉了
3.3 Grafana使用模板創(chuàng)建儀表盤
配置好了influxdb的數(shù)據(jù)源,那么就可以獲取到測(cè)試數(shù)據(jù),現(xiàn)在需要將獲取的數(shù)據(jù)展示出來,這也是grafana圖形化的作用了
官網(wǎng)下載jmeter對(duì)應(yīng)的儀表盤模板
下載地址:https://grafana.com/grafana/dashboards
左右Data Source 選擇influxDB,然后可以根據(jù)名稱搜索一下jmeter就可以看到需要的插件了
grafana中導(dǎo)入模板
+ 號(hào) --> import --> upload JSON file -->選擇下載下來的jmeter插件,然后配置一下相關(guān)信息
name:儀表盤的名稱,自己定義即可
Folder:文件夾目錄,即這個(gè)儀表盤保存到哪個(gè)目錄下;默認(rèn)即可
DB name:前面配置的influxdb數(shù)據(jù)源
Measurement name:influxDB數(shù)據(jù)庫名稱
Backend send interval:間隔時(shí)間
配置好信息后,點(diǎn)擊【import】就可以看到儀表盤頁面了
4、Jmeter配置及壓測(cè)一個(gè)接口
在jmeter測(cè)試的一個(gè)接口中配置一個(gè)后端監(jiān)聽器
配置這個(gè)監(jiān)聽器
Backend Listener implementation:后端監(jiān)聽器實(shí)現(xiàn)選擇帶有influxdb的
influxdbUrl:ip、端口和數(shù)據(jù)庫名稱修改為influxdb的ip和端口,以及對(duì)應(yīng)數(shù)據(jù)庫的名稱
jmeter中運(yùn)行這個(gè)接口后,查看grafana中對(duì)應(yīng)儀表盤中的數(shù)據(jù)
到此這篇關(guān)于docker環(huán)境搭建JMeter+Grafana+influxdb可視化性能監(jiān)控平臺(tái)的教程的文章就介紹到這了,更多相關(guān)docker搭建可視化性能監(jiān)控平臺(tái)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker-compose管理容器network與ip問題
這篇文章主要介紹了docker-compose管理容器network與ip問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01docker容器與宿主機(jī)的數(shù)據(jù)交互方式總結(jié)
這篇文章主要給大家介紹了關(guān)于docker容器與宿主機(jī)的數(shù)據(jù)交互,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11阿里云esc服務(wù)器Docker部署單節(jié)點(diǎn)Mysql的講解
今天小編就為大家分享一篇關(guān)于阿里云esc服務(wù)器Docker部署單節(jié)點(diǎn)Mysql的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03docker registry 鏡像同步的實(shí)現(xiàn)思路
這篇文章主要介紹了docker registry 鏡像同步的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Jenkins簡(jiǎn)介與Docker部署Jenkins的方法
今天小編就為大家分享一篇關(guān)于Jenkins簡(jiǎn)介與Docker部署Jenkins的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10