解决痛点:jmeter在linux 环境压测缺乏可视化,不适合多人同时调用查看分析性能瓶颈,通过部署监控系统可以在测试过程和后续数据归纳进行对多人查看分析。
技术要点:jmeter + influxdb + grafana,docker
实现原理:利用jmeter 可以写入influxdb数据,再由grafana进行读取数据库模板化实现监控。
物理组网:
流程组网:
配置过程:
1、docker 部署influxdb:
拉取镜像命令:docker pull influxdb:1.6.3
运行influxdb命令: docker run -d --name influxdb_test -p 8086:8086 ec6fc170ee1c
2、创建jmeter表:
进入容器命令:docker exec -it 6f33413b287f /bin/bash
创建表命令:create database jmeter
2、docker 部署 grafana:
拉取镜像:docker pull grafana/grafana
启动服务:docker run -d --name grafana_jmeter -p 3000:3000 docker.io/grafana/grafana
登入及修改命令 :
浏览器访问:虚拟机IP地址:3000
默认账户密码:admin/admin
配置grafana链接数据库:
设置--config--选择influxDB--输入 数据库地址 -- 输入 表名
选用grafana模板:
模板导入--选用 5496 --load
导入模板:
选择数据库--import
3、Jmeter 配置连接influxdb
添加 --- 监听器 --- 后端监听器
配置监听器:
选择数据库类型--- 填入 数据库 URL -- 自定义项目名称 -- 数据库表名
实际效果展示
4、问题记录:
1-1:拉去docker镜像失败:查看是否启动了docker,启动命令:systemctl start docker
2.1 grafana连接influxdb失败,尝试关闭防火墙
2.1 grafana导入模板显示Gateway Timeout,尝试添加ipv4转发路由功能,实现docker内部能访问外网:
# 提供ipv4转发功能
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
#重启网络
systemctl restart network
#重启docker
systemctl restart docker
#重启docker实例
3.1 grafana 没数据,influxdb数据库有数据,可能虚拟机时间和PC压测这边不一致导致的。
# 参考解决方案 ntp同步
yum install -y ntpdate
ntpdate ntp.aliyun.com