如何在Splunk搜索中排除关联含[error]事件的transid相关事件
解决Splunk排除关联错误transid事件的问题
这里提供两种简洁的实现方式,直接替换你现有搜索逻辑即可:
方法一:使用子搜索精准定位错误transid
*base-search* NOT [ search *base-search* | where like(_raw, "%[error]%") | fields transid | format ]
- 子搜索部分:先从基础搜索里筛选出包含
[error]的事件,提取它们的transid并格式化为Splunk能识别的排除条件 - 主搜索部分:直接排除所有匹配这些错误
transid的事件
方法二:用eventstats批量标记关联事件
*base-search* | eventstats sum(eval(like(_raw, "%[error]%"))) as error_count by transid | where error_count == 0
eventstats按transid分组,统计每个分组里包含[error]的事件数量(like匹配成功返回1,失败返回0,sum后得到该transid下的错误事件数)where error_count == 0只保留那些没有任何错误事件的transid对应的所有事件
为什么你原来的eval思路不生效?
你之前的eval rm_id=if(like(_raw, "%[error]%"), 0, transid)只是给单个事件打标记,没法把同一个transid下的其他事件关联起来,自然无法批量排除整个transid的所有事件。
内容的提问来源于stack exchange,提问作者Adrian
相关产品推荐
相关产品推荐

