我正在尝试在logstash 5.1.2上运行插件,并收到错误: 直接事件字段引用(即event ['field'] ='value')已被禁用,支持使用事件get和set方法(例如event.set('field','value'))。有关更多详细信息,请参阅Logstash 5.0重大更改文档。
19:20:09.456 [LogStash :: Runner] INFO logstash.inputs.mongodb - 使用 版本0.1.x输入插件'mongodb'。此插件不受支持 社区可能没有维护者。
d, [2017-02-09T19:20:09.766000#7068]调试 - :MONGODB |添加 localhost:27017到集群。 |运行时间:0.0000ms
d, [2017-02-09T19:20:12.839000#7068]调试 - :MONGODB |命令| namespace = admin。$ cmd selector = {:ismaster => 1} flags = [] limit = -1 skip = 0 project = nil |运行时间:3066.0000ms 19:20:12.845 [[main] -pipeline-manager] INFO logstash.inputs.mongodb - 注册 MongoDB输入
,[2017-02-09T19:20:12.936000#7068]调试 - :MONGODB |命令| namespace = test。$ cmd selector = {:listCollections => 1, :cursor => {},:filter => {:name => {“$ not”=> / system。| \ $ /}}} flags = [:slave_ok] limit = -1 skip = 0 project = nil |运行时间:22.0001ms 19:20:13.140 [[main] -pipeline-manager] INFO logstash.pipeline - 启动管道{“id”=>“main”,“pipeline.workers”=> 4, “pipeline.batch.size”=> 125,“pipeline.batch.delay”=> 5, “pipeline.max_inflight”=> 500} 19:20:13.151 [[main] -pipeline-manager] INFO logstash.pipeline - 管道主要开始
d, [2017-02-09T19:20:13.356000#7068]调试 - :MONGODB | QUERY | 命名空间= test.auditcommunications 选择器= {:_ ID => {:$ GT => BSON ::的ObjectId( '0761b057fccc5c277c23dfbe')}} flags = [:slave_ok] limit = 50 skip = 0 project = nil |运行时间:224.9999ms 19:20:13.420 [Api Webserver] INFO logstash.agent - 成功 启动Logstash API端点{:port => 9600} 19:20:13.647 [[主要]
插件: “mongodb的://本地主机:27017 /测试”, placeholder_db_dir => “中/麋鹿/ logstash-mongodb的/”, placeholder_db_name => “中logstash_sqlite.db”, collection =>“auditcommunications”,batch_size => 50, id =>“797b2fd78162084f6d57991a196d656a6c95f190-1”,enable_metric => true, codec =>“plain_cd856514-8fcc-43ad-becd-9497e98577b9”,enable_metric => true, charset =>“UTF-8”&gt ;, since_table =>“logstash_since”, parse_method =>“flatten”,isodate => false,retry_delay => 3, generateId => false,unpack_mongo_id => false,message =>“默认 消息...“,interval => 1>
错误:直接事件字段引用 (即event ['field'] ='value')已被禁用以支持使用 事件获取和设置方法(例如event.set('field','value'))。请 有关更多信息,请参阅Logstash 5.0重大更改文档 细节。
,[2017-02-09T19:20:14.782000#7068]调试 - :MONGODB | QUERY |命名空间= test.auditcommunications 选择器= {:_ ID => {:$ GT => BSON ::的ObjectId( '0761b057fccc5c277c23dfbe')}} flags = [:slave_ok] limit = 50 skip = 0 project = nil |运行时间:128.9999ms
(抱歉格式化)
我的配置几乎是从说明中复制粘贴的:
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 }
}
我做错了什么或者这个插件有问题吗?
答案 0 :(得分:1)
您使用的是logstash-input-mongodb
版本0.1.x,这是一个旧版本。由于PR #53,您应该使用与Logstash 5兼容的最新0.4.0版本。
您可以尝试使用以下命令更新插件:
bin/logstash-plugin update logstash-input-mongodb
完成后,运行以下命令并确保已安装logstash-input-mongodb
0.4.0。
bin/logstash-plugin list --verbose
然后你的插件会再次运作。