监控Splunk日志中缺失Successful事件的最佳策略及搜索语句验证
结论:该Splunk搜索语句是正确的
核心逻辑验证
给定的搜索语句完全匹配你的需求——找出仅触发了started事件、未触发后续successful事件的未完成流程:
transaction startswith=MIT="Local Step started." endswith=MIT="Copy step successful.":正确指定了事务的起始和结束触发条件,把属于同一流程的起始-结束事件归为一组。keepevicted=true:这是关键配置,默认情况下transaction会自动丢弃找不到结束事件的“不完整事务”,加上这个参数才能保留这类未闭合的记录。| search closed_txn=0:transaction命令会给正常闭合的事务标记closed_txn=1,未闭合的事务则标记为0,这一步精准过滤出你需要的未完成流程。
可选优化建议
如果你的事件中有唯一标识(比如流程ID、任务ID这类字段),建议在transaction后加上by <唯一标识字段>,比如:
index=a source=b | transaction startswith=MIT="Local Step started." endswith=MIT="Copy step successful." keepevicted=true by task_id | search closed_txn=0
这样能避免把不同流程的started事件错误合并,进一步提升结果精度。
内容的提问来源于stack exchange,提问作者Ajay Takur
相关产品推荐
相关产品推荐

