Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何在我的 Amazon VPC 中尋找 NAT 閘道流量的主要貢獻因子?
我想透過 Amazon Virtual Private Cloud (Amazon VPC) 中的 NAT 閘道找到流量的主要貢獻因子。
簡短說明
若要尋找 Amazon VPC 中 NAT 閘道流量的主要貢獻因子,請完成下列任務:
- 使用 Amazon CloudWatch 指標識別流量尖峰的時間。
- 使用 CloudWatch 日誌識別造成流量尖峰的執行個體。
- 使用 Amazon Simple Storage Service (Amazon S3) 或 Amazon Athena 識別造成流量尖峰的執行個體。
解決方法
**注意:**在下列步驟中,使用您的資訊取代下列值:
- 具有 NAT 閘道私人 IP 位址的 example-NAT-private-IP
- 具有 Amazon VPC CIDR 的 example-VPC-CIDR
- 具有資料庫和資料表名稱的 example-database-name.example-table-name
- 具有 Amazon VPC CIDR 前兩個八位元組的 example-y.y
使用 CloudWatch 指標識別流量尖峰的時間
若要識別和監控 NAT 閘道以及尖峰的特定時間,請使用下列 CloudWatch 指標:
- BytesInFromSource – 上傳
- BytesInFromDestination – 下載
檢查您已開啟 Amazon VPC 或 NAT 閘道彈性網路介面的 Amazon VPC 流程日誌。如果您尚未開啟 Amazon VPC 流程日誌,請建立流程日誌以開啟此選項。當您開啟 Amazon VPC 流程日誌時,流程日誌資料會發佈至 CloudWatch 日誌或 Amazon S3。
使用 CloudWatch Logs Insights 識別造成流量尖峰的執行個體
**注意:**或者,使用 CloudFormation 範本建立包含下列查詢的 CloudWatch 儀表板。
請完成下列步驟:
-
開啟 CloudWatch 主控台。
-
在導覽窗格中,選擇 Logs Insights。
-
從下拉式清單中,選取 NAT 閘道的日誌群組。
-
選取預先定義的時間範圍,或選擇自訂以設定您自己的時間範圍。
-
若要識別透過 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 流程日誌的日誌群組。
- 選取預先定義的時間範圍,或選擇自訂以設定您自己的時間範圍。
- 若要識別透過 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 10parse @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
相關資訊
相關內容
- 已提問 1 年前

