首页 > 解决方案 > 如何在 splunk 查询中区分模式 /bank/*/accounts/ 与 /bank/4/accounts/a1 的消息?

问题描述

我正在尝试编写一个 splunk 查询来监视按它们所属的 API 端点分组的消息。我有 2 个端点可以区分:

  1. /银行/*/账户/
  2. /银行/*/账户/ a1-b2-c3

我的示例消息如下所示:

2019-07-15 11:42:10 [INFO] method='GET' path='/bank/4/accounts/' status='200'
2019-07-15 11:44:10 [INFO] method='GET' path='/bank/4/accounts/a1-b2-c3' status='200'

当我使用以下 splunk 查询时,我得到属于两个端点的消息。

index=my_index host=my_host GET /bank/*/accounts/  | rex field=_raw "path=(?<path>.*)"  

我尝试将以下命令附加到查询中,但未能成功隔离结果:

| rex field=_raw ".*/accounts/(?<accountid>\w+)"

标签: splunksplunk-query

解决方案


rex命令从事件中提取数据,它不过滤它们。要使用正则表达式过滤事件,请使用regex命令。


推荐阅读