性能测试:工具篇:Jmeter实时可视化平台搭建
部署 influxDB
首先,pull influxBD
镜像(拉取是1.8的版本,虽有2.0+的版本,但我还是喜欢站在巨人的肩头前行…):
debugfeng@debugfeng:~$ sudo docker pull influxdb:1.8
1.8: Pulling from library/influxdb
1671565cc8df: Pull complete
3e94d13e55e7: Pull complete
fa9c7528c685: Pull complete
52a25ba52346: Pull complete
aa26e2239d02: Pull complete
0ab001de8b69: Pull complete
610b13a73459: Pull complete
4de10ef52d67: Pull complete
Digest: sha256:4e3d30d9d00798581a820d19ff762ce000a217498e2e00b361ca334595f1f515
Status: Downloaded newer image for influxdb:1.8
docker.io/library/influxdb:1.8
其次,docker run ...
,启动容器并运行:
debugfeng@debugfeng:~$ sudo docker run -itd -p 8083:8083 -p 8086:8086 --name my-influxdb influxdb:1.8
caf829d4fb272c2f9cf856022fe534e8ad5f0d507be9d150e6f590692fe5a59b
debugfeng@debugfeng:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
caf829d4fb27 influxdb:1.8 "/entrypoint.sh infl…" 5 seconds ago Up 4 seconds 0.0.0.0:8083->8083/tcp, :::8083->8083/tcp, 0.0.0.0:8086->8086/tcp, :::8086->8086/tcp my-influxdb
最后,docker exec -it ... /bin/bash
,进入指定容器,启动并创建数据库:
debugfeng@debugfeng:~$ sudo docker exec -it caf829d4fb27 /bin/bash
root@caf829d4fb27:/# ls
bin boot dev entrypoint.sh etc home init-influxdb.sh lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@caf829d4fb27:/# cd usr/
root@caf829d4fb27:/usr# ls
bin games include lib libexec local sbin share src
root@caf829d4fb27:/usr# cd bin/
root@caf829d4fb27:/usr/bin# ./influx
Connected to http://localhost:8086 version 1.8.10
InfluxDB shell version: 1.8.10
> show databases;
name: databases
name
----
_internal
> create database jmeter;
> show databases;
name: databases
name
----
_internal
jmeter
>
注意点
,设置influxDB
时区(因为默认时区和北京相差8h
,所以要同步下时区,不然后面查询不到数据)
如果你服务器时间是正常的,可直接复制服务器时间到容器内:
debugfeng@debugfeng:~$ timedatectl set-timezone "Asia/Shanghai"
debugfeng@debugfeng:/usr/share$ sudo docker cp zoneinfo 722a729efd74:/usr/share
debugfeng@debugfeng:/usr/share$ sudo docker exec -it 722a729efd74 /bin/bash
root@722a729efd74:/# date
Thu Sep 1 00:28:03 UTC 2022
root@722a729efd74:/# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
root@722a729efd74:/# echo "Asia/Shanghai" > /etc/timezone
root@722a729efd74:/# date
Thu Sep 1 08:28:40 CST 2022
root@722a729efd74:/# exit
如果你服务器时间也不正常,需执行如下命令(ubuntu
系统),先同步下时间:
debugfeng@debugfeng:~$ date
Wed 31 Aug 2022 11:00:15 AM UTC
debugfeng@debugfeng:~$ timedatectl status
Local time: Wed 2022-08-31 11:02:18 UTC
Universal time: Wed 2022-08-31 11:02:18 UTC
RTC time: Wed 2022-08-31 11:02:18
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
debugfeng@debugfeng:~$ timedatectl set-timezone "Asia/Shanghai"
debugfeng@debugfeng:~$ timedatectl status
Local time: Wed 2022-08-31 19:02:50 CST
Universal time: Wed 2022-08-31 11:02:50 UTC
RTC time: Wed 2022-08-31 11:02:50
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
部署 Grafana
首先,pull grafana/grafana
镜像:
debugfeng@debugfeng:~$ sudo docker pull grafana/grafana
latest: Pulling from grafana/grafana
9621f1afde84: Pull complete
37c977d2b27c: Pull complete
c808de7a697e: Pull complete
86659f76fb09: Pull complete
747aee88ceca: Pull complete
99d875e11915: Pull complete
3fb2327ae1ed: Pull complete
ac9523800f50: Pull complete
e15e29cdce8f: Pull complete
Digest: sha256:980ff2697655a0aa5718e40bbda6ac52299d2f3b1584d0081152e2d0a4742078
其次,docker run ...
,启动容器并运行:
debugfeng@debugfeng:~$ sudo docker run -d -p 3000:3000 --name=my-grafana grafana/grafana
3fee0e5e988dc658db10ef3c6a9cd52db0b2c972b2567500d2661364a20ea9c9
最后,直接 http://ip_address:3000
到浏览器访问即可。默认账号为:admin
;默认密码为:admin
数据展示仪表盘模板链接https://grafana.com/grafana/dashboards/5496-apache-jmeter-dashboard-by-ubikloadpack/
部署jmeter
influxdbUrl
固定写法:http://ip_address:8086/write?db=jmeter
measurement
:为创建的influxdb
数据库名称
今天先聊到这里吧,以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你,如有疑问、歧义,直接私信留言会及时修正发布;非常期待你的一键 3 连【 点赞、收藏、分享 】哟,谢谢!
未完成,待续……
一直在努力,希望你也是!
微信搜索公众号:就用python