Ruby logstash 5.1.2上的logstash输入mongodb错误

Ruby logstash 5.1.2上的logstash输入mongodb错误,ruby,logstash,Ruby,Logstash,我正在尝试在logstash 5.1.2上运行插件,并得到错误: 已禁用直接事件字段引用,即事件['field']='value',以便使用事件获取和设置方法,例如event.set'field','value'。有关更多详细信息,请参阅Logstash 5.0中断更改文档 19:20:09.456[LogStash::Runner]信息LogStash.inputs.mongodb-使用 版本0.1.x输入插件“mongodb”。这个插件没有得到很好的支持 由社区提供,并且可能没有维护者 D,

我正在尝试在logstash 5.1.2上运行插件,并得到错误: 已禁用直接事件字段引用,即事件['field']='value',以便使用事件获取和设置方法,例如event.set'field','value'。有关更多详细信息,请参阅Logstash 5.0中断更改文档

19:20:09.456[LogStash::Runner]信息LogStash.inputs.mongodb-使用 版本0.1.x输入插件“mongodb”。这个插件没有得到很好的支持 由社区提供,并且可能没有维护者

D, [2017-02-09T19:20:09.766000 7068]调试-:MONGODB |添加 本地主机:27017到集群运行时间:0.0000ms

D, [2017-02-09T19:20:12.839000 7068]调试-:MONGODB |命令| namespace=admin.$cmd选择器={:ismaster=>1}标志=[]限制=-1跳过=0 project=nil |运行时:3066.0000ms 19:20:12.845 [[main]-管道管理器]信息logstash.inputs.mongodb-注册 MongoDB输入

D、 [2017-02-09T19:20:12.936000 7068]调试-:MONGODB |命令| namespace=test.$cmd选择器={:listCollections=>1, :cursor=>{},:filter=>{:name=>{$not=>/system.\$/} flags=[:slave_ok]limit=-1 skip=0项目=nil |运行时:22.0001ms 19:20:13.140[[main]-管道管理器]信息日志存储.pipeline- 正在启动管道{id=>main,pipeline.workers=>4, pipeline.batch.size=>125,pipeline.batch.delay=>5, pipeline.max_inflight=>500}19:20:13.151[[main]-管道管理器] INFO logstash.pipeline-主管道已启动

D, [2017-02-09T19:20:13.356000 7068]调试-:MONGODB |查询| 名称空间=test.auditcommunications 选择器={:_id=>{:$gt=>BSON::ObjectId'0761B057FCCC5C2277C23DFBE'}} flags=[:slave_ok]limit=50 skip=0 project=nil |运行时:224.999ms 19:20:13.420[Api Web服务器]信息logstash.agent-成功 已启动Logstash API端点{:端口=>9600}19:20:13.647 [[主要] 插件: mongodb://localhost:27017/test, 占位符\u db\u dir=>/elk/logstash mongodb/, 占位符\u db\u name=>logstash\u sqlite.db, 收集=>auditcommunications,批量大小=>50, id=>797b2fd78162084f6d57991a196d656a6c95f190-1,启用度量=>true, 编解码器=>plain_cd856514-8fcc-43ad-becd-9497e98577b9,启用_度量=>true, 字符集=>UTF-8>,因为表=>logstash\u因为, parse_method=>flatten,isodate=>false,retry_delay=>3, generateId=>false,解包\u mongo\u id=>false,消息=>Default 消息…,间隔=>1>

错误:直接事件字段引用 i、 e.已禁用事件['field']='value',以便使用 事件获取和设置方法,例如事件。设置“字段”、“值”。请 有关更多信息,请参阅Logstash 5.0破坏性更改文档 细节

D、 [2017-02-09T19:20:14.782000 7068]调试-:MONGODB| 查询|名称空间=test.auditcommunications 选择器={:_id=>{:$gt=>BSON::ObjectId'0761B057FCCC5C2277C23DFBE'}} flags=[:slave_ok]limit=50 skip=0 project=nil |运行时:128.999ms

很抱歉格式化了

我的配置基本上是按照说明粘贴的:

input {
  mongodb {
    uri => 'mongodb://localhost:27017/test'
    placeholder_db_dir => '/elk/logstash-mongodb/'
    placeholder_db_name => 'logstash_sqlite.db'
    collection => 'auditcommunications'
    batch_size => 50
  }
}

filter {
  date {
    match => [ "timestamp", "ISO8601" ]
  }
}

output {
    stdout { codec => rubydebug }
}

我是做错了什么,还是这个插件有问题?

您使用的是logstash input mongodb的0.1.x版本,这是一个旧版本。您应该使用与logstash 5兼容的最新0.4.0版本,这要归功于

您可以尝试使用以下内容更新插件:

bin/logstash-plugin update logstash-input-mongodb
完成后,运行以下命令并确保安装了logstash input mongodb 0.4.0

bin/logstash-plugin list --verbose

然后你的插件会再次工作。

所以我确实注意到并怀疑日志中使用的是0.1.x版本的输入插件,但我已经检查了库版本,发现它是0.3.0而不是0.1.0,所以我认为这是库的问题。我只是错过了最新版本是0.4.0而不是0.3.0。谢谢!如果你有时间的话你能看看我的另一个问题吗:-或者我应该问一个单独的问题吗?