【问题标题】:Splunk: Extract string and convert it to date formatSplunk:提取字符串并将其转换为日期格式
【发布时间】:2022-01-21 14:05:04
【问题描述】:

我有这样的事件:

something;<id>abc123<timeStamp>2021-12-10T23:10:12.044Z<timeStamp>2021-12-10T23:08:55.278Z>

我想提取Idabc123和两个timeStamps。

index = something 
|rex field=_raw "id>(?<Id>[0-9a-z-]+)" 
|rex "timeStamp>(?<timeStamp>[T0-9-\.:Z]+)"
| table _time Id timeStamp

这适用于上面的查询。但我现在努力的是将timeStamp-string 转换为日期格式,以便在最后提取min(timeStamp),以便通过id 字段计算事件的_timemin(timeStamp) 之间的差异.由于包含TZ 的时间戳的特殊格式,我正在苦苦挣扎。

【问题讨论】:

    标签: date splunk


    【解决方案1】:

    这些时间戳没有什么特别之处 - 它们采用标准格式。使用strptime 函数进行转换。

    index = something 
    |rex field=_raw "id>(?<Id>[^\<]+)" 
    |rex "timeStamp>(?<timeStamp>[^\<]+)"
    | eval ts = strptime(timeStamp, "%Y-%m-%dT%H:%M:%S.%3N%Z")
    | eval diff = ts - _time
    | table _time Id timeStamp diff
    

    【讨论】:

      【解决方案2】:

      查看 strftime.org,以及与 eval 一起使用的相关 strptime function

      按照这个顺序(从rex 中提取微秒,因为 Unix 纪元时间没有亚秒间隔的概念):

      | rex field=_raw "timeStamp\>(?<timeStamp>[^\.]+)\.\d+Z"
      | eval unixepoch=strptime(timeStamp,"%Y-%m-%dT%H:%M:%S")
      

      【讨论】:

        猜你喜欢
        • 2013-12-28
        • 1970-01-01
        • 2014-01-18
        • 2019-10-13
        相关资源
        最近更新 更多