【问题标题】:logstash-input-mongodb loop on a "restarting error" - Timestamp“重启错误”上的 logstash-input-mongodb 循环 - 时间戳
【发布时间】:2018-04-25 10:09:18
【问题描述】:

我尝试使用 mongodb 插件作为 logstash 的输入。 这是我的简单配置:

input {
    mongodb {
        uri => 'mongodb://localhost:27017/testDB'
        placeholder_db_dir => '/Users/TEST/Documents/WORK/ELK_Stack/LogStash/data/'
        collection => 'logCollection_ALL'
        batch_size => 50
    }
}
filter {}
output { stdout {} }

但我正面临一个“循环问题”,可能是由于字段“时间戳”,但我不知道该怎么做。

[2018-04-25T12:01:35,998][WARN][logstash.inputs.mongodb] MongoDB Input 抛出异常,重新启动 {:exception=>#TypeError: wrong argument type String (expected LogStash::Timestamp) >}

还有一个调试日志:

[2018-04-25T12:01:34.893000 #2900] 调试 -- : MONGODB |查询 |命名空间=testDB.logCollection_ALL 选择器={:_id=>{:$gt=>BSON::ObjectId('5ae04f5917e7979b0a000001')}} 标志=[:slave_ok] 限制=50 跳过=0 项目=nil | 运行时间:39.0000 毫秒

如何参数化我的 logstash 配置以在 stdout 控制台中获取输出?

【问题讨论】:

  • 我也遇到同样的问题,你能解决吗?
  • 对不起,我没有解决我的问题,我想使用mongodb输入来放入系列mongodb数据库,然后elasticsearch。由于我还没有解决我的问题,我在一个 logstash 中完成了这个工作流程,条件是 outpuf 部分。

标签: mongodb logstash


【解决方案1】:

这是因为字段 @timestamp 具有 ISODate 数据类型。

您必须从所有文档中删除此字段。

db.getCollection('collection1').update({}, {$unset: {"@timestamp": 1}}, {multi: true})

【讨论】:

    猜你喜欢
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 2012-10-01
    • 2014-10-24
    • 1970-01-01
    相关资源
    最近更新 更多