如何构造汇总查询,该查询将在汇总表中返回以下日志项,该表将uri,status_code和请求数分组。例如:uri = / healthcheck,status_code = 200,请求= 1。
<27>Sep 12 11:03:26 my-app/0.0.0/75a2b6b67d68[2908]: [Wed Sep 12 11:03:26 2018] 00.00.00.00:00000 [200]: /healthcheck
我不确定如何解析这样的日志,我尝试了一下,但是没有用:
_source="syslog-collector-tcp" "my-app"
| parse "[*] : *" as request
答案 0 :(得分:1)
您可能需要为此使用正则表达式。看起来像这样:
| parse regex "\[(?<status_code>[0-9]{3})\]: \/(?<uri>.*)$"
| count by status_code, uri
这将删除不符合正则表达式条件的日志行。如果要保留其他行,则需要添加nodrop:
| parse regex "\[(?<status_code>[0-9]{3})\]: \/(?<uri>.*)$" nodrop
| count by status_code, uri
这只是一个示例-日志的确切正则表达式可能会略有不同,具体取决于它们的格式,但这就是我在上面的示例中想到的。
希望这会有所帮助!