我创建了一个logstash脚本来读取一个日志文件,该日志文件具有各种时间戳格式为``2018-05-08T12:18:53.506 + 0530''。我正在尝试使用日志存储中的日期过滤器将其解析为日期
date{
match => ["edrTimestamp","yyyy-MM-dd'T'HH:mm:ss.SSS'Z'","ISO8601"]
target => "edrTimestamp"
}
运行上面的logstash脚本会创建一个 flex 搜索索引。但是仍然没有对该字符串进行解析。它还在索引中显示了日期解析的异常。
它创建这样的输出。
{
"tags": [
"_dateparsefailure"
],
"statusCode": "805",
"campaignRedemptionLimitTotal": 1000,
"edrTimestamp": "2018-05-22T16:41:25.162+0530 ",
"msisdn": "+919066231327",
"timestamp": "2018-05-22T16:41:25.122+0530",
"redempKeyword": "print1",
"campaignId": "C910101-1527004962-1582",
"category": "RedeemRequestReceived"
}
请告诉我上面的代码有什么问题>我尝试了许多其他替代方法,但仍然无法正常工作。
最佳答案
您的问题是您的时间戳记"edrTimestamp": "2018-05-22T16:41:25.162+0530 ",
的末尾有一个空格,这导致日期解析失败。您需要添加:
mutate {
strip => "edrTimestamp"
}
在日期过滤器之前。
关于elasticsearch - 无法在logstash/elasticSearch中解析字符串至今,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50490639/