首页 > 解决方案 > 在 Logstash 中将 DateTime 字符串字段转换为 Unix/Epoch 时间

问题描述

我正在从 cloudflare 摄取日志,并且两个字段无法解析(EdgeStartTimeStamp、EdgeEndTimeStamp)

"reason" =>"failed to parse field [EdgeEndTimeStamp] of type [long]", "caused by"=>{"type"=>"illegal_argument_exception", "reason"=>"For input string: \"2020-07-2100:02:00z\""}

EdgeStartTimestamp -> 边缘从客户端接收请求的时间戳 int 或 string

我希望将其转换为 EdgeEndTimeStamp 到纪元时间。我努力了

    if ([EdgeStartTimestamp]) {
        date {
            match => ["EdgeStartTimestamp", "ISO8601"]
            target => "myDateObj"
        }
        ruby {
            code => "set.event('EdgeStartTimestamp', (event.get('myDateObj').to_f*1000).to_i)"
        }
    }

标签: logstashcloudflare

解决方案


推荐阅读