如何在Splunk中交易搜索的endswith标签中添加“Not”

问题描述 投票:0回答:2

我正在 splunk 中构建一个查询,以过滤以

INFO:__main__:TABLE:
开头且“NOT”以
INFO:__main__: Done
结尾的日志 我想要所有最终不记录
Done
的交易。
!
/
Not
似乎不起作用。

我遇到的部分查询:

| rex field=log "INFO:__main__:TABLE: (?<table_name>[A-Za-z_]*)" 
| transaction container_name startswith="INFO:__main__:TABLE:" endswith="INFO:__main__: Done"

当前查询将为我提供正确终止/状态为“完成”的交易。我对具有

NOT "DONE"
状态的人感兴趣。

我想要类似的东西:

| transaction container_name startswith="INFO:__main__:TABLE:" endswith!="INFO:__main__: Done"
splunk splunk-query splunk-sdk
2个回答
3
投票

正如您所发现的,

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

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


2
投票

您可以在

eval
语句中使用正则表达式,这对
startswith
有效。这是一个例子:

... | transaction field startswith="xyz" endswith=eval(match(_raw, "\d\d\s+start"))

根据您的要求使用正则表达式。

© www.soinside.com 2019 - 2024. All rights reserved.