[英]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.