求助:Locust Worker节点启动失败,无法连接Master节点
Locust Worker无法连接Master节点的排查与解决方法
问题重现
执行以下命令启动Locust Master及7个Worker节点:
locust -f locust_test.py --master-host=10.5.0.3 --master --master-port=8089 > master.log 2>&1 & for x in {1..7}; do locust -f locust_test.py --master-host=10.5.0.3 --master-port=8089 --worker > worker_$x.log 2>&1 & done
Worker节点出现如下警告:
[2024-08-08 09:58:47,279] locust-32-core-qwed/WARNING/locust.runners: Failed to connect to master 10.5.0.3:8089, retry 18/60.
排查与解决步骤
确认Master节点正常启动并监听端口
- 查看Master日志验证启动状态:
tail -f master.log,检查是否存在Starting Locust master at *:8089类日志,确认端口已正常监听。 - 检查端口绑定情况:执行
ss -tulpn | grep 8089(或netstat -tulpn | grep 8089),确保端口绑定的是0.0.0.0或10.5.0.3,而非127.0.0.1(绑定回环地址会导致外部节点无法访问)。 - 修正Master启动命令:Master启动无需指定
--master-host参数,该参数仅用于Worker节点。正确的Master启动命令应为:locust -f locust_test.py --master --master-port=8089 > master.log 2>&1 &
- 查看Master日志验证启动状态:
检查网络连通性与防火墙规则
- 在Worker节点测试端口连通性:执行
nc -zv 10.5.0.3 8089或telnet 10.5.0.3 8089,若连接失败则说明存在网络或防火墙拦截问题。 - 开放Master节点8089端口:
- 若使用firewalld:
firewall-cmd --add-port=8089/tcp --permanent firewall-cmd --reload - 若使用iptables:
iptables -A INPUT -p tcp --dport 8089 -j ACCEPT
- 若使用firewalld:
- 确认Master与Worker处于同一可互通网络,检查VPC、子网路由是否允许两者间的流量传输。
- 在Worker节点测试端口连通性:执行
验证Locust版本一致性
Master与Worker节点的Locust版本必须完全一致,否则会出现兼容性问题。分别在两边执行locust --version,版本不一致时统一升级或降级至同一版本。查看Worker日志获取详细错误
查看Worker节点的worker_x.log文件,根据具体错误定位问题:- 连接超时:优先排查网络延迟、防火墙拦截或路由配置问题。
- 连接被拒绝:确认Master节点是否正常启动,端口是否正确监听。
内容的提问来源于stack exchange,提问作者Dhanashekhar I.J.
相关产品推荐
相关产品推荐

