如何在 sumologic 中创建聚合 table?
How do I create an aggregated table in sumologic?
我如何构建一个 sumologic 查询,该查询将 returns 聚合 table 中的以下日志项,该聚合将 uri、status_code 和请求数分组。例如:uri = /healthcheck, status_code = 200 and requests = 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
您可能需要为此使用正则表达式。它看起来像:
| 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
这只是一个示例 - 您的日志的确切正则表达式可能会略有不同,具体取决于它们的格式,但这是我为上面的示例想出的。
希望对您有所帮助!
我如何构建一个 sumologic 查询,该查询将 returns 聚合 table 中的以下日志项,该聚合将 uri、status_code 和请求数分组。例如:uri = /healthcheck, status_code = 200 and requests = 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
您可能需要为此使用正则表达式。它看起来像:
| 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
这只是一个示例 - 您的日志的确切正则表达式可能会略有不同,具体取决于它们的格式,但这是我为上面的示例想出的。
希望对您有所帮助!