本地Windows 10运行k6脚本,无法写入Azure云InfluxDB的认证问题
解决k6无法将统计数据写入Azure上InfluxDB的问题
以下是针对性的排查和解决步骤:
检查网络连通性
先确认本地Windows 10机器能访问Azure服务器的8086端口,打开PowerShell执行:Test-NetConnection 10.65.202.1 -Port 8086如果返回
TcpTestSucceeded: False,说明网络不通。需要检查Azure服务器的**网络安全组(NSG)**是否开放了8086端口,并且允许本地机器的IP地址访问。验证InfluxDB的认证与权限
- 登录InfluxDB命令行界面,确认
DatabaseName数据库存在,且admin用户有写入权限:show databases use DatabaseName grant write on DatabaseName to admin - 检查InfluxDB配置文件(
influxdb.conf)中auth-enabled参数是否设置为true,如果未开启认证,修改后需重启InfluxDB服务。
- 登录InfluxDB命令行界面,确认
修正Windows环境变量的设置方式
你之前使用的Linux风格环境变量写法在Windows下不生效,需改用对应系统的命令:- 在CMD中执行:
set K6_INFLUXDB_USERNAME=admin set K6_INFLUXDB_PASSWORD=pass@123 k6 run --out influxdb=http://10.65.202.1:8086/DatabaseName script.js - 在PowerShell中执行:
$env:K6_INFLUXDB_USERNAME="admin" $env:K6_INFLUXDB_PASSWORD="pass@123" k6 run --out influxdb=http://10.65.202.1:8086/DatabaseName script.js
- 在CMD中执行:
优化URL编码与命令格式
密码中的@用%40编码是正确的,但在Windows CMD中建议用引号包裹--out参数,避免特殊字符解析错误:k6 run --out "influxdb=admin:pass%40123@http://10.65.202.1:8086/DatabaseName" script.js查看k6详细日志定位错误
运行k6时添加--verbose参数输出详细日志,根据日志信息定位问题:k6 run --verbose --out "influxdb=admin:pass%40123@http://10.65.202.1:8086/DatabaseName" script.js- 若日志显示
connection refused:优先排查网络连通性 - 若日志显示
unauthorized:检查用户权限或认证配置 - 若日志显示
database not found:确认DatabaseName已创建
- 若日志显示
内容的提问来源于stack exchange,提问作者Deepak
相关产品推荐
相关产品推荐

