Bri*_*ian 5 amazon-web-services amazon-cloudwatch
假设我有一个如下所示的云监视日志:
最左边的IP代表请求来自哪里。
是否可以列出每个IP在我指定的时间范围内出现的次数?
我的意思是我想创建如下所示的数据:
time range: 2019-06-02 00:00:00 - 2019-06-04 13:00:00
number of occurrences of `172.31.13.80`: 130
number of occurrences of `172.31.25.110`: 112
number of occurrences of `172.31.8.124`: 99
number of occurrences of `172.31.8.121`: 86
Run Code Online (Sandbox Code Playgroud)
CloudWatch Logs Insights似乎可以做与我想要的类似的事情。但我还没有弄清楚如何使用 Insights 来做到这一点。
有谁知道如何统计每个IP出现的次数?
小智 5
下面的查询进行您需要的分组。我在这里看到了。
fields @timestamp, @message
| parse @message /(?<@ip>^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})[.]*)/
| stats count() as requestCount by @ip
| filter strlen(@ip) > 0
| sort requestCount desc
Run Code Online (Sandbox Code Playgroud)
如果您的目标是分析实际的远程 IP 地址并且您正在使用 ELB,那么最好捕获ELB访问日志并分析这些日志。这将带来以下好处:
AWS Athena具有用于访问这些日志的预构建查询,并且 Athena 的类似 SQL 的查询语言为您提供了比 CloudWatch Logs Insights 更多的灵活性。您还可以将日志发送到 CloudWatch 并使用 Insights(它可以识别 ELB 日志格式),但这似乎是不必要的工作。
| 归档时间: |
|
| 查看次数: |
7679 次 |
| 最近记录: |