0

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

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

我试图为#1 编写如下查询,但它似乎没有返回任何内容

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,然后将其与今天的日期进行比较。如果找到匹配项,则应考虑该事件。

在此处输入图像描述

任何帮助,将不胜感激!

4

1 回答 1

2
  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 返回昨天的日期。

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

理论上,您可以修改此 relative_time 函数以查看提前 2 天、落后 3 天等。

希望这可以帮助。有问题就大声喊出来。

于 2017-01-23T14:20:39.430 回答