使用網路監看員計量和記錄來對網路進行疑難排解
如果您想要快速診斷問題,您必須了解 Azure 網路監看員記錄中的可用資訊。
在您的工程公司中,您希望將員工用來診斷並解決任何網路設定問題所花費的時間降至最低。 您想要確保他們了解哪些記錄中有哪些資訊可供使用。
在此課程模組中,您將專注於流程記錄、診斷記錄及流量分析。 您將了解這些工具如何協助對 Azure 網路進行疑難排解。
使用方式和配額
每個 Microsoft Azure 資源皆可使用至達到其配額為止。 每個訂用帳戶都有個別配額,並且會追蹤每個訂用帳戶的使用方式。 每個區域中的每個訂用帳戶都只需要一個網路監看員執行個體。 此執行個體可為您提供使用方式和配額的檢視,讓您能夠查看您是否處於觸達配額的風險之中。
若要檢視使用方式和配額資訊,請移至 [所有服務]>[網路]>[網路監看員],然後選取 [使用方式和配額]。 您將根據使用方式和資源位置查看細微資料。 已擷取下列計量的資料:
- 網路介面
- 網路安全性群組 (NSG)。
- 虛擬網路
- 公用 IP 位址
以下範例會顯示入口網站中的使用方式和配額:
記錄
網路診斷記錄提供細微資料。 您將使用此資料,更加了解連線能力和效能問題。 網路監看員中有三個記錄顯示工具:
- NSG 流程記錄
- 診斷記錄
- 流量分析
讓我們查看每一個工具。
NSG 流程記錄
在 NSG 流量記錄中,您可以檢視網路安全性群組上輸入和輸出 IP 流量的相關資訊。 流量記錄會根據流程適用的網路介面卡,顯示每個規則的傳出和傳入流程。 NSG 流程記錄會顯示是否要根據所擷取的 5 組 Tuple 資訊來允許或拒絕流量。 此資訊包括:
- 來源 IP
- 來源連接埠
- 目的地 IP
- 目的地連接埠
- 通訊協定
此圖表會顯示 NSG 所遵循的工作流程。
流程記錄會將資料儲存於 JSON 檔案中。 很難藉由手動搜尋記錄檔來深入解析此資料,特別是如果您在 Azure 中具有大型基礎結構部署。 若要解決此問題,請使用 Power BI。
在 Power BI 中,您可以透過許多方式將 NSG 流量記錄視覺化。 例如:
- 發言最多者 (IP 位址)
- 依方向的流程 (傳入和傳出)
- 依決策的流程 (允許和拒絕)
- 依目的地連接埠的流程
您也可以使用開放原始碼工具來分析記錄,例如 Elastic Stack、Grafana 及 Graylog。
注意
NSG 流程記錄不支援 Azure 傳統入口網站上的儲存體帳戶。
診斷記錄
在網路監看員中,診斷記錄是用來啟用和停用 Azure 網路資源記錄的集中位置。 這些資源可能包括 NSG、公用 IP、負載平衡器與應用程式閘道。 當您啟用感興趣的記錄之後,即可使用工具來查詢和檢視記錄項目。
您可以將診斷記錄匯入至 Power BI 和其他工具來分析它們。
流量分析
若要調查您雲端網路之間的使用者與應用程式活動,請使用流量分析。
此工具讓您能夠深入解析訂用帳戶間的網路活動。 您可以診斷安全性威脅,例如,開啟的連接埠、與已知錯誤網路通訊的 VM,以及流量流程模式。 流量分析會分析 Azure 區域和訂用帳戶間的 NSG 流程記錄。 您可以使用資料來將網路效能最佳化。
此工具需要 Log Analytics。 Log Analytics 工作區必須存在於支援的區域中。
使用案例
現在,讓我們查看一些 Azure 網路監看員計量與記錄很實用的使用案例。
客戶回報效能低落
若要解決效能低落,您需要判斷問題的根本原因:
- 對伺服器設定節流的流量是否太多?
- VM 大小是否適合此作業?
- 延展性閾值是否設定得恰當?
- 是否發生了任何惡意攻擊?
- VM 儲存體設定是否正確?
首先,檢查 VM 大小適合此作業。 接下來,在 VM 上啟用 Azure 診斷,以取得更多特定計量的細微資料,例如,CPU 使用量和記憶體使用量。 若要透過入口網站啟用 VM 診斷,移至 [VM]、選取 [診斷設定],然後開啟診斷。
讓我們假設您有一部正常運作的 VM。 但是,該 VM 的效能最近降低了。 為了識別您是否遭遇了任何資源瓶頸,您需要檢閱所擷取的資料。
從回報的問題之前、期間及之後所擷取資料的一段時間範圍開始,取得準確的效能檢視。 這些圖表對於交互參照相同期間內的不同資源行為也非常實用。 您將檢查下列各項:
- CPU 瓶頸
- 記憶體瓶頸
- 磁碟瓶頸
CPU 瓶頸
當您查看效能問題時,您可以檢查趨勢來了解其是否會影響您的伺服器。 若要從入口網站找出趨勢,請使用監視圖表。 您可能會在監視圖表上看見各種類型的模式:
- 隔離式尖峰。 尖峰可能會與排程的工作或預期的事件相關。 如果您知道此工作的內容,那麼,它是在必要的效能層級上執行嗎? 如果效能良好,您可能就不需要提高容量。
- 突然增加和固定。 新的工作負載可能會導致這種趨勢。 在 VM 中啟用監視,以找出導致此負載的流程。 使用量會增加可能是因為程式碼效率不彰或有新的工作負載正常使用所致。 如果使用量正常,那麼,該流程是在所需的效能層級上運作嗎?
- 固定。 您的 VM 總是像這樣嗎? 若是如此,您就應該識別會取用大部分資源的流程,並考慮增加容量。
- 穩定增加。 您看到使用量持續增加嗎? 若是如此,這種趨勢可能表示程式碼效率不佳或某個流程正在存取更多使用者工作負載。
如果您觀察到高 CPU 使用量,即可執行下列其中一項:
- 增加 VM 的大小,以使用更多核心進行調整。
- 進一步調查問題。 找出應用程式與處理序,然後據以進行疑難排解。
若您將 VM 擴大而 CPU 仍以高於 95% 的百分比執行,代表應用程式的效能更好,還是代表應用程式輸送量高於可接受的程度? 若不會,請針對該個別應用程式進行疑難排解。
記憶體瓶頸
您可以檢視 VM 所使用的記憶體數量。 記錄將協助您了解此趨勢,以及它是否對應到您看到問題的時間。 您的可用記憶體任何時候都不應小於 100 MB。 請留意下列趨勢:
- 突然增加和固定的使用量。 高記憶體使用量可能不是效能不佳的原因。 某些應用程式 (例如關聯式資料庫引擎) 在設計上會佔用大量記憶體。 但是,若有多個記憶體需求量很大的應用程式,您可能就會看到效能不佳,因為記憶體競爭會導致修剪並分頁到磁碟。 這些流程將對效能造成負面影響。
- 穩定增加使用量。 此趨勢可能是應用程式「正在準備」。 這在資料庫引擎正在啟動時很常見。 然而,其也可能是應用程式中記憶體流失的跡象。
- 分頁或分頁檔使用方式。 檢查您是否正在大量使用 Windows 分頁檔案或位於 /dev/sdb 的 Linux 分頁檔。
若要解決高記憶體使用量,請考慮下列解決方案:
- 如需立即緩解或分頁檔案使用方式,請增加 VM 的大小以新增記憶體,然後進行監視。
- 進一步調查問題。 請找出造成瓶頸的應用程式或程序,並進行疑難排解。 若您知道該應用程式,請查看您是否可以設定記憶體配置的上限。
磁碟瓶頸
網路效能可能也會與 VM 的儲存子系統相關。 您可以在入口網站中調查 VM 的儲存體帳戶。 若要識別儲存體的問題,請查看儲存體帳戶診斷和 VM 診斷的效能計量。 尋找問題在特定時間範圍內發生時的關鍵趨勢。
- 若要檢查 Azure 儲存體逾時,請使用計量 ClientTimeOutError、ServerTimeOutError、AverageE2ELatency、AverageServerLatency 及 TotalRequests。 如果您在 TimeOutError 計量中看到值,I/O 作業花費的時間太長且逾時。如果您看到 AverageServerLatency 與 TimeOutErrors 同時增加,可能是平台問題。 透過 Microsoft 技術支援提出案例。
- 若要檢查 Azure 儲存體節流,請使用儲存體帳戶計量 ThrottlingError。 如果您看到節流,表示您已觸達帳戶的 IOPS 限制。 您可以調查計量 TotalRequests 來檢查此問題。
修復高磁碟使用量和延遲問題:
- 將 VM I/O 最佳化,以調整先前的虛擬硬碟(VHD) 限制。
- 提高輸送量並減少延遲。 若您發現您有延遲敏感性應用程式且需要高輸送量,請將您的 VHD 移轉至 Azure 進階儲存體。
封鎖流量的虛擬機器防火牆規則
若要對 NSG 流程問題進行疑難排解,請使用網路監看員 IP 流程驗證工具和 NSG 流程記錄,來判斷 NSG 或使用者定義的路由 (UDR) 是否會受到流量流程干擾。
執行 IP 流程驗證,並指定本機 VM 和遠端 VM。 當您選取 [檢查] 之後,Azure 就會對規則執行邏輯測試。 如果結果是允許存取,請使用 NSG 流程記錄。
在入口網站中,移至 NSG。 在流程記錄設定底下,選取 [開啟]。 現在,再次嘗試連線到 VM。 使用網路監看員流量分析來將資料視覺化。 如果結果是允許存取,就不會受到任何 NSG 規則阻擋。
如果您已到達這一點,但仍未診斷出問題,則表示遠端 VM 上可能發生錯誤。 在遠端 VM 上停用防火牆,然後重新測試連線能力。 如果您可以連線到已停用防火牆的遠端 VM,請確認遠端防火牆設定。 接著,重新啟用防火牆。
前端與後端子網路無法通訊
根據預設,所有子網路都可在 Azure 中通訊。 如果兩個子網路上的兩部 VM 無法通訊,就必須有封鎖通訊的設定。 在您檢查流程記錄之前,先執行從前端 VM 到後端 VM 的 IP 流程驗證工具。 此工具會對網路上的規則執行邏輯測試。
若結果是後端子網路上有個 NSG 會封鎖所有通訊,請重新設定該 NSG。 基於安全性考量,您必須封鎖某些與前端的通訊,因為前端會公開至公用網際網路。
藉由封鎖對後端的通訊,您可以限制發生惡意程式碼或安全性攻擊時的暴露程度。 不過,如果 NSG 會封鎖一切,那麼它的設定就不正確。 啟用所需的特定通訊協定和連接埠。