在 Cloudwatch insight 中解析日志

Parsing logs in Cloudwatch insight

我正在尝试使用 cloudwatch insights 解析以下日志。

2021.10.25 19:56:20:459 UTC | Info       | HTTP | GOOGLE_cf95a06b-b5fa-4f70-bc18-28fc30dfd9cc

    Tx [http] 200.61.132.110:80 -> 200.61.132.89:31812 StatusCode=200

洞察查询:

fields @timestamp, @message
| filter @message like "StatusCode="
| parse @message "* | * | * | *" as aa, bb, cc, dd
| display dd

我明白了:

GOOGLE_cf95a66b-b5fa-4f70-bc10-28fc30fdd9cc Tx [http] 200.61.132.110:80 -> 200.61.132.89:31812 StatusCode=200

如何解析单个项目示例“GOOGLE_cf95a66b-b5fa-4f70-bc10-28fc30fdd9cc”和“StatusCode=200”

非常感谢任何指点?

这取决于您的日志事件的结构。如果有一个固定的结构和一些不会改变的字段(特别是作为字段分隔符的空格),它可以帮助在查询中使用它们。 例如,根据您显示的日志示例,您可以使用此查询:

fields @timestamp, @message
| filter @message like "StatusCode="
| parse @message "* | * | * | * * [*] * -> * StatusCode=*" as f1, f2, f3, field_google, f4, protocol, ip1, ip2, status_code
| display field_google, protocol, ip1, ip2, status_code