0

我正在 splunk 中构建一个查询以过滤以“INFO:main:TABLE:”开头并且“NOT”以“INFO:main:Done”结尾的日志我想要所有最后不记录“Done”的事务。“!”/“不”似乎不起作用。

我坚持的部分查询: | rex field=log "INFO:__main__:TABLE: (?<table_name>[A-Za-z_]*)" | transaction container_name startswith="INFO:__main__:TABLE:" endswith="INFO:__main__: Done"

当前查询将为我提供正确终止/完成状态的事务。我对“未完成”状态的那个感兴趣。

我想要类似的东西: | transaction container_name startswith="INFO:__main__:TABLE:" endswith!="INFO:__main__: Done"

4

2 回答 2

2

正如您所发现的,该transaction命令的endwith选项不支持 NOT。这没有多大意义。更重要的是,它会使低效的命令更加低效,因为在 Splunk 中的否定搜索比肯定搜索的成本更高。

您需要找到不同的方式来定义事务或使用不同的命令。

于 2019-08-09T23:43:59.640 回答
1

您可以在 eval 语句中使用正则表达式,这对startswith 有效。这是一个例子: ... | 交易字段开始于=“xyz”结束于=评估(匹配(_raw,“\d\d\s+start”))。根据您的要求使用正则表达式。

于 2019-09-05T17:49:49.403 回答