繁体   English   中英

logstash mongodb输出和ISODate类型

[英]logstash mongodb output and ISODate type

我在尝试将日期类型字段转换为mongoDB格式(ISODate)时遇到了一些麻烦。

我有一个RabbitMQ队列,其中包含JSON消息。 这些消息具有这样的Date属性:

Date : "2014-05-01T14:53:34.25677Z"

我的logstash服务读取RabbitMQ队列并将消息注入mongoDB。

这是我的logstash配置文件:

input {
    rabbitmq  {
        ...
        codec => json
    }
}

output {

    mongodb {
        codec => json
        collection => "log"
        isodate => true
        database => "Test"
        uri => "mongodb://localhost:27017"
    }
}

我的问题是我的Date属性插入为字符串而不是Date。 如何告诉Logstash将我的Date字段作为ISODate字段插入mongoDB?

谢谢

在将字符串插入MongoDB之前,应使用logstash日期过滤器将字符串转换为日期: http : //logstash.net/docs/1.4.2/filters/date

不知道您的完整架构,但它看起来应该像这样:

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

注意“ ISO8601”的使用-看起来与您接收的格式匹配,但您可能需要对其稍作调整。 当您对此进行测试时,我强烈建议您使用stdout输出选项进行测试运行,以轻松了解在插入MongoDB之前要完成的工作:

output {
  stdout { codec => rubydebug }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM