2種方式:Jmeter Influxdb(Prometheus) Jmeter搭建可視化性能測試監控平臺

前言:
因爲近期項目涉及到一些性能測試監控平臺相關的想法
Grafana+Influxdb+Jmeter
Grafana+Prometheus+Jmeter 等等
抽週末時間來嘗試搭建下Grafana+Influxdb+Jmeter
主要介紹使用docker-compose.yml文件的方式進行安裝,簡潔明瞭,不用逐個去安裝服務。

連接aliyun服務器實例

首先得有一臺Linux服務器(虛擬機或者雲服務器),該文以aliyun服務器爲基礎,CentOS 8.0

如果是雲服務器,記得配置需要用到的端口,3000,8086,8083,8090等,設置安全組–> 配置規則裏面:
設置安全組
設置安全組

Aliyun實例安裝Docker:

Linux:Centos 8.0

更新軟件
sudo yum update

卸載舊版本 (如果安裝過舊版本的話)
sudo yum remove docker docker-common docker-selinux docker-engine

安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

設置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo (這個是官方源,很慢)
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo (阿里的源,較快)

可以查看所有倉庫中所有docker版本,並選擇特定版本安裝
yum list docker-ce --showduplicates | sort -r
install docker

安裝docker
sudo yum install docker-ce #由於repo中默認只開啓stable倉庫,故這裏安裝的是最新穩定版17.12.0
sudo yum install # 例如:sudo yum install docker-ce-18.03.1.ce-1.el7.centos

:注意阿里雲的el7是EL7,切勿看錯成數字1

將root添加到docker組,以便您能夠執行Docker命令,而無需使用sudo,安裝完成之後需要重啓ssh session。

sudo usermod -a -G docker root

啓動Docker

sudo systemctl start docker # 
(sudo systemctl enable docker) #開機啓動 
sudo docker --version #查看Docker版本

安裝Compose,運行compose.yml

pip3 install docker-compose

docker-compose.yml如下:

version: '3.1'

services:
 influxdb:
   image: influxdb:latest
   container_name: influxdb
   ports:
     - "8083:8083"
     - "8086:8086"
     - "8090:8090"
   environment:
     - INFLUXDB_DB=db0
     - INFLUXDB_ADMIN_USER=${INFLUXDB_USERNAME}
     - INFLUXDB_ADMIN_PASSWORD=${INFLUXDB_PASSWORD}
   volumes:
     - influxdb-storage:/var/lib/influxdb

 grafana:
   image: grafana/grafana:latest
   container_name: grafana
   ports:
     - "3000:3000"
   environment:
     - GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME}
     - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
   depends_on:
     - influxdb
   user: "0"
   volumes:
     - grafana-storage:/var/lib/grafana
     - ./grafana-provisioning/:/etc/grafana/provisioning
volumes:
  influxdb-storage:
  chronograf-storage:
  grafana-storage:

設置環境文件.env, 主要是設置用戶名和密碼

INFLUXDB_USERNAME=admin
INFLUXDB_PASSWORD=admin

GRAFANA_USERNAME=admin
GRAFANA_PASSWORD=admin

運行docker-compose,安裝influxdb和grafana,安裝完成之後如下圖:

docker-compose up -d

在這裏插入圖片描述
http://IP:3000

初始密碼爲:admin/admin
首次登陸grafana會要求設置新密碼
在這裏插入圖片描述

登陸到grafana主頁之後,創建新的Data Source:
在這裏插入圖片描述
配置Database,選擇InfluxDB:
InfluxDB
填入你的IP地址http://*.*.*.*:8086
在這裏插入圖片描述
輸入InfluxDB信息,如果沒做更改的話user和pwd都是默認的root, 爲了安全自行修改。
在這裏插入圖片描述
在這裏插入圖片描述

Dashboards導入Jmeter模板

到Dashboards去下載: https://grafana.com/grafana/dashboards
在這裏插入圖片描述

或者直接訪問:https://grafana.com/grafana/dashboards/5496
複製該模板的ID 或者URL
在這裏插入圖片描述
到我們登陸的Grafana主頁去粘貼即可,如下圖
在這裏插入圖片描述
然後可以進行命名,填入之前建好的DataSource 名字,設置發送時間,保存即可。
在這裏插入圖片描述
然後轉到剛剛建好的主頁,如下圖,右上角可以設置:
在這裏插入圖片描述
設置界面,可更具你的需要進行設置,比如下面兩個點分別是設置時間顯示和刷新頻率。
在這裏插入圖片描述

接下來就準備運行Jmeter ,生成數據,看看效果。
挑選了一個URL,對其進行簡單的運行並返回數據。
https://mp.weixin.qq.com/s/pzsE326aPk-4iPhfBC52sQ
Jmeter腳本
Jmeter腳本
Jmeter腳本
其結果如下:
在這裏插入圖片描述

另外再介紹一種方式就是使用docker-compose.yml的方式安裝,而是一步步通過Docker安裝的方式如下:

通過Docker images安裝

安裝influxdb

搜索influx:docker search influx
拉取influxdb鏡像:docker pull influxdb
查看鏡像Images: docker images
運行influxdb容器:docker run --name my_influxdbName -p 8086:8086 influxdb
查看運行的容器Container:docker ps -a
進入容器:docker exec -it 容器ID /bin/bash
創建數據庫jmeterDB: create database jmeterDB
創建數據庫
influxdb容器運行成功後,通過Web瀏覽器訪問http://docker-host-ip:8083訪問influxdb後臺管理,並登錄後臺管理系統(默認用戶名:root, 默認密碼:root)

安裝grafana

搜索grafana:docker search grafana

拉取grafana鏡像:docker pull grafana/grafana

運行容器:docker run --name my_grafana -p 3000:3000 grafana/grafana

然後查看狀態
docker ps -a 查看當前運行的實例
退出來再次啓動即可
docker start ContainerID

接下來就是使用http://IPAddress:3000去登陸grafana並進行配置了
步驟如上文docker-compose的方式。

Prometheus

需要在Jmeter下裝一個插件,用於監聽。
https://search.maven.org/remotecontent?filepath=com/github/johrstrom/jmeter-prometheus-plugin/0.6.0/jmeter-prometheus-plugin-0.6.0.jar
下載jmeter-prometheus-plugin-0.6.0.jar之後放到Jmeter/lib/ext下,重啓Jmeter即可。
jmeter-prometheus-plugin
Prometheus Listener
prometheus Metrics
更多設置參考這篇文章:
https://qainsights.com/jmeter-prometheus-and-grafana-integration/
Grafana+Prometheus
Prometheus

總結:

性能大佬說:
其實,很多測試朋友喜歡這個監控,是因爲炫酷,可以在領導面前裝逼,出個很炫的報告,
我覺得真正性能監控分析,用這個沒啥卵用,至少我不會用,so,模板配置,感興趣的自己研究下,之所以寫這篇,也是總結下大家的疑問;當然,如果你出去面試,可以把這個拿出去吹一下,畢竟工作不好找。

搭建其實也很簡單,一個配置文件就搞定,但是想要更好地應用到實踐中的話需要對Grafana Dashboard做更多的優化和設置。
另外Grafana+Prometheus+Jmeter這種方式不過就是換一個DataBase,將InfluxDB換成Prometheus,理念大體一樣,很細微的差別。
但是這個Grafana+Prometheus/influxDB模式可以用到其他地方的監控,也是個不錯的選擇。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章