我正在splunk中构建查询,以过滤以“ INFO:主要:TABLE:”开头且以“ NOT”结尾为“ INFO:主要”的日志:完成” 我希望最后不记录“完成”的所有事务。 “!” /“不”似乎无效。
我遇到的部分查询:
| 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"
答案 0 :(得分:0)
您已经发现,transaction
命令的endwith
选项不支持NOT。这没有多大意义。而且,由于Splunk中的否定搜索比肯定搜索要昂贵,因此它会使效率低下的命令甚至效率更高。
您需要找到其他方法来定义事务或使用其他命令。
答案 1 :(得分:0)
您可以在eval语句中使用正则表达式,这对startswith有效。这是一个例子: ... |交易字段开头为=“ xyz”,结尾为= eval(match(_raw,“ \ d \ d \ s + start”))。根据您的要求使用正则表达式。