JMeter 4.0远程服务器启动报错:Windows主控连Linux从控遇文件未找到异常
解决JMeter分布式测试中rmi_keystore.jks文件缺失的问题
我之前也踩过这个一模一样的坑!在Windows主控端连接Linux从控端跑JMeter分布式测试时,出现rmi_keystore.jks的FileNotFoundException,本质是JMeter通过RMI通信时需要统一的密钥文件做安全验证,要么是文件没生成、要么是路径配置不对,尤其是跨Windows/Linux系统时路径格式容易出错。结合你提供的日志:
2018-05-01 09:13:56,336 INFO o.a.j.e.DistributedRunner: Configuring remote engine: XXX.XXX.XXX.37
2018-05-01 09:13:57,487 INFO o.a.j.e.DistributedRunner: Starting remote engines
2018-05-01 09:13:57,492 INFO o.a.j.e.DistributedRunner: Starting the test @ Tue May 01 09:13:57 CEST 2018 (1525158837487)
2018-05-01 09:13:57,492 INFO o.a.j.e.ClientJM...
给你整理几个靠谱的解决步骤:
1. 先在Linux从控端生成密钥文件
- 进入Linux从控端的JMeter安装目录下的
bin文件夹,运行生成脚本:
全程按回车默认配置就行,生成的./create-rmi-keystore.shrmi_keystore.jks会自动放在bin目录里。之后确认文件存在,并且JMeter运行用户有读取权限。
2. 同步密钥文件到Windows主控端
- 把Linux从控端
bin目录下的rmi_keystore.jks复制到Windows主控端的JMeterbin目录下。划重点:不要在Windows上单独生成这个文件!必须和从控端用同一个,不然密钥不匹配会直接通信失败。
3. 检查两边的jmeter.properties配置
- 分别打开Windows主控端和Linux从控端的
jmeter.properties文件,找到以下两个配置项:server.rmi.ssl.keystore.file=rmi_keystore.jks server.rmi.ssl.truststore.file=rmi_keystore.jks- 如果用相对路径,确保文件确实在JMeter的
bin目录下;如果用绝对路径,注意系统差异:- Linux从控端示例:
/opt/apache-jmeter-5.x/bin/rmi_keystore.jks - Windows主控端示例:
C:\apache-jmeter-5.x\bin\rmi_keystore.jks
- Linux从控端示例:
- Windows路径记得用反斜杠(
\),别直接用Linux的正斜杠,不然系统识别不了路径。
- 如果用相对路径,确保文件确实在JMeter的
4. 验证从控端服务是否正常
- 在Linux从控端启动JMeter服务:
如果启动时没有报错,说明密钥文件配置没问题。要是还是提示找不到文件,再仔细核对路径拼写和文件位置。./jmeter-server
额外排查点
- 要是你用的JMeter版本比较旧,或者主控和从控版本不一致,也可能出现这种奇怪的文件找不到错误,尽量保证两边版本统一。
- 防火墙或者安全组也要确认RMI相关端口(默认1099,还有JMeter随机分配的服务器端口)是开放的,但从你的日志来看已经走到启动测试步骤,大概率还是密钥文件的问题。
内容的提问来源于stack exchange,提问作者user2167148
相关产品推荐
相关产品推荐

