練習 - 設定環境
在本練習中,您會設定使用 Load Balancer 的預先設定環境,並建立圖表來監視 Load Balancer 的健康情況。
此練習為選擇性項目。 若要完成本練習,您需要存取能建立 Azure 資源的 Azure 訂用帳戶。 如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
設定您的環境
登入 Azure 入口網站。
從右上方的功能表列中,選取 [Cloud Shell]。
選取 [Bash]。
執行下列命以下載本練習中您會用到的指令碼。
git clone https://github.com/MicrosoftDocs/mslearn-troubleshoot-inbound-network-connectivity-azure-load-balancer load-balancer
前往 load-balancer/src/scripts 資料夾。
cd ~/load-balancer/src/scripts
執行下列命令,設定 VM 的使用者名稱。 您可以變更使用者的名稱。 稍後在本練習中,您會需要用到這個使用者名稱,所以請記下來。
export USERNAME=azureuser
執行下列命令來建立指令碼所建立的虛擬機器密碼。 如果稍後需要密碼,請記得密碼儲存在變數中,也記錄在文字檔 passwd.txt 中。
export PASSWORD=$(openssl rand -base64 32) echo $PASSWORD > passwd.txt
設定資源群組名稱。
export RESOURCEGROUP=learn-ts-loadbalancer-rg
設定位置。 將 eastus 值取代為您附近的位置。
export LOCATION=eastus
下列清單包含一些可使用的位置值:
- westus2
- 美國中南部
- centralus
- eastus
- westeurope
- 東南亞
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
執行下列 命令以建立資源群組。
az group create --name $RESOURCEGROUP --location $LOCATION
執行下列命令來建立負載平衡器、虛擬機器和虛擬網路。
bash setup.sh $RESOURCEGROUP
此指令碼最多需要 25 分鐘的時間來執行。
檢查建立的資源
在 Azure 入口網站中,搜尋資源群組。
選取 learn-ts-loadbalancer-rg。
依類型排序資源清單。
資源群組應包含此表格中顯示的資源。
名稱 類型 描述 retailappvm1_disk1_xxx and retailappvm1_disk2_xxx 磁碟 兩部 VM 的虛擬硬碟。 retailapplb 負載平衡器 VM 上所執行應用程式的負載平衡器。 負載平衡器中的後端集區會參照 retailappvm1 和 retailappvm2 虛擬機器。 nicvm1 和 nicvm2 網路介面 兩部 VM 的網路介面。 retailappnicvm1nsg 和 retailappnicvm2nsg 網路安全性群組 (NSG) 控制每部 VM 輸入流量的 NSG。 retailappnsg 網路安全性群組 作為這兩個虛擬機器的初始篩選條件,但每部虛擬機器的 NSG 允許根據每台機器進行流量篩選。 retailappip 公用 IP 位址 提供負載平衡器前端存取的公用 IP 位址。 retailappvm1 和 retailappvm2 虛擬機器 執行零售應用程式的 VM。 retailappvmjumpbox 虛擬機器 同樣位於虛擬網路中,但具有公用 IP 位址的 VM。 系統管理員可以登入此虛擬機器,以存取僅具有私人 IP 位址的 retailappvm1 和 retailappvm2 VM。 retailappvnet 虛擬網路 VM 的虛擬網路。 選取 retailapplb 負載平衡器。
在 [設定] 下,選取 [負載平衡規則]。
選取 [retailapprule]。 負載平衡器設定如下:將抵達連接埠 80 的流量路由傳送至後端集區中機器的連接埠 80。
關閉 retailapprule 窗格。
在 [設定] 下,選取 [健康狀態探查]。
選取 [retailapphealthprobe]。 後端集區的健康狀態探查也會將訊息傳送至連接埠 80,以檢查每部虛擬機器上是否有該應用程式。
關閉 retailapphealthprobe 窗格。
測試負載平衡器
返回 Azure Cloud Shell。
執行下列命令,尋找負載平衡器前端的公用 IP 位址。
bash findip.sh
開啟瀏覽器視窗,並前往這個 IP 位址。 結果應該是含有 retailappvm1 或 retailappvm2 訊息的頁面,視負載平衡器路由傳送要求的方式而定。
在 Cloud Shell 中,執行下列命令以前往 src/stresstest 資料夾。
cd ~/load-balancer/src/stresstest
此資料夾包含 .NET Core 應用程式,該應用程式可模擬數以百計的並行使用者透過 Load Balancer 將要求傳送到虛擬機器。
執行下列命令以啟動應用程式。 以負載平衡器的前端 IP 位址取代 <ip address>。
dotnet run <ip address>
應用程式應該會以一系列的訊息回應,指出是否已收到 retailappvm1 或 retailappvm2 的回應。
允許應用程式執行五分鐘。 按 Enter 以停止應用程式。
建立圖表來監視計量
在 Azure 入口網站中,前往資源群組 learn-ts-loadbalancer-rg。
選取 retailapplb 負載平衡器。
在 [監視] 下,選取 [計量]。
將下列計量新增至空白圖表。
屬性 值 範圍 retailapplb 計量命名空間 負載平衡器標準計量 計量 封包計數 彙總 平均 在頁面頂端,將時間範圍設定為 [過去 30 分鐘]。 此圖表應該與此處顯示的畫面相似。 請注意平均封包計數的尖峰值。
選取 [釘選到儀表板] 。
選取 [建立新項目],然後使用下列值。
欄位 值 類型 私人 儀表板名稱 dashboard-learn-ts-loadbalancer 選取 [建立並釘選]。
選取 [新增圖表],然後新增下列計量。
屬性 值 範圍 retailapplb 計量命名空間 負載平衡器標準計量 計量 健康狀態探查狀態 彙總 平均 選取 [新增計量] 並輸入下列值,將另一個計量新增至圖表。
屬性 值 範圍 retailapplb 計量命名空間 負載平衡器標準計量 計量 資料路徑可用性 彙總 平均 將時間範圍設為 [過去 30 分鐘]。 圖表應該會以 100% 的比例來回報這兩個統計資料。
選取 [釘選到儀表板]>[現有]。
針對儀表板,選取 dashboard-learn-ts-loadbalancer。
選取釘選。
這樣一來,當系統正確執行時,您就會有一組基準計量。