流量管理員端點監視

Azure 流量管理員包含內建的端點監視和自動端點容錯移轉。 此功能可協助您提供能夠從端點故障中恢復的高可用性應用程 式,包括 Azure 區域失敗。 預設會啟用端點監視。 若要停用監視,請參閱 啟用或停用健康情況檢查

設定端點監視

若要設定端點監視,您必須在流量管理員設定檔中指定下列設定︰

  • 通訊協定。 選擇 HTTP、HTTPS 或 TCP 作為通訊協定,流量管理員會在探查端點以檢查其健康情況時使用。 HTTPS 監視不會驗證您的 TLS/SSL 憑證是否有效,只會檢查憑證是否存在。
  • 連接埠。 選擇要求所使用的連接埠。
  • Path。 組態設定僅適用於 HTTP 和 HTTPS 通訊協定,這些通訊協定需要指定路徑設定。 為 TCP 監視通訊協定提供這項設定會導致錯誤。 對於 HTTP 和 HTTPS 通訊協定,請為監視存取的網頁或檔案,提供其相對路徑和名稱。 正斜線 / 是相對路徑的有效專案。 這個值表示檔案位於根目錄 (預設值)。
  • 自訂標頭設定。 當流量管理員將健康情況檢查傳送至設定檔下的端點時,此設定設定可協助您將特定的 HTTP 標頭新增至健康情況檢查。 您可以在設定檔層級指定自訂標頭,以適用于該設定檔中的所有端點,以及/或端點層級僅適用于該端點。 在多租用戶環境中,對於端點的健康情況檢查,您可以使用自訂標頭。 如此一來,就可以藉由指定主機標頭,正確地將其路由傳送至目的地。 您也可以使用此設定來新增唯一標頭,以用來識別流量管理員產生的 HTTP(S) 要求,並以不同方式處理這些要求。 您可以指定最多八 header:value 組以逗號分隔。 例如: header1:value1, header2:value2

注意

不支援在自訂 Host 標頭中使用星號字元 (*) 。

  • 預期的狀態碼範圍。 此設定可讓您以 200-299、301-301 格式指定多個成功碼範圍。 如果健康情況檢查結束時收到端點回應這些狀態碼,流量管理員會將這些端點標示為良好。 您最多可以指定八個狀態碼範圍。 此設定僅適用於 HTTP 和 HTTPS 通訊協定和所有端點。 此設定位於流量管理員設定檔層級,而且根據預設,值 200 會定義為成功狀態碼。

  • 探查間隔。 這個值會指定流量管理員探查代理程式檢查端點健康情況的頻率。 您可以指定以下兩個值:30 秒 (一般探查) 和 10 秒 (快速探查)。 如果沒有提供任何值,設定檔會設定為預設值 30 秒。 請流覽 流量管理員定價 頁面,以深入瞭解快速探查定價。

  • 容許的失敗次數。 這個值會指定在將該端點標示為狀況不良之前,流量管理員探查代理程式可以容許多少次失敗。 此值必須介於 0 到 9 的範圍內。 值為 0 表示單一監視失敗就會導致將該端點標示為狀況不良。 如果未指定任何值,它會使用預設值 3。

  • 探查逾時。 這個屬性指定在將端點的健全狀態探查檢查視為失敗之前,流量管理員探查代理程式應等候的時間量。 如果探查間隔設定為 30 秒,則您可以設定介於 5 到 10 秒的逾時值。 如果未指定任何值,它會使用預設值 10 秒。 如果探查間隔設定為 10 秒,則您可以設定介於 5 到 9 秒的逾時值。 如果未指定任何逾時值,它會使用預設值 9 秒。

    顯示Azure 入口網站中流量管理員組態的螢幕擷取畫面。

    圖:流量管理員端點監視

端點監視的運作方式

當監視通訊協定設定為 HTTP 或 HTTPS 時,流量管理員探查代理程式會使用指定的通訊協定、連接埠及相對路徑,向端點提出 GET 要求。 若探查代理程式收到 200-OK 回應,或預期狀態碼範圍中設定的任何回應,則會將端點視為狀況良好。 如果回應是不同的值,或在逾時期間內未收到回應,流量管理員探查代理程式會根據「容許的失敗次數」設定來重新嘗試。 如果此設定為 0,則完全不會重新嘗試。 如果連續失敗的數目高於 容許的失敗數目 設定,端點會標示為狀況不良。

當監視通訊協定是 TCP 時,流量管理員探查代理程式會使用指定的連接埠建立 TCP 連線要求。 如果端點以建立連線來回應要求,則該健康情況檢查會標示為成功。 流量管理員探查代理程式會重設 TCP 連接。 如果回應是不同的值,或未在逾時期間內收到任何回應,流量管理員會根據 容許的失敗次數 設定重新探查代理程式。 如果此設定為 0,則完全不會重新嘗試。 如果連續失敗的數目高於 容許的失敗數目 設定,則該端點會標示為狀況不良。

在所有情況下,流量管理員從多個位置進行探查。 連續失敗決定在每個區域內應該怎麼做。 這就是為什麼端點受到流量管理員的健全狀態探查頻率高於探查間隔所用的設定。

注意

對於 HTTP 或 HTTPS 監視通訊協定,端點端上常見的做法是在您的應用程式內實作自訂分頁,例如,/health.aspx。 使用此路徑進行監視,您可以執行應用程式特定的檢查,例如檢查效能計數器或驗證資料庫可用性。 根據這些自訂檢查,頁面會傳回適當的 HTTP 狀態碼。

流量管理員設定檔中的所有端點都共用監視設定。 如果您需要對不同端點使用不同的監視設定,您可以建立巢狀流量管理員設定檔

端點和設定檔狀態

您可以啟用和停用流量管理員設定檔和端點。 但端點狀態變更的原因也可能是流量管理員的自動化設定和流程。

端點狀態

您可以啟用或停用特定端點。 基礎服務可能仍然狀況良好,不受影響。 變更端點狀態可控制流量管理員設定檔中端點的可用性。 停用端點狀態時,流量管理員不會檢查其健康情況,且端點未包含在 DNS 回應中。

設定檔狀態

使用設定檔狀態設定,您可以啟用或停用特定的設定檔。 儘管端點狀態只會影響單一端點,設定檔狀態仍會影響整個設定檔,包括所有端點。 當您停用設定檔時,不會檢查端點的健康情況,且 DNS 回應中未包含任何端點。 會針對 DNS 查詢傳回 NXDOMAIN 回應碼。

端點監視狀態

端點監視狀態是流量管理員所產生的值,會顯示端點的狀態。 您無法手動變更此設定。 端點監視狀態是端點監視的結果以及設定端點狀態的組合。 下表顯示端點監視狀態的可能值:

設定檔狀態 端點狀態 端點監視狀態 備註
已停用 啟用 非使用中 已停用設定檔。 儘管端點狀態為「已啟用」,但會優先採用設定檔狀態 (「已停用」)。 未監視已停用設定檔中的端點。 會針對 DNS 查詢傳回 NXDOMAIN 回應碼。
<any> 已停用 已停用 端點已停用。 未監視已停用的端點。 DNS 回應未包含端點,因此不會接收流量。
啟用 啟用 線上 端點受到監視且狀況良好。 DNS 回應包含端點,因此可接收流量。
啟用 啟用 已降級 端點監視健全狀況檢查失敗。 DNS 回應未包含端點,且不會接收流量。
若所有端點皆已降級,則為例外狀況。 在此情況下,所有專案都會被視為在查詢回應中傳回。
啟用 啟用 正在檢查端點 端點已受到監視,但尚未收到第一次探查的結果。 CheckingEndpoint 是暫時性狀態,其通常會在新增或啟用設定檔中的端點之後立即發生。 處於此狀態的端點會包含於 DNS 回應中,因此可接收流量。
啟用 啟用 已停止 端點所指向的 Web 應用程式未執行。 檢查 Web 應用程式設定。 若端點是巢狀端點類型,且子系設定檔已停用或非使用中,也會發生此狀態。
「已停止」狀態的端點不會受到監視。 DNS 回應未包含端點,且不會接收流量。 若所有端點皆已降級,則為例外狀況。 在此情況下,所有專案都會被視為在查詢回應中傳回。
啟用 啟用 未監視 端點會設定為一律提供流量。 未啟用健康情況檢查。

如需如何計算巢狀端點的端點監視狀態的詳細資訊,請參閱 巢狀流量管理員設定檔

注意

如果準層或以上層級中的 Web 應用程式未執行,App Service 可能會發生「已停止」端點監視狀態。 如需詳細資訊,請參閱流量管理員與 App Service 整合

設定檔監視狀態

設定檔監視狀態是所有端點的端點監視狀態值,以及設定之設定檔狀態所形成的組合。 下表說明可用的值:

設定檔狀態 (依設定) 端點監視狀態 設定檔監視狀態 備註
已停用 <任何>或未定義端點的設定檔。 已停用 已停用設定檔。
啟用 至少有一個端點的狀態為「已降級」。 已降級 檢閱個別端點狀態值,以判斷哪些端點需要進一步注意。
啟用 至少有一個端點的狀態為「線上」。 沒有狀態為「已降級」的端點。 線上 服務正在接收流量。 不需要進行其他動作。
啟用 至少有一個端點的狀態為「正在檢查端點」。 沒有狀態為「線上」或「已降級」的端點。 正在檢查端點 建立或啟用設定檔時,就會發生此轉換狀態。 正在初次檢查端點健康情況。
啟用 設定檔中的所有端點狀態為「已停用」或「已停止」,或者設定檔並未定義任何端點。 非使用中 沒有作用中的端點,但設定檔仍為「已啟用」。

端點容錯移轉和復原

流量管理員會定期檢查每個端點的健康狀態,包括狀況不良的端點健康情況。 當端點變成狀況良好時,流量管理員會偵測到此狀況,並且將它恢復至輪替。

發生下列任何一種狀況時,端點為狀況不良:

  • 如果監視通訊協定是 HTTP 或 HTTPS:
    • 您收到的回應不會是 200,或不含預期狀態碼範圍設定中指定的狀態範圍。 (包含不同的 2xx 碼或 301/302 重新導向)。
  • 如果監視通訊協定是 TCP:
    • 針對流量管理員嘗試建立連線所傳送的 SYN 要求,您會收到 ACK 或 SYN-ACK 以外的回應。
  • 逾時。
  • 導致無法連線到端點的任何其他連線問題。

如需針對失敗檢查進行疑難排解的詳細資訊,請參閱 針對 Azure 流量管理員的降級狀態進行疑難排解

下圖的時間表詳細描述流量管理員的端點監視流程,包含下列設定:

  • 監視通訊協定為 HTTP。
  • 探查間隔為 30 秒。
  • 容許失敗次數為 3 次。
  • 逾時值為 10 秒。
  • DNS TTL 為 30 秒。

流量管理員端點容錯移轉和容錯回復順序的螢幕擷取畫面。圖:流量管理員端點容錯移轉和復原順序

  1. GET。 針對各端點,流量管理員監視系統會依監視設定所指定的路徑進行 GET 要求。

  2. 已指定 200 OK 或自訂程式碼範圍的流量管理員設定檔監視設定。 監視系統預期 10 秒內會傳回 HTTP 200 OK,或監視設定所指定範圍的狀態碼。 收到此回應時,就能確認服務可供使用。

  3. 每次檢查之間間隔 30 秒。 每隔 30 秒重複進行端點健康狀態檢查。

  4. 服務無法使用。 服務變為無法使用。 流量管理員要到下次健全狀況檢查時才會知道。

  5. 嘗試存取監視路徑。 監視系統會進行 GET 要求,但不會在 10 秒的逾時期間內收到回應。 接著每隔 30 秒執行一次,再嘗試三次。 如果其中一次嘗試成功,會重設嘗試次數。

  6. 將狀態設為已降級。 在第四次連續失敗之後,監視系統會將無法使用的端點狀態標示為「已降級」。

  7. 流量轉向其他端點。 流量管理員 DNS 名稱伺服器已更新,而流量管理員在回應 DNS 查詢時不再傳回端點。 新的連接會導向至其他可用的端點。 不過,先前包含此端點的 DNS 回應仍可能由遞迴 DNS 伺服器和 DNS 用戶端所快取。 用戶端會繼續使用端點,直到 DNS 快取過期為止。 當 DNS 快取過期時,用戶端會提出新的 DNS 查詢,並導向至不同的端點。 快取持續時間是由流量管理員設定檔中的 TTL 設定所控制,例如 30 秒。

  8. 健全狀況檢查繼續。 儘管端點處於「已降級」狀態,流量管理員還是會繼續檢查它的健全狀況。 當端點恢復成狀況良好的狀態時,流量管理員會偵測到此情況。

  9. 服務重新上線。 服務變為可供使用。 端點會在流量管理員中維持「已降級」狀態,直到監視系統進行下一次健全狀況檢查為止。

  10. 服務的流量恢復。 流量管理員傳送 GET 要求,並收到 200 OK 狀態回應。 此服務已恢復狀況良好的狀態。 流量管理員名稱伺服器會更新,並會開始在 DNS 回應中送出服務的 DNS 名稱。 當傳回其他端點的快取 DNS 回應到期時,以及當其他端點的現有連線結束時,流量將再次回到端點。

    重要事項

    針對各端點,流量管理員會從多個位置部署多個探查。 多個探查可增加端點監視的復原能力。 流量管理員會彙總探查的平均健康情況,而不是依賴單一探查執行個體。 探查系統專門設計用於備援。 端點值應全面查看,而不是針對各探查。 探查健康情況顯示的數字為平均值。 只有當探查發佈狀態啟動低於 50% (0.5) 時,才須注意狀態。

    注意

    由於流量管理員是在 DNS 層級運作,所以無法影響任何端點的現有連接。 在引導端點之間的流量時 (透過變更設定檔設定,或是在容錯移轉或容錯回復期間),流量管理員會將新的連接導向至可用的端點。 其他端點可透過現有連線繼續接收流量,直到這些工作階段終止為止。 若要將現有連接的流量排出,應用程式應該限制每個端點使用的工作階段持續時間。

流量路由方法

當端點的狀態為 [降級 ] 時,它不再傳回以回應 DNS 查詢。 而是選擇並傳回替代端點。 設定檔中設定的流量路由方法會決定如何選擇替代端點。

  • 優先順序。 端點會建立已排定優先順序的清單。 永遠傳回清單上第一個可用的端點。 如果端點狀態為「已降級」,則會傳回下一個可用的端點。
  • 加權。 根據指派的加權和其他可用端點的加權,隨機選擇任何可用的端點。
  • 效能。 會傳回最接近使用者的端點。 如果該端點無法使用,流量管理員會將流量移至最接近的下一個 Azure 區域中的端點。 您可以使用巢狀流量管理員設定檔來設定效能流量路由的替代容錯移轉計劃。
  • 地理。 根據傳回查詢要求 IP 位址) ,對應至提供地理位置的端點 (。 如果該端點無法使用,則不會選取另一個端點進行容錯移轉,因為地理位置只能對應至設定檔中的一個端點。 (常見問題中有更多詳細資料)。 使用地理路由時的最佳做法是,建議客戶使用具有多個端點作為設定檔端點的巢狀流量管理員設定檔。
  • 多重值 傳回對應到 IPv4/IPv6 位址的多個端點。 收到此設定檔的查詢時,系統會根據回應中的記錄計數上限指定值,傳回狀況良好的端點。 回應的預設數目是兩個端點。
  • 子網路傳回對應至一組 IP 位址範圍的端點。 從該 IP 位址收到要求時,傳回的端點會是該 IP 位址對應的端點。 

如需詳細資訊,請參閱 流量管理員流量路由方法

注意

當所有合格的端點狀態為「已降級」時,正常的流量路由行為會發生例外狀況。 流量管理員會「竭盡所能」進行嘗試,且「彷彿所有已降級狀態的端點實際上是處於線上狀態一樣地回應」 。 此行為比在 DNS 回應中不傳回任何端點的另一種做法更好。 「已停用」或「已停止」端點不會受到監視,因此,不會將它們視為符合流量資格。

這種情況通常是因為服務組態不正確所造成的,例如:

  • 存取控制清單 [ACL] 封鎖流量管理員健康情況檢查。
  • 流量管理員設定檔中監視連接埠或通訊協定的設定不正確。

此行為的結果是當流量管理員健康狀態檢查未正確設定時,從流量路由傳送看起來,流量管理員似乎運作正常。 不過,在此情況下,不會發生影響整體應用程式可用性的端點容錯移轉。 請務必檢查設定檔會顯示為「線上」狀態,而不是「已降級」狀態。 「線上」狀態表示流量管理員的健康狀態檢查如預期般地運作。

如需針對失敗健康情況檢查進行疑難排解的詳細資訊,請參閱 針對 Azure 流量管理員上的降級狀態進行疑難排解

啟用或停用健康情況檢查

Azure 流量管理員也可讓您設定要啟用或停用的端點 健全狀況檢查 。 若要停用監視,請選擇 一律提供流量的選項。

健康情況檢查有兩個可用的設定:

  1. 啟用 (健康情況檢查) 。 流量會根據健康情況提供給端點。 這項設定是預設值。
  2. 一律提供流量。 此設定會停用健康情況檢查。

Always Serve

選取 [一律提供流量 ] 時,會略過監視,而且一律會將流量傳送至端點。 顯示的 端點監視器狀態[未監視]。

若要啟用 Always Serve:

  1. 在 [流量管理員設定檔] 刀鋒視窗的 [設定] 區段中選取 [端點]。
  2. 選取您要設定的端點。
  3. [健康情況檢查]下,選擇 [一律提供流量]。
  4. 選取 [儲存]。

請參閱下列範例:

端點健康情況檢查的螢幕擷取畫面。

注意

  • 無法在巢狀流量管理員設定檔上停用健康情況檢查。
  • 必須啟用端點才能設定健康情況檢查。
  • 啟用和停用端點不會重設 健康情況檢查 組態。
  • 設定為一律提供流量的端點會針對 基本健康情況檢查計費。

常見問題集

後續步驟