Splunk 日志 - 日期比较

Splunk Log - Date comparison

我已经通过 splunk 配置了我的应用程序日志并希望执行以下操作 -

  1. 当字符串包含今天的日期时获取事件
  2. 当字符串有明天的日期时获取事件。

我已经尝试为 #1 编写如下查询,但它似乎 return 什么都没有

REGAVAIL | eval Date=strftime(strptime(Date, "%m%d%Y"), "%m%d%Y") | where Date>= strftime(now(), "%m%d%Y")

我的搜索字符串是 REGAVAIL,所有事件都采用以下格式 -

REGAVAIL|00958645030|8871|1|61745|01262017|0|N|N|Y|N|Y|N|N|O|O|O|O|O|O|O|1013|F REGAVAIL|00958647200|8871|1|61745|01282017|0|N|N|Y|N|Y|N|N|O|O|O|O|O|O|O|1013|F REGAVAIL|00958649200|8871|1|61745|01292017|0|N|N|Y|N|Y|N|N|O|O|O|O|O|O|O|1013|F

我想先从中提取日期 - 01262017,然后将其与今天的日期进行比较。如果找到匹配项,则应考虑该事件。

如有任何帮助,我们将不胜感激!

  1. 此搜索基于 a 创建两个字符串。事件_time和b。使用 now() 的当前日期。然后我们将创建一个名为 match 的新字段,以包含事件 _time 是否与我们计算的相对时间匹配的 Yes 或 No。

    index=yourindex "REGAVAIL" | eval eventTime = strftime(_time, "%Y-%m-%d") | eval timeNow = strftime(relative_time(now(),"@d"), "%Y-%m-%d") | eval match=if(eventTime=timeNow, "Yes", "No") | search match="Yes"

  2. 第二次搜索几乎是一样的。我唯一改变的是发送到 relative_time 函数的参数。现在设置为 -1d@d,即 returns 昨天的日期。

    index=你的索引"REGAVAIL" | eval eventTime = strftime(_time, "%Y-%m-%d") | eval timeNow = strftime(relative_time(now(),"<strong>-1d@d</strong>"), "%Y-%m-%d") | eval match=if(eventTime=timeNow, "Yes", "No") |搜索匹配="Yes"

理论上您可以修改此 relative_time 函数以提前 2 天、推迟 3 天等

希望这对您有所帮助。有问题就喊