MongoDBReceiver认证失败:配置OpenTelemetry Collector使用默认认证机制
解决OpenTelemetry Collector MongoDB认证失败问题
一、配置Collector使用MongoDB默认认证机制
OpenTelemetry Collector的MongoDB组件(receiver/exporter)默认优先使用SCRAM-SHA-1,你可以通过以下两种方式指定与Compass一致的认证机制:
方式1:在连接URL中直接指定
修改Collector配置里的MongoDB连接字符串,添加authMechanism参数,值对应Compass默认使用的机制(通常是SCRAM-SHA-256,旧版本MongoDB可能是MONGODB-CR):
receivers: mongodb: endpoint: "mongodb://你的用户名:你的密码@localhost:27017/?authMechanism=SCRAM-SHA-256&authSource=admin"
方式2:在配置块中单独设置
如果你的配置是拆分用户名、密码的形式,可添加auth_mechanism字段:
receivers: mongodb: endpoint: "mongodb://localhost:27017/" username: "你的用户名" password: "你的密码" auth_database: "admin" auth_mechanism: "SCRAM-SHA-256"
二、排查SCRAM-SHA-1适配失败的问题
如果尝试适配SCRAM-SHA-1仍失败,可从以下几点检查:
- 用户权限与创建方式:确保MongoDB用户是支持SCRAM-SHA-1的方式创建的,执行以下命令重新创建用户:
use admin db.createUser({ user: "你的用户名", pwd: "你的密码", roles: ["所需角色,如readWrite"], authenticationMechanisms: ["SCRAM-SHA-1"] }) - MongoDB配置验证:检查容器内的
mongod.conf是否启用了SCRAM-SHA-1认证,配置示例:
修改后重启MongoDB容器生效。security: authorization: enabled authenticationMechanisms: SCRAM-SHA-1,SCRAM-SHA-256 - 网络连通性确认:确保宿主机的Collector能正常访问MongoDB容器的27017端口,可通过
telnet localhost 27017或mongosh命令测试连通性。
内容的提问来源于stack exchange,提问作者vfirma
相关产品推荐
相关产品推荐

