首页 > 解决方案 > “重启错误”上的 logstash-input-mongodb 循环 - 时间戳

问题描述

我尝试使用 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 控制台中获取我的输出?

标签: mongodblogstash

解决方案


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

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

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

推荐阅读