New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
如何找出我的 Amazon VPC 中通过 NAT 网关的最大流量源?
我想找出我的 Amazon Virtual Private Cloud (Amazon VPC) 中通过 NAT 网关的最大流量源。
简短描述
要找出 Amazon VPC 中通过 NAT 网关的最大流量源,请完成以下任务:
- 使用 Amazon CloudWatch 指标确定出现流量峰值的时间。
- 使用 CloudWatch 日志找出导致流量峰值的实例。
- 使用 Amazon Simple Storage Service (Amazon S3) 或 Amazon Athena 找出导致流量峰值的实例。
解决方法
**注意:**在以下步骤中,将以下值替换为您的信息:
- 将 example-NAT-private-IP 替换为您的 NAT 网关私有 IP 地址
- 将 example-VPC-CIDR 替换为您的 Amazon VPC CIDR
- 将 example-database-name.example-table-name 替换为您的数据库和表名
- 将 example-y.y 替换为您的 Amazon VPC CIDR 的前两个八进制数
使用 CloudWatch 指标确定出现流量峰值的时间
要确定和监控 NAT 网关和具体的峰值时间,请使用以下 CloudWatch 指标:
- BytesInFromSource - 上传
- BytesInFromDestination - 下载
检查您是否为 Amazon VPC 或 NAT 网关弹性网络接口启用 Amazon VPC 流日志。如果您没有启用 Amazon VPC 流日志,请创建流日志,以便启用此选项。启用 Amazon VPC 流日志后,流日志数据将发布到 CloudWatch Logs 或 Amazon S3。
使用 CloudWatch Logs Insights 来识别导致流量峰值的实例
**注意:**或者,使用 CloudFormation 模板创建包含以下查询的 CloudWatch 控制面板。
完成以下步骤:
-
打开 CloudWatch 控制台。
-
在导航窗格中,选择 Logs Insights。
-
从下拉列表中,选择您的 NAT 网关的日志组。
-
选择预定义的时间范围,或者选择 Custom(自定义)来设置自己的时间范围。
-
要确定通过 NAT 网关发送流量最多的实例,请运行以下命令:
filter (dstAddr like example-NAT-private-IP and isIpv4InSubnet(srcAddr, example-VPC-CIDR)) | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr| sort bytesTransferred desc | limit 10
-
要确定进出实例的流量,请运行以下命令:
filter (dstAddr like example-NAT-private-IP and isIpv4InSubnet(srcAddr, example-VPC-CIDR)) or (srcAddr like example-NAT-private-IP and isIpv4InSubnet(dstAddr, example-VPC-CIDR))| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr| sort bytesTransferred desc | limit 10
-
要确定您的 Amazon VPC 中的实例与之通信最多的互联网目标,请运行以下命令。
对于上传:filter (srcAddr like example-NAT-private-IP and not isIpv4InSubnet(dstAddr, example-VPC-CIDR)) | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr| sort bytesTransferred desc | limit 10
对于下载:
filter (dstAddr like example-NAT-private-IP and not isIpv4InSubnet(srcAddr, example-VPC-CIDR)) | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr| sort bytesTransferred desc | limit 10
使用 Amazon S3 或 Athena 确定导致流量峰值的实例
完成以下步骤:
-
打开 Amazon S3 控制台或 Athena 控制台。
-
创建表。为数据库和表名添加注释,然后添加以下筛选器以检查特定时间范围内的主要流量源:
start>= (example-timestamp-start)
end>= (example-timestamp-end) -
要确定通过 NAT 网关发送流量最多的实例,请运行以下命令:
SELECT srcaddr,dstaddr,sum(bytes) FROM example-database-name.example-table-name WHERE srcaddr like example-y.y AND dstaddr like example-NAT-private-IP group by 1,2 order by 3 desclimit 10;
-
要确定进出实例的流量,请运行以下命令:
SELECT srcaddr,dstaddr,sum(bytes) FROM example-database-name.example-table-name WHERE (srcaddr like example-y.y AND dstaddr like example-NAT-private-IP) or (srcaddr like example-NAT-private-IP AND dstaddr like example-y.y) group by 1,2 order by 3 desclimit 10;
-
要确定您的 Amazon VPC 中的实例与之通信最多的互联网目标,请运行以下命令。
对于上传:SELECT srcaddr,dstaddr,sum(bytes) FROM example-database-name.example-table-name WHERE (srcaddr like example-NAT-private-IP AND dstaddr not like example-y.y) group by 1,2 order by 3 desclimit 10;
对于下载:
SELECT srcaddr,dstaddr,sum(bytes) FROM example-database-name.example-table-name WHERE (srcaddr not like example-y.y AND dstaddr like example-NAT-private-IP) group by 1,2 order by 3 desclimit 10;
使用 CloudWatch Logs Insights 确定与互联网目标通信的实例
要查找实例正在通信的互联网目标,必须使用自定义 VPC 流日志。这些 VPC 流日志必须包含其他字段 pkt-srcaddr 和 pkt-dstaddr。有关详细信息,请参阅通过 NAT 网关的流量。
VPC 流日志示例:
${version} ${account-id} ${interface-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${packets} ${bytes} ${start} ${end} ${action} ${log-status} ${pkt-srcaddr} ${pkt-dstaddr}
完成以下步骤:
- 打开 CloudWatch 控制台。
- 在导航窗格中,选择 Logs Insights。
- 从下拉列表中,选择您的 VPC 流日志的日志组。
- 选择预定义的时间范围,或者选择 Custom(自定义)来设置自己的时间范围。
- 要确定通过 NAT 网关向互联网目标发送流量最多的实例,请运行以下命令。
对于上传流量:
对于下载流量:parse @message "* * * * * * * * * * * * * * * " as version, account_id, interface_id, srcaddr, dstaddr, srcport, dstport, protocol, packets, bytes, start, end, action, log_status, pkt_srcaddr, pkt_dstaddr | filter (dstaddr like 'example-NAT-private-IP' and isIpv4InSubnet(pkt_srcaddr, 'example-VPC-CIDR')) | stats sum(bytes) as bytesTransferred by pkt_srcaddr, pkt_dstaddr | sort bytesTransferred desc | limit 10
parse @message " * * * * * * * * * * * * * * *" as version, account_id, interface_id, srcaddr, dstaddr, srcport, dstport, protocol, packets, bytes, start, end, action, log_status, pkt_srcaddr, pkt_dstaddr | filter (srcaddr like 'example-NAT-private-IP' and !isIpv4InSubnet(pkt_srcaddr, 'example-VPC-CIDR')) | stats sum(bytes) as bytesTransferred by pkt_srcaddr, pkt_dstaddr | sort bytesTransferred desc | limit 10
相关信息
相关内容
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前