假设我有一个云监视日志,如下所示:
最左侧的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
看来可以做一些我想要的事情。但是我还没有弄清楚如何通过Insights做到这一点。
有人知道如何计算每个IP的出现次数吗?
答案 0 :(得分:1)
如果您的目标是分析实际的远程IP地址,并且您正在使用ELB,则最好捕获ELB access logs并对其进行分析。这将带来以下好处:
AWS Athena具有用于访问这些日志的预置查询,并且Athena的类似SQL的查询语言为您提供了比CloudWatch Logs Insights更大的灵活性。您还可以将日志发送到CloudWatch并使用Insights(可识别ELB日志格式),但这似乎是不必要的工作。
答案 1 :(得分:1)
识别日志中任何位置的 IP:
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
| sort requestCount desc
答案 2 :(得分:0)
“ Elastic Load Balancing在尽力而为的基础上记录请求。我们建议您使用访问日志来了解请求的性质,而不是作为对所有请求的完整记帐。”
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html
如果准确性和使用ELB日志非常重要,则应牢记。我过去做过一些工作,使用ELB日志分析HTTP访问日志,发现它们之间的请求计数有相当大的差异(http日志准确)
答案 3 :(得分:0)
下面的查询进行了所需的分组。我看到了here。
this.props.passToParent(childValue);