【问题标题】:logstash-input-mongodb errors on logstash 5.1.2logstash 5.1.2 上的 logstash-input-mongodb 错误
【发布时间】:2017-06-29 21:56:11
【问题描述】:

我正在尝试在 logstash 5.1.2 上运行插件,但出现错误: 直接事件字段引用(即 event['field'] = 'value')已被禁用,以支持使用事件 get 和 set 方法(例如 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 |添加 localhost:27017 到集群。 |运行时间:0.0000ms

D, [2017-02-09T19:20:12.839000 #7068] 调试 -- : MONGODB |命令 | 命名空间=admin.$cmd 选择器={:ismaster=>1} 标志=[] 限制=-1 跳过=0 项目=无 |运行时间:3066.0000 毫秒 19:20:12.845 [[main]-pipeline-manager] INFO logstash.inputs.mongodb - 注册 MongoDB输入

D,[2017-02-09T19:20:12.936000 #7068] 调试 -- : MONGODB |命令 |命名空间=test.$cmd 选择器={:listCollections=>1, :cursor=>{}, :filter=>{:name=>{"$not"=>/system.|\$/}}} 标志=[:slave_ok] 限制=-1 跳过=0 项目=nil |运行时间:22.0001 毫秒 19:20:13.140 [[main]-pipeline-manager] 信息 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 |查询 | 命名空间=test.auditcommunications 选择器={:_id=>{:$gt=>BSON::ObjectId('0761b057fccc5c277c23dfbe')}} 标志=[:slave_ok] 限制=50 跳过=0 项目=nil |运行时间:224.9999ms 19:20:13.420 [Api Webserver] INFO logstash.agent - 成功 启动 Logstash API 端点 {:port=>9600} 19:20:13.647 [[主要的]

插件: "mongodb://localhost:27017/test", placeholder_db_dir=>"/elk/logstash-mongodb/", placeholder_db_name=>"logstash_sqlite.db", 集合=>“审计通信”,batch_size=>50, id=>"797b2fd78162084f6d57991a196d656a6c95f190-1", enable_metric=>true, 编解码器=>“plain_cd856514-8fcc-43ad-becd-9497e98577b9”,enable_metric=>true, charset=>"UTF-8">, since_table=>"logstash_since", parse_method=>“扁平化”,isodate=>false,retry_delay=>3, generateId=>false, unpack_mongo_id=>false, message=>"默认 消息...", 间隔=>1>

错误:直接事件字段引用 (即 event['field'] = 'value')已被禁用以支持使用 事件获取和设置方法(例如 event.set('field', 'value'))。请 有关更多信息,请参阅 Logstash 5.0 重大更改文档 细节。

D,[2017-02-09T19:20:14.782000 #7068] 调试 -- : MONGODB | 查询 |命名空间=test.auditcommunications 选择器={:_id=>{:$gt=>BSON::ObjectId('0761b057fccc5c277c23dfbe')}} 标志=[:slave_ok] 限制=50 跳过=0 项目=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 }
}

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

【问题讨论】:

    标签: ruby logstash


    【解决方案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
    

    然后您的插件将再次工作。

    【讨论】:

    • 所以我确实注意到并怀疑日志中的“使用版本 0.1.x 输入插件”,但我已经检查了库版本,发现它是 0.3.0 而不是 0.1.0 ,所以我认为这是图书馆的问题。我只是错过了最新版本是 0.4.0 而不是 0.3.0。谢谢!
    • 如果您有时间,您还可以看看我的另一个问题:github.com/phutchins/logstash-input-mongodb/issues/56 - 还是我应该问一个单独的问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多