流量管理員端點監視

Azure 流量管理員包含內建的端點監視和自動端點容錯移轉。 此功能可協助您提供能夠從端點故障中恢復的高可用性應用程 式,包括 Azure 區域失敗。

設定端點監視

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

  • 通訊協定。 選擇 HTTP、HTTPS 或 TCP 作為通訊協定,流量管理員會在探查端點以檢查其健康情況時使用。 HTTPS 監視不會驗證您的 TLS/SSL 憑證是否有效,只會檢查憑證是否存在。

  • 連接埠。 選擇要求所使用的連接埠。

  • Path。 組態設定僅適用於 HTTP 和 HTTPS 通訊協定,這些通訊協定需要指定路徑設定。 為 TCP 監視通訊協定提供這項設定會導致錯誤。 針對 HTTP 和 HTTPS 通訊協定,提供相對路徑和網頁名稱,或監視所存取的檔案。 正斜線 (/) 是相對路徑的有效項目。 這個值表示檔案位於根目錄 (預設值)。

  • 自訂標頭設定。 此組態設定可協助您將特定 HTTP 標頭新增至流量管理員設定檔下端點的健康情況檢查。 您可以在設定檔層級上指定自訂標頭,以套用到該設定檔中的所有端點,以及/或在端點層級上指定,讓標頭僅套用到該端點。 您可以在多租使用者環境中使用自訂標頭來檢查端點的健康情況。 如此一來,即可藉由指定主機標頭,正確地將其路由傳送至目的地。 您也可以使用此設定來新增唯一標頭,以用來識別流量管理員產生的 HTTP(S) 要求,並以不同方式處理這些要求。 您最多可以指定八組「標頭:值」,並以逗號分隔。 例如,「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 秒。

    Traffic Manager endpoint monitoring

    圖:流量管理員端點監視

端點監視的運作方式

當監視通訊協定設定為 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:
    • 收到 ACK 或 SYN-ACK 以外的回應,以回應流量管理員傳送的 SYN 要求,以嘗試建立連線。
  • 逾時。
  • 導致無法連線到端點的任何其他連線問題。

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

下圖中的時程表是具有下列設定之流量管理員端點監視程式的詳細描述:

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

Traffic Manager endpoint failover and failback sequence

圖:流量管理員端點容錯移轉和復原順序

  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 流量管理員上的已降級狀態

常見問題集

下一步

了解 流量管理員的運作方式

深入了解流量管理員支援的 流量路由方法

了解如何 建立流量管理員設定檔

疑難排解流量管理員端點上的已降級狀態