針對 Chaos Studio 工作區與情境進行疑難排解

依症狀排解 Chaos Studio 工作區問題:資源未被發現、權限遺失、情境執行失敗或動作跳過。 本指南同時涵蓋工作空間場景的代理連線。 對於舊版模型中的實驗、目標和功能,請參閱 Experiments (classic) troubleshooting。

Important

Chaos Studio 的工作空間與場景目前已公開預覽。 Microsoft 提供此預覽版「現況」與「可用狀態」,不受服務等級協議或有限保固保護。 Microsoft 以盡力而為的方式提供預覽版的客戶支援。 這個預覽並非為製作用途設計。 欲了解更多資訊,請參閱以下文章:

確認你使用的是 Chaos Studio Workspaces

本文涵蓋Microsoft.Chaos/workspaces和Microsoft.Chaos/workspaces/scenarios資源。 如果你的資源類型是 Microsoft.Chaos/experiments 或 Microsoft.Chaos/targets,你用的是 Experiments(經典版)。 改用 Troubleshoot Experiments(經典版) 吧。 要將您的實驗移轉到 Workspaces,請參閱 Move from Experiments (classic) to Chaos Studio Workspaces。

選擇範圍或查看資源時「找不到資源」

你的工作區顯示沒有發現的資源,或者在你設定情境時資源清單是空的。 以下列表依據最可能的原因排序。

原因 1:受控身分識別在範圍中沒有讀者角色

探索需要工作區的受控身分識別來讀取範圍內的資源。 如果身分識別尚未在範圍內具備讀者角色,探索將找不到任何東西。

  1. 在 Azure 入口網站開啟工作區。 如果身份缺少權限,入口網站會顯示橫幅:「此工作區的管理身份在工作區範圍內沒有讀取權限。 若沒有該範圍的讀取存取權限,工作區作業可能會失敗。選取在工作區範圍指派讀者角色,以自動修正此指派。
  2. 如果您無法使用自動指派,請手動在範圍 (訂用帳戶、資源群組或服務群組) 將讀者角色授與工作區的受控身分識別。 請參閱 Chaos Studio 工作區中的權限與身份。
  3. 角色指派需要幾分鐘才會生效。 等等,然後重新整理資源檢視。

原因二:該範圍不包含支援的資源類型

Discovery 只會顯示 Chaos Studio Scenarios 支援的資源類型。 如果你的範圍只包含不支援型別,資源清單會保持空,即使範圍本身有效。

  1. 將你範圍內的資源與 Azure Chaos Studio 中每個情境列出的資源類型做比較。
  2. 如有需要,請將工作區範圍變更為包含包含支援資源的訂閱或資源群組。 你可以更改範圍,而不必重新建立工作區。

這個問題的常見例子是:Azure Kubernetes Service (AKS) 叢集的虛擬機擴展集節點位於獨立的管理基礎設施資源群組中,因此只包含叢集資源的範圍可能無法產生可操作的計算目標。 請參考 Chaos Studio 在 AKS 上的測試工作負載韌性。

原因 3:探索仍在進行中或資訊已過舊

探索會在您建立工作區或變更其範圍後執行,且可能需要幾分鐘才能完成。 最近部署的資源也需要時間才能出現。

  1. 等幾分鐘,然後重新整理資源檢視。 Discovery 會自動偵測範圍變更;不需要手動觸發。

修正服務群組範圍的權限失敗問題

對於設定為服務群組的工作區,情境設定頁面的 「修正權限 」選項可能會失敗,或顯示無法修復缺少的權限。 這是公開預覽時已知的問題。 作為一個變通方法,請手動分配所需角色:

  1. 在 Azure 入口網站中,前往您希望工作區套用的範圍 (若為服務群組,請在底層訂用帳戶或包含目標資源的資源群組層級進行指派)。
  2. 選擇存取控制 (IAM)>新增>新增角色指派。
  3. 將讀者角色 (用於探索) 以及任何動作特定角色 (用於執行) 指派給工作區的受控身分識別。 關於每個動作所需的角色,請參見 Chaos Studio 工作空間中的權限與身份。
  4. 請等待幾分鐘,讓指派完成傳播,然後再重新整理工作區。

情境執行失敗,或動作顯示「失敗」且沒有細節

情境運行以失敗狀態結束,或是單一行動無明顯原因失敗。 請依序查看以下資料來源:

  1. 情境報告的動作摘要。 報告列出每個動作及其狀態、持續時間、目標資源及參數,通常會將失敗範圍縮小到特定的行動與資源。 請參閱 Azure Chaos Studio 中的 Scenario 報告。
  2. 跳過與失敗。 跳過的動作未執行,通常是因為目標資源未在工作空間範圍內找到,或動作的前提條件未被滿足。 執行 失敗 動作並遇到錯誤。 如果全部都顯示為「已略過」而不是「失敗」,請參閱 執行作業不會造成任何影響。
  3. 目標資源的 Azure 活動日誌。 Service-direct Actions 執行 Azure Resource Manager 的操作,這些操作會出現在目標資源的 Azure 活動日誌中。 其中,失敗的作業會包含底層錯誤的詳細資訊。
  4. 目標資源的角色分配。 驗證工作區的受控身分識別具有每個動作對目標資源所需的角色 (例如,關閉虛擬機器所需的「虛擬機參與者」角色),而不只是該範圍上的「讀者」角色。 讀取器角色足以讓工作區發現資源,但無法對其採取行動:若執行角色缺失,受影響的動作在執行時即失敗。 請參閱 Chaos Studio 工作空間中權限與身份的角色表。
  5. 基於代理的動作在設定時失敗。 如果代理程式的動作,如 CPU 壓力或實體記憶體壓力,在代理安裝階段失敗,通常網路設定會阻擋代理與 Chaos Studio 的連線。 請參見「連接混沌代理人與 Chaos Studio 的問題」。

一次執行不會造成任何影響(所有動作皆略過)

執行作業會完成,但每個動作都會顯示為 已略過 狀態,且沒有任何資源受到干擾。

這個症狀表示情境的行動沒有找到匹配的目標。 每個行動都針對特定類型的資源。 例如,計算區域停機情境中的動作以虛擬機器和虛擬機器擴展集為目標。 如果工作區範圍不包含這些資源類型(或設定的篩選器,例如目標可用性區域,沒有匹配到任何實例),動作會跳過而非失敗。

  1. 開啟情境報告的動作摘要,並記錄各類資源跳過的動作目標。 請參閱 Azure Chaos Studio 中的 Scenario 報告。
  2. 確認工作區範圍包含這些類型的資源,且情境的設定參數(如 zones)是否與實際存在的資源相符。
  3. 如果你預期的資源分布在與範圍不同的資源群組,請調整範圍。 最常見的實例是 AKS,節點虛擬機縮放集存在於獨立的基礎設施資源群組中。 請參考 Chaos Studio 在 AKS 上的測試工作負載韌性。

建立工作區時顯示「區域無法使用」

工作區是邏輯資源,可以對任何 Azure 區域的資源進行操作。 工作區本身的區域不必與目標資源的區域相符。 如果你選擇的區域建立工作區失敗,請從 工作區區域可用性列表中 選擇另一個區域,並在那裡建立工作區。 你的劇本仍可鎖定原始區域的資源。

傳送門在情境設計器或「我的情境」中表現異常

工作區與情境目前處於公開預覽階段,入口網站體驗會隨著預覽演進頻繁更新。 你在編輯或設定情境時,偶爾會遇到短暫的問題。 修正會在預覽期間持續發表。 (該節最後更新:2026年7月。)

如果你遇到非預期行為:

  1. 重新整理入口網站,然後重新開啟 Scenario,並在執行之前確認其已儲存的設定。
  2. 如果一個流程沒有提示你預期的值,試試另一個:透過 「我的情境 」來設定情境,而不是設計器,或反過來。
  3. 如果問題持續,請回報。

連接混沌代理與 Chaos Studio 的問題

基於代理的情境,如 CPU 壓力和實體記憶體壓力,會透過 Chaos 代理在你的虛擬機中執行。 Chaos Studio 會把代理安裝到你的虛擬機(VM)上。 客服人員必須連接 Chaos Studio 的外撥連線以註冊、接收故障指示並回報健康狀況。 其他情境,例如DNS中斷,則不會使用代理,因此你可以跳過這部分。 關於目標虛擬機需求,請參見 基於代理的情境需求。 如果網路設定阻擋了代理的連線,故障就無法在該目標上執行,代理程式會被報告為不健康或無法使用。

代理程式發起所有透過 HTTPS(TCP 443)的外發通訊;Chaos Studio 從來不會連進你的虛擬機。 預設情況下,Azure 允許虛擬機到網際網路的外出流量,因此大多數子網不需要允許代理連線的規則。 只有在限制輸出流量時,才需要輸出允許規則,例如使用拒絕全部 NSG 規則、防火牆或強制通道時。 在這種情況下,Chaos Studio 代理端點會被ChaosStudio服務標籤保護,因此你可以透過引用服務標籤而非固定 IP,允許它加入網路安全群組(NSG)和防火牆規則。 ChaosStudio服務標籤不是區域性的,所以涵蓋所有區域的 Chaos Studio 端點。 Chaos Studio 代理程式端點是區域性的:其名稱中的 <region> 是您建立工作區所在的區域,而不是虛擬機器所在的區域。

你可以在情境執行頁面辨識出連線問題。 如果代理在設定時無法連線,執行會在任何動作執行前失敗,執行頂部會出現錯誤橫幅顯示代理失敗訊息。 對於網路問題,訊息以 開頭 Failed to register agent due to Network Exception.,接著是底層錯誤,例如名稱解析失敗或連線逾時。 利用該訊息來辨識以下問題中哪一個適用。

在處理個別問題前,請確認虛擬機的有效網路配置允許以下情況:

目的地 註釋
預設輸出存取 透過 NAT 閘道、負載平衡器輸出規則或實例層級的公用 IP。 如果虛擬機的子網預設外出存取被停用(屬於私有子網),則必須使用。
Chaos Studio 代理程式端點 允許使用 ChaosStudio 服務標籤。
IMDS 169.254.169.254 連結本機。 不得被主機防火牆或使用者自訂路由阻擋。

代理無法連線,因為子網沒有外出存取權限

這個問題是最常見的原因。 Chaos 代理程式透過網際網路連接到 Chaos Studio,因此虛擬機的子網需要外接連線。 如果子網是私有的(預設的出站存取被停用),且沒有明確的出站方式,代理就無法連上 Chaos Studio,所以永遠連線不上。 新建立的子網路預設是私有的,因此這個問題通常影響最近建立的虛擬機。

以下分頁說明如何檢查子網路,並在 Azure 入口網站或 Azure CLI 中套用修正。

檢查子網路。 打開虛擬機的虛擬網路,選擇子網路,並檢查是否選擇 了私有子網路 。 如果是,該子網預設的出站存取是被關閉的。

你可以用兩種方法解決這個問題。

選項一:重新啟用子網的預設出站存取權限。 如果環境允許,請清除該子網路的 私有子網 選項,讓它重新公開。 詳情請參閱 Azure 中的預設外撥存取。

選項二:給虛擬機一個明確的外送方法(Azure 推薦)。 如果你無法讓子網路公開,可以新增明確的出站路徑。 依偏好順序:

代理無法連線,因為網路安全群組會阻擋出站流量

子網或網卡上的 NSG 會拒絕 TCP 443 向 Chaos Studio 代理端點發出,無論是透過明確的拒絕規則,或是因為自訂規則集移除了預設的允許上網行為。 對端點發出的 HTTPS 連線隨後會逾時或遭到拒絕。

要解決這個問題,請檢視虛擬機網卡上的有效外站規則,然後為服務標籤新增允許規則 ChaosStudio 。

  1. 在 Azure 入口網站中,打開虛擬機並選擇網路。
  2. 請檢視網卡和子網路安全群組的出站埠規則,看看有沒有規則會拒絕 TCP 443 的出站流量。
  3. 新增一條允許 Chaos Studio 代理程式端點的輸出安全性規則。 將 Destination 設為 服務標籤,將 目的地服務標籤 設為 ChaosStudio,將 目的地連接埠範圍 設為 443,將 協定 設為 TCP,並將 動作 設為 允許。 將該規則的優先順序設為高於任何相互衝突的拒絕規則(亦即較小的數字)。

代理無法連線,因為防火牆、代理伺服器或自訂 DNS 會阻擋該端點

防火牆、代理伺服器或自訂 DNS 設定會阻止虛擬機抵達或解決 Chaos Studio 代理端點。 即使與其他網站的連線可能正常,Chaos Studio 仍可能被封鎖,且代理程式無法註冊或回報健康狀態。

若要排除遭封鎖的流量:

  • 在支援服務標籤的防火牆上(例如 Azure 防火牆),允許透過 TCP 443 對 ChaosStudio 服務標籤的輸出連線。
  • 在代理伺服器或任何依主機名稱篩選的裝置上,允許 as.<region>.chaos-prod.azure.com 在 TCP 443 上,這裡 <region> 是你建立工作區的區域。
  • 若要修正名稱解析,請確保虛擬機器可以解析公用代理程式端點。 不要建立會遮蔽 Chaos Studio 代理程式端點的私人 DNS 區域。

Note

代理程式無法設定為使用指定 Proxy。 Chaos Studio 每次執行都會安裝並移除代理程式,所以你無法在它上設定代理設定。 如果您的環境要求對外連線的應用程式使用已設定的 Proxy,請改為允許代理程式傳送至 ChaosStudio 服務標籤的流量略過 Proxy。

代理無法取得管理身份令牌

虛擬機沒有指派管理身份,或有主機防火牆或路由阻擋 IMDS 存取。169.254.169.254 代理程式始終無法進行到註冊步驟。 確認已指派受管理身份,並從虛擬機內部查詢 IMDS:

az vm identity show --resource-group myResourceGroup --name myVm
## User-assigned managed identity (pass the client_id from the extension's auth.msi.clientid)
curl -s -H "Metadata: true" \
  "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2019-06-01&resource=https://chaosagentcommunicationapi.azure.com/&client_id=<uami-client-id>" \
  --max-time 10

## System-assigned managed identity (omit the identifier; IMDS returns the VM's system-assigned token)
curl -s -H "Metadata: true" \
  "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2019-06-01&resource=https://chaosagentcommunicationapi.azure.com/" \
  --max-time 10

如果缺少系統指派或使用者指派的受控識別,請指派一個,並移除任何會封鎖 169.254.169.254 的主機防火牆規則或路由。 IMDS 使用連結本機位址,不需要網際網路輸出流量。

縮小失效層的範圍

在受影響的虛擬機內部執行這些指令,以隔離出故障的那一層。 在端點中, <region> 是你建立工作區的區域,而不是虛擬機的區域:

# 1. Managed Identity Token
## User-assigned managed identity (pass the client_id from the extension's auth.msi.clientid)
curl -s -H "Metadata: true" \
  "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2019-06-01&resource=https://chaosagentcommunicationapi.azure.com/&client_id=<uami-client-id>" \
  --max-time 10

## System-assigned managed identity (omit the identifier; IMDS returns the VM's system-assigned token)
curl -s -H "Metadata: true" \
  "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2019-06-01&resource=https://chaosagentcommunicationapi.azure.com/" \
  --max-time 10

# 2. DNS resolution of the Chaos Studio agent endpoint
nslookup as.<region>.chaos-prod.azure.com

# 3. Outbound HTTPS to the Chaos Studio agent endpoint (expect HTTP 200)
curl -v https://as.<region>.chaos-prod.azure.com/health --max-time 15
  • 指令 1 失敗:虛擬機沒有受管理身份,或 IMDS 被封鎖。 你看 ,代理人無法取得管理身份的憑證。
  • 指令 2 失敗:DNS 問題。 請看: 代理無法連線,因為防火牆、代理伺服器或自訂 DNS 會阻擋該端點。
  • 指令 3 回傳 HTTP 200:虛擬機可透過網路連線至 Chaos Studio。 這只確認了網路可達性。 它無法確認代理是否能註冊,而註冊同時也需要指令 1 中的管理身份憑證。
  • 指令三次失敗或無法連線,而指令一和二成功:通往 Chaos Studio 的網路路徑被封鎖。 請參閱本節前述的子網外撥存取、NSG 或防火牆與代理問題。

在你修正網路設定後,再跑一次這個情境。 當情境執行失敗時,Chaos Studio 會清理它安裝的代理程式,這樣就不會有代理在背景重複嘗試。 重新執行情境會重新安裝代理程式,之後代理程式會使用您更新後的設定進行連線。

下一步