linux环境下:jmeter+Grafana+influxdb实现性能监控的分布式搭建

使用jmeter做压力测试的时候,最好使用Linux的分布式进行压测

如果使用windows的单机压测会出现以下问题:
1)出现单机端口不够用
2)单机性能限制,由内存泄漏导致堆栈内存不断增大,从而引发内存溢出
3)单机带宽不够(如何判断是网络问题:A机在做压测时响应时间过快,使用B机子点击如果速度还是很快,那么就是带宽问题)
4)负载过高性能损耗大,延时高,数据不准等问题

如果使用Windows分布式也会出现和单机压测的类似问题
1)出现端口不够用
2)执行机的电脑配置不相同,导致线程数的设置要尽量配合最小配置的执行机,资源的浪费;同时压测会需要多台电脑,也会导致资源浪费
3)由执行机到服务器网络资源的损耗等问题

注意
1)所有机子处于同一局域网(调度机和执行机要相互ping的通)
2)所有机子Jmeter和JDK的版本要一致
3)查看1099端口是否被占用(netstat -lnpt |grep 1099),如果被占用在配置的过程要替换
4)只需要控制机有脚本,压测机不需要有脚本,但需要csv文件(最好csv的文件的脚本地址改为Linux上存放csv的地址,例如:把csv存放在/usr/file下,在jmeter的脚本csv的文件配置,/usr/file/1.csv)
5)任何一个压测执行机被分布式调用后,必须恢复到finished状态,才能被继续调用,杀死进程(ps -ef|grep jmeter ,kill -9 xxxx),再重新调用
6)中断调试机,执行机不会被中断
7)在做Linux分布式的时候,CVS文件和jar除了调度机需要上传,其他执行机也是需要上传的

一.influxdb安装配置

1.安装influxdb

yum install https://dl.influxdata.com/influxdb/releases/influxdb-1.8.4.x86_64.rpm
(可以直接把1.8.4改成1.8.5也可以直接下载)
官网地址:https://www.influxdata.com/

2.修改influxdb配置文件-influxdb.conf

在/etc/influxdb下修改influxdb.conf的文件,如下图修改:

database=“jmeter”#数据库,注意不要漏了双引号,否则会报“expected value but found “jmeter” instead”的错误
在这里插入图片描述
meta用于存放数据库的一些元数据
在这里插入图片描述
data目录存放实际存储的数据文件
wal目录存放预写日志文件
在这里插入图片描述
修改端口的位置
在这里插入图片描述

3.创建目录更新权限

mkdir -p /usr/local/influxdb/
chown -R influxdb:influxdb /usr/local/influxdb/ 

启动命令

第一种:influxd -config /etc/influxdb/influxdb.conf
第二种:
1)编辑vim /etc/profile在文件末尾添加配置

export INFLUXDB_CONFIG_PATH=/etc/influxdb/influxdb.conf

2)启动配置文件

source /etc/profile

3)启动命令

influxd &

4)查看端口

netstat -anp|grep 8088

5)创建数据库和用户

#进入数据库
influx
#创建数据库
create database jmeter
#查看全部数据库
show databases
#使用数据库
use jmeter
#创建管理员权限的用户
CREATE USER admin WITH PASSWORD 'admin' WITH ALL PRIVILEGES

注意:
如果grafana在配置数据源的时候会访问不到influxdb,就需要打开8086端口

firewall-cmd --zone=public --add-port=8086/tcp --permanent
systemctl restart firewalld.service --启动防火墙

二.Grafana安装配置

1.安装Grafana

官网下载地址:https://grafana.com/grafana/download
(建议是不要下载最新版本把)
在这里插入图片描述

2.启动服务

service grafana-server start#启动
service grafana-server status#状态
netstat -anp|grep 3000#查看端口

3.浏览器访问

http://本机IP:3000/login(服务器ip+端口号)

4.配置

1)添加数据库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2)配置图表
官网地址:https://grafana.com/dashboards
在import中添加图表
在这里插入图片描述
导入后会出现以下页面的内容
在这里插入图片描述

三.JDK安装配置和jmeter安装配置

参考链接: https://blog.csdn.net/m0_58026506/article/details/126233758?spm=1001.2014.3001.5506
1)安装配置完成后
在线程组->监听器->后置监听器
在这里插入图片描述
5000是每5秒上传到influx里

在这里输入对应的application名称就可以看到对应数据内容
在这里插入图片描述
注意: sunmaryOnly默认是true的情况下是返回简单正确数据的内容,如果需要查看到错误的内容,就需要改成false
在这里插入图片描述

2)把脚本文件上传到Linux下
运行脚本

 jmeter -n -t 运行脚本.jmx -l /tmp/运行数据结果.jtl
 #会在该目录下导出一个jmeter的日志文件

参数说明:
-h 帮助 -> 打印出有用的信息并退出
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件
-r 远程执行 -> 启动远程服务
-H 代理主机 -> 设置 JMeter 使用的代理主机
-P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
注意:如果未设置Jmeter的环境变量则在执行脚本的时候需要检查当前目录是否是jmeter的bin目录下
3)可以在grafana上看到实时的数据变化
在这里插入图片描述
4)如果你在grafana没有看到数据的变化
i.在数据库中查看是不是用数据,看看数据表有没有该应用名称的数据

use jmeter
select * from jmeter

如果没有数据,你就需要检查下你jmeter配置后置数据库的配置的IP是否正常
或者查看grafana中数据库的配置
ii.可能是Linux的时间和现在的时间不是一个点

date#查看Linux系统时间
date -s "xxxx-XX-XX XX:XX:XX" #修改时间

参考链接: https://blog.csdn.net/qq_42566788/article/details/124861473

四.jmeter分布式搭建

参考链接1: https://blog.csdn.net/qq_37822090/article/details/105145354
参考链接2: https://www.cnblogs.com/seamy/p/15654545.html
参考链接3: https://blog.csdn.net/jin185440635/article/details/126689767

执行机日志:在jmeter/bin目录下jmeter-server.log

1.调度机的配置

修改jmeter.properties配置文件
1)remote_hosts是执行机的IP,多个执行机用‘,’分割;可以加端口号也可以不加
server_port=1099,端口号
在这里插入图片描述
2)server.rmi.ssl.disable=true如何没有修改的话会报java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)的启动错误
在这里插入图片描述

2.执行机的配置

修改jmeter.properties配置文件
1)修改remote_hosts是该执行机的IP
server_port=1099,端口号(可以默认也可以修改别的)
在这里插入图片描述
2)server.rmi.ssl.disable=true
在这里插入图片描述

3.执行

1)执行机

jmeter-server -Djava.rmi.server.hostname= XXX.XXX.XXX.XX(为执行机本机IP)

./jmeter-server #在jmeter的bin目录下执行

在这里插入图片描述

2)调度机

jmeter -n -t 脚本路径.jmx -R XXX.XXX.XXX.XXX,XXX.XXX.XXX.XXX -l 测试输出结果文件路径.jtl -j .log
#启动特定的执行机

jmeter -n -t 脚本路径.jmx -r -l 测试输出结果文件路径.jtl -j .log
#启动全部执行机

调度机显示:
在这里插入图片描述
执行机显示:
启动一次就有一组的Starting和Finished
在这里插入图片描述

4.一些报错

1)如果是报执行机缺少rmi_keystore.jks文件,就查看参考链接3
2)如果报拒绝链接
i.可以修改执行机的jmeter-server,该IP为执行机IP;
在这里插入图片描述
ii.是1099端口没有开放(可以选择开放端口或者关闭防火墙)

firewall-cmd --zone=public --query-port=8091/tcp        (udp) 查询
firewall-cmd --zone=public --add-port=8091/tcp --permanent    添加开放端口
firewall-cmd --reload 重启

3)如果卡住没有执行下去,需要查看下执行机的日志:在jmeter/bin目录下jmeter-server.log
4)如果报No route to host错误时需要执行机关闭防火墙

systemctl stop firewalld
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值