You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Logstash无法向MongoDB发送日志的授权报错问题求解

问题解决方案

你遇到的报错核心是MongoDB身份认证校验未通过,与Logstash采集链路无关(文件输出正常已证明采集侧无问题),可按照以下步骤依次排查解决:

  • 新增authSource参数到MongoDB连接URI
    你当前URI未指定账号校验的认证库,MongoDB默认会从URI后缀的业务库somelogs中校验账号,如果你创建my-user账号时是在admin库下注册的,就会出现校验失败的问题。修改配置中的uri字段,补充认证库参数:
uri => "mongodb://my-user:my-password@127.0.0.1:27017/somelogs?authSource=admin"

如果你的账号是直接在somelogs库下创建的,将参数值改为authSource=somelogs即可。

  • 直接校验账号权限有效性
    使用Mongo shell执行连接+写入测试,确认账号本身权限配置正确:
# 替换为你的实际账号密码和authSource值
mongo "mongodb://my-user:my-password@127.0.0.1:27017/somelogs?authSource=admin"

进入Mongo shell后执行测试写入:

db.logs.insert({"test_key":"test_value"})

如果写入报错,说明账号权限配置缺失,使用管理员账号登录Mongo后重新授权:

use admin
// 管理员身份认证,替换为你的管理员账号密码
db.auth("admin_user","admin_pass")
use somelogs
// 给目标账号授予业务库读写权限
db.grantRolesToUser("my-user", ["readWrite"])
  • 移除冗余配置项
    你当前配置中的codec => "json"属于冗余参数,MongoDB输出插件会自动适配Logstash事件格式,额外指定json codec可能引发格式冲突,直接删除该行配置即可。

  • 校验MongoDB服务端配置
    如果上述操作都无效,检查MongoDB配置文件:确认security.authorization已正确开启,bindIp参数未限制127.0.0.1的访问请求,未配置额外IP白名单拦截Logstash的访问。

内容的提问来源于stack exchange,提问作者Dhody Rahmad Hidayat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 05:15:02