我已将应用程序日志配置为splunk,并希望执行以下操作 -
我曾尝试为#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然后将其与今天的日期进行比较。如果找到匹配项,则应考虑该事件。
任何帮助将不胜感激!
答案 0 :(得分:2)
此搜索根据a创建两个字符串。 event _time和b。使用now()的当前日期。然后我们将创建一个名为match的新字段,其中包含Yes或No,表示事件_time是否与我们计算的相对时间相匹配。
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"
第二次搜索几乎相同。我唯一改变的是发送到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天等等。
希望这会有所帮助。如果你有任何问题,请大声喊。