當公網訪問流量突增時,公網NAT Gateway可能觸發容量和頻寬上限,從而導致服務響應變慢,影響業務流量。您可以分析公網NAT Gateway中SNAT規則ECS執行個體的流量情況,通過VPC流日誌篩選出高流量的ECS執行個體,從而最佳化網路頻寬分配,改善網路瓶頸。
功能介紹
公網NAT Gateway是一款面向企業的安全網關產品,提供SNAT和DNAT功能。通過公網NAT Gateway,您可以對大量訪問公網的機器進行精細化的營運監控和管理。同時通過公網NAT Gateway還可展示top流量,精確定位突發流量的ECS執行個體,並提供豐富多維度流量監控指標。更多公網NAT Gateway的資訊,請參見什麼是公網NAT Gateway。
VPC流日誌可以捕獲指定彈性網卡(Elastic Network Interfaces,ENI)、指定VPC或者交換器中所有彈性網卡的流量。
當您需要排查公網NAT Gateway(配置SNAT或者DNAT功能)中ECS執行個體的流量情況時,您可以建立VPC流日誌,捕獲公網NAT Gateway所在交換器內的所有彈性網卡的流量。通過啟用和分析VPC流日誌,系統地排查該公網NAT Gateway中ECS執行個體的流量,對於高流量執行個體進行有效管理和最佳化,確保網路正常運行。
關鍵特性
VPC流日誌啟用後將收集和儲存流量日誌資料,您可以查看並分析ECS訪問公網的各條鏈路的流量日誌,全面瞭解各個ECS執行個體的網路流量行為。
內網與公網之間的流量需要通過公網NAT Gateway進行中轉,公網NAT Gateway綁定的彈性網卡是流量進出公網NAT Gateway的介面。您可以通過公網NAT Gateway對應的彈性網卡監控從內網到公網的出入流量,統計各鏈路的流量使用方式和頻寬消耗。
如下圖所示,以公網NAT Gateway的彈性網卡作為分界,將ECS通過公網NAT Gateway訪問公網的鏈路劃分為四段。
您可以通過Flowlog日誌中心查看並分析IN方向流量、OUT方向流量或者查看統計了哪些ENI的流量等資訊。
使用情境
使用流日誌排查公網NAT Gateway中高流量的ECS執行個體,主要適用於以下情境:
最佳化網路效能:在高並發、高流量的業務情境中,通過使用流日誌分析公網NAT Gateway中各ECS執行個體的出站和入站流量,可以排查出高流量執行個體,同時也可以識別出哪些執行個體和源IP組合導致了頻寬瓶頸,通過併合理分配頻寬資源,以避免某些執行個體過載而導致網路瓶頸。
成本控制與最佳化:高流量執行個體可能導致高昂的頻寬費用,通過分析流量日誌,識別出哪些執行個體和源IP持續產生高流量,最佳化這些執行個體的網路訪問路徑,減少不必要的流量,降低成本。
情境樣本
某企業擁有多個內部伺服器,這些伺服器通過公網NAT Gateway的SNAT功能訪問外部的互連網資源。近期,企業發現內部伺服器訪問外部互連網資源的載入時間變長,影響了使用者體驗。該企業希望排查出流量較高的伺服器,並通過合理最佳化和規劃頻寬資源等措施來緩解這些問題,提升使用者體驗。
本文以下圖情境為例。該企業在華東1(杭州)地區擁有一個VPC,其中交換器1內有三台ECS執行個體,這些執行個體通過交換器2中公網NAT Gateway的SNAT功能訪問公網。現在由於內部伺服器訪問公網流量突增,導致伺服器響應變慢,影響體驗,需要通過VPC流日誌排查並分析這三台ECS執行個體中流量佔比較高的執行個體,為重新規劃資源改善網路效能瓶頸提供指導。
前提條件
您已在華東1(杭州)地區建立Virtual Private Cloud、交換器1和交換器2。具體操作,請參見建立和管理專用網路。
您已在交換器1內建立3台ECS執行個體,分別為ECS01、ECS02和ECS03。具體操作,請參見自訂購買執行個體。
您已在交換器2中建立公網NAT Gateway,並為該公網NAT Gateway建立交換器粒度的SNAT條目。該SNAT條目選擇的交換器粒度指向交換器1。具體操作,請參見使用公網NAT GatewaySNAT功能訪問互連網。
操作步驟
步驟一:建立流日誌
建立流日誌前,請確保您已經滿足流日誌的前提條件。具體操作,請參見流日誌前提條件。
- 登入專用網路管理主控台。
- 在左側導覽列,選擇 。
在頂部功能表列處,選擇目標地區。本文選擇華東1(杭州)。
在流日誌頁面,單擊建立流日誌。
在建立流日誌對話方塊,根據以下資訊配置流日誌,然後單擊確定。
配置
說明
資源類型
選擇要捕獲流量的資源類型,本文選擇交換器。
資源執行個體
選擇要捕獲流量的資源執行個體。本文選擇交換器1的執行個體ID。
流量類型
選擇要捕獲流量的類型,本文選擇全部流量。
專案(Project)
選擇儲存捕獲流量的專案(Project),本文選擇建立 Project,並輸入建立的Project名稱。
日誌庫(Logstore)
選擇儲存捕獲流量的日誌庫(Logstore),本文選擇建立 Logstore,並輸入建立的Logstore名稱。
開啟流日誌分析報表功能
本文選擇開啟該功能。
步驟二:通過wrk工具類比使用者流量
依次登入ECS01、ECS02和ECS03執行個體。
在ECS01、ECS02和ECS03執行個體中分別執行以下命令,安裝wrk工具。
yum -y install git make gcc git clone https://github.com/wg/wrk.git yum install unzip cd wrk make
在ECS01、ECS02和ECS03執行個體中分別執行以下命令,進行使用者流量測試。
ECS01中執行以下命令。
./wrk -c 1000 -d 60s -t 3 http://101.XX.XX.200:80/ # 101.XX.XX.200為特定公網IP
ECS02中執行以下命令。
./wrk -c 2000 -d 60s -t 3 http://101.XX.XX.200:80/ # 101.XX.XX.200為特定公網IP
ECS03中執行以下命令。
./wrk -c 3000 -d 60s -t 3 http://101.XX.XX.200:80/ # 101.XX.XX.200為特定公網IP
命令列中的參數介紹:
-c:connections,每個線程保持的並發串連數。
-d:duration,測試的持續時間長度,s表示單位為秒。
-t:threads,指定要使用的線程數,即類比的並發使用者數量。
步驟三:查看流日誌
- 登入專用網路管理主控台。
- 在左側導覽列,選擇 。
在頂部功能表列處,選擇目標地區。本文選擇華東1(杭州)。
在流日誌頁面,找到目標流日誌,然後在Log Service列單擊日誌庫(Logstore)名稱的連結,前往Log Service控制台查看流量資訊。
根據下圖樣本順序,查看通過公網NAT GatewaySNAT條目訪問公網的ECS執行個體流量情況。
通過下圖可以觀察到,私網IP為
172.16.1.46
的ECS03執行個體流量較高。序號
步驟描述
①
本文以如下SQL語句為例,對採集到的VPC流日誌進行彙總和排列,篩選去往某一特定公網IP地址的流量較高的ECS執行個體的圖表:
dstaddr: "101.XX.XX.200" and action: ACCEPT and srcaddr: 172.16.1.* | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, srcaddr,sum(bytes*8/(case WHEN "end"-start=0 THEN 1 else "end"-start end)) as bandwidth group by time,srcaddr order by time asc limit 1000
該SQL語句定義了時間time、頻寬bandwidth(bps)、源地址srcaddr三個參數,time和srcaddr為彙總列,並按time從小到大排序,取1000條日誌。關於欄位的更多資訊,請參見VPC流日誌的欄位詳情。
其中參數說明如下:
dstaddr
:目的地址,即公網IP地址。本文輸入101.XX.XX.200
。srcaddr
:源地址,即ECS執行個體IP地址。本文輸入172.16.1.*
。其餘欄位請參照樣本值輸入。
說明如果您想要篩選某一特定公網IP到ECS執行個體的入流量資訊,請輸入以下SQL語句查詢:
srcaddr: "101.XX.XX.200" and action: ACCEPT and dstaddr: 172.16.1.* | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, dstaddr,sum(bytes*8/(case WHEN "end"-start=0 THEN 1 else "end"-start end)) as bandwidth group by time,dstaddr order by time asc limit 1000
其中參數說明如下:
srcaddr
:源地址,即公網IP地址。本文輸入101.XX.XX.200
。dstaddr
:目的地址,即ECS執行個體IP地址。本文輸入172.16.1.*
。產生流圖時,彙總列選擇
dstaddr
。
如果您想要篩選ECS執行個體去往所有公網IP的出流量資訊,請輸入以下SQL語句查詢:
srcaddr: 172.16.1.* and action: ACCEPT | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, srcaddr,sum(bytes*8/(case WHEN "end"-start=0 THEN 1 else "end"-start end)) as bandwidth from log where ip_to_domain(dstaddr)!='intranet' group by time,srcaddr order by time asc limit 1000
其中參數說明如下:
srcaddr
:源地址,即私網地址,本文輸入172.16.1.*
。dstaddr
:目的地址,即公網地址。產生流圖時,彙總列選擇
srcaddr
。
②
選擇要查看的流日誌時間。本文選擇最近5分鐘。
③
單擊通用配置頁簽,然後單擊選擇流圖格式。
④
在查詢分析配置地區,設定以下參數資訊:
x軸欄位:設定為time。
y軸欄位:設定為bandwidth。
彙總列:設定為srcaddr。
在標準配置地區,設定格式化為bps, Kbps, Mbps(SI)。
其餘參數保持預設值。
⑤
單擊添加到儀錶盤,在彈出的對話方塊中設定以下參數資訊:
操作類型:本文以建立儀錶盤為例進行說明。
配置模式:本文以網格布局為例進行說明。
儀錶盤名稱:填寫儀錶盤的名稱,本文輸入ECS經過NAT Gateway出流量。
您可以在儀錶盤查看流日誌資訊。
⑥
單擊查詢/分析,即可查看各個ECS執行個體出公網的流量情況,排查出高流量的ECS執行個體。
相關文檔
如果您想要瞭解VPC流日誌捕獲的具體欄位資訊,請參見流日誌概述。
如果您在查詢流日誌過程中,出現報錯資訊,請參見查詢與分析日誌的常見報錯。
如果您想瞭解查詢和分析日誌的更多資訊,請參見查詢和分析日誌。