考虑一个 REST API 的访问日志,您将看到如下所示的行(简化):
2017-01-01T12:12:41Z "GET /api/posts" HTTP/1.1 200 "-"
2017-01-01T12:12:42Z "GET /api/posts/56/comments" HTTP/1.1 200 "-"
2017-01-01T12:12:42Z "GET /api/posts" HTTP/1.1 200 "-"
2017-01-01T12:12:56Z "POST /api/posts" HTTP/1.1 202 "Safari"
2017-01-01T12:12:58Z "GET /api/posts/134/comments" HTTP/1.1 200 "-"
要解析它,您可以编写如下内容:
_collector=access.log | regex parse "(?<method>[A-Z]+) /api/(?<path>[\w\d\/]+) HTTP"
这将从日志行中提取 METHOD 和 PATH,但您会看到这些唯一值:
- 获取帖子
- 发布帖子
- 获取帖子/56/评论
- 获取帖子/134/评论
我希望丢弃 url 的所有动态部分,所以我可以找到以下内容:
- 获取帖子
- 发布帖子
- 获取帖子/{id}/评论
我可以在搜索中弄清楚这一点并很容易地替换正则表达式,但在 Sumologic 中甚至可能吗?