針對 Azure Chaos Studio 的問題進行疑難排解
使用 Azure Chaos Studio 時,偶爾可能會遇到一些問題。 本文說明常見問題與疑難排解步驟。
一般疑難排解提示
針對 Chaos Studio 的問題進行疑難排解時,下列來源很有用:
- 活動記錄:Azure 活動記錄具有訂用帳戶中所有建立、更新和刪除作業的記錄。 這些記錄包括 Chaos Studio 作業,例如啟用目標或功能、安裝代理程式,以及建立或執行實驗。 活動記錄中的失敗表示使用 Chaos Studio 所需的使用者動作可能無法完成。 大部分的服務直接錯誤也會藉由執行 Azure Resource Manager 作業來插入錯誤,因此活動記錄也會在實驗期間針對某些服務直接錯誤插入錯誤的記錄。
- 實驗詳細資料:實驗執行詳細資料會顯示個別實驗執行的狀態和錯誤。 在實驗詳細資料中開啟特定錯誤會顯示失敗的資源,以及失敗的錯誤訊息。 深入了解如何存取實驗詳細資料。
- 代理程式記錄:如果使用代理程式型錯誤,您可能需要透過 RDP 或 SSH 登入虛擬機器 (VM),才能了解代理程式為何無法執行錯誤。 存取代理程式記錄的指示取決於作業系統:
- Chaos Windows 代理程式:代理程式記錄是在 Windows 事件記錄檔的應用程式類別中,來源為
AzureChaosAgent
。 代理程式會對此記錄檔新增錯誤活動和一般健康情況檢查 (能夠向 Chaos Studio 代理程式服務驗證和通訊) 事件。 - Chaos Linux 代理程式:Linux 代理程式會使用 systemd 來管理代理程式程序即 Linux 服務。 若要檢視代理程式的 systemd 日誌 (代理程式服務所記錄的事件),請執行命令
journalctl -u azure-chaos-agent
。
- Chaos Windows 代理程式:代理程式記錄是在 Windows 事件記錄檔的應用程式類別中,來源為
- VM 延伸模組狀態:如果您是使用代理程式型錯誤,請驗證 VM 延伸模組已安裝且狀況良好。 在 Azure 入口網站中,移至您的 VM,然後移至 [延伸模組] 或 [延伸模組 + 應用程式]。 選取
ChaosAgent
延伸模組,並尋找下列欄位:
新增資源時發生的問題
當您新增資源時,可能會遇到下列問題。
資源未顯示在 Azure 入口網站的目標清單中
如果您看不到想要在 Chaos Studio 目標清單中啟用的資源,可能是因為下列任何問題所導致:
- 資源不在 Chaos Studio 的支援區域中。
- 資源不屬於 Chaos Studio 中支援的資源類型。
- 資源位於在目標清單的篩選中篩選掉的訂用帳戶或資源群組中。 變更訂用帳戶和資源群組篩選,以查看您的資源。
目標或功能啟用失敗,或未在目標清單中正確顯示
如果您在啟用目標或功能時看到錯誤,請嘗試下列步驟:
- 驗證您具有要新增之資源的適當權限。 啟用目標或功能需要資源範圍內的 Microsoft.Chaos/* 權限。 參與者等內建角色具有萬用字元讀取和寫入權限,其中包含所有 Microsoft.Chaos 作業的權限。
- 等候幾分鐘的時間,讓目標和功能清單更新。 Azure 入口網站會使用 Azure Resource Graph 來收集新增目標和功能的相關資訊。 最多可能需要五分鐘才能傳播更新。
- 如果資源仍然顯示 [未啟用],請嘗試下列步驟:
- 再次嘗試啟用資源。
- 如果資源啟用仍失敗,請移至活動記錄並尋找失敗的目標建立作業,以查看詳細的錯誤資訊。
- 如果資源顯示 [已啟用],但新增功能失敗,請嘗試下列步驟:
- 選取目標清單中資源上的 [管理動作]。 勾選未勾選的任何功能,然後選取 [儲存]。
- 如果功能啟用仍失敗,請移至活動記錄並尋找失敗的目標建立作業,以查看詳細的錯誤資訊。
必要條件問題
某些問題是由於遺漏必要條件所導致。
虛擬機器上的代理程式型錯誤失敗
代理程式型錯誤可能會因為與遺漏必要條件相關的各種原因而失敗:
- 在 Linux VM 上,CPU 壓力、實體記憶體壓力、磁碟 I/O 壓力和任意的 Stress-ng 壓力錯誤都需要在 VM 上安裝 stress-ng 公用程式。 如需如何安裝 stress-ng 的詳細資訊,請參閱錯誤必要條件小節。
- 在 Linux 或 Windows VM 上,也必須將在代理程式型目標啟用期間提供的使用者指派受控識別新增至 VM。
- 在 Linux 或 Windows VM 上,實驗的系統指派的受控識別必須獲得授與 VM 上的讀者角色。 (看似提升的角色,例如虛擬機器參與者,不包括 Chaos Studio 代理程式讀取 VM 上 microsoft-agent 目標 Proxy 資源所需的 */Read 作業。)
Chaos 代理程式不會安裝在虛擬機器擴展集上
如果虛擬機器擴展集升級原則設定為 [手動],在虛擬機器擴展集上安裝 Chaos 代理程式可能會失敗,且不會顯示錯誤。 若要檢查虛擬機器擴展集升級原則:
- 登入 Azure 入口網站。
- 選取 [虛擬機器擴展集]。
- 在左側窗格中,選取 [升級原則]。
- 檢查 [升級模式],查看其是否已設定為 [手動 - 現有的執行個體必須手動升級]。
如果升級原則設定為 [手動],您必須升級 Azure 虛擬機器擴展集執行個體,讓 Chaos 代理程式安裝完成。
從 Azure 入口網站升級執行個體
您可以從 Azure 入口網站升級虛擬機器擴展集執行個體:
- 登入 Azure 入口網站。
- 選取 [虛擬機器擴展集]。
- 在左側窗格中,選取 [執行個體]。
- 選取所有執行個體,然後選取 [升級]。
使用 Azure CLI 升級執行個體
您可以使用 Azure CLI 升級虛擬機器擴展集執行個體:
從 Azure CLI,使用
az vmss update-instances
手動升級您的執行個體:az vmss update-instances --resource-group myResourceGroup --name myScaleSet --instance-ids {instanceIds}
如需詳細資訊,請參閱使用最新的擴展集模型將 VM 更新至最新狀態。
AKS Chaos Mesh 錯誤失敗
Azure Kubernetes Service (AKS) Chaos Mesh 可能會因為與遺漏必要條件相關的各種原因而失敗:
- 必須先將 Chaos Mesh 安裝在 AKS 叢集上,才能使用 AKS Chaos Mesh 錯誤。 如需指示,請參閱 AKS 教學課程的 Chaos Mesh 錯誤。
- Chaos Mesh 必須是版本 2.0.4 或更新版本。 您可以連線至 AKS 叢集並執行
helm version chaos-mesh
來取得 Chaos Mesh 版本。 - Chaos Mesh 必須與命名空間
chaos-testing
一起安裝。 不支援 Chaos Mesh 的其他命名空間名稱。 - 必須將 AKS 叢集管理員角色指派給混沌實驗的系統指派受控識別。
建立或設計實驗時的問題
當您建立或設計實驗時,可能會遇到問題。
當我新增錯誤時,我的資源不會顯示在 [目標資源] 清單中
新增錯誤時,如果您沒有看到 [目標資源]清單中要以錯誤設為目標的資源,可能是因為下列任何問題所導致:
- 訂用帳戶篩選已設定為要排除部署目標所在的訂用帳戶。 選取訂用帳戶篩選並修改選取的訂用帳戶。
- 資源尚未新增。 移至 [目標] 檢視並啟用目標。 然後關閉 [新增錯誤] 窗格,並重新開啟以查看更新的目標清單。
- 尚未針對該錯誤的目標類型啟用資源。 請參閱錯誤程式庫,以查看用於錯誤的目標類型。 然後移至 [目標] 檢視,並啟用該目標類型。 類型針對 microsoft-agent 錯誤為代理程式型,或針對其他所有目標類型為服務導向。 然後關閉 [新增錯誤] 窗格,並重新開啟以查看更新的目標清單。
- 資源尚未將該錯誤的功能啟用。 請參閱錯誤程式庫以查看錯誤的功能名稱。 然後移至 [目標] 檢視,並選取目標資源上的 [管理動作]。 選取與您嘗試執行的錯誤功能對應的核取方塊,然後選取 [儲存]。 然後關閉 [新增錯誤] 窗格,並重新開啟以查看更新的目標清單。
- 資源最近已新增,尚未出現在 Resource Graph 中。 從 Resource Graph 查詢 [目標資源] 清單。 啟用新的目標之後,最多可能需要五分鐘的時間,更新才會傳播至 Resource Graph。 等候幾分鐘的時間,然後重新開啟 [新增錯誤] 窗格。
當我建立實驗時,收到錯誤:「microsoft:agent 提供者需要受控識別」
當代理程式尚未部署至 VM 時,就會發生此錯誤。 如需安裝指示,請參閱建立和執行使用代理程式型錯誤的實驗。
當我建立實驗時,收到錯誤:「不支援內容媒體類型 'null'。 僅支援 'application/json'」
如果您使用 Azure Resource Manager 範本或 Chaos Studio REST API 建立實驗,可能會遇到此錯誤。 該錯誤表示您的實驗定義中有格式不正確的 JSON。 檢查是否有任何語法錯誤,例如不相符的大括弧或括弧 ({} 和 [])。 若要檢查,請使用 JSON Linter,例如 Visual Studio Code。
執行實驗時的問題
當您執行實驗時,可能會遇到問題。
我的實驗啟動後的執行狀態為「失敗」
從 Azure 入口網站的 [實驗] 清單中,選取實驗名稱以查看 [實驗概觀]。 在 [歷程記錄] 區段中,選取失敗實驗執行旁的 [詳細資料],以查看詳細的錯誤資訊。
或者,使用 REST API 來取得實驗的執行詳細資料。 在 REST API 範例文章中深入了解。
az rest --method post --url "https://management.azure.com/{experimentId}/executions/{executionDetailsId}/getExecutionDetails?api-version={apiVersion}"
我的代理程式型錯誤失敗,發生錯誤:「驗證目標已正確新增,且已提供適當的讀取權限給實驗 MSI」
如果您使用 Azure 入口網站來新增代理程式,就會發生此錯誤,因為 Azure 入口網站有已知問題。 啟用代理程式型目標並不會將使用者指派的受控識別指派給 VM 或虛擬機器擴展集。
若要解決此問題,請移至 Azure 入口網站中的 VM 或虛擬機器擴展集,然後移至 [身分識別]。 開啟 [使用者指派] 索引標籤,並且將使用者指派的身分識別新增至 VM。 完成之後,您可能需要將 VM 重新開機,代理程式才能連線。
我的代理程式型錯誤失敗,並出現「代理程式已執行另一項工作」錯誤
如果您嘗試同時執行多個代理程式錯誤,就會發生此錯誤。 目前代理程式一次僅支援執行單一代理程式錯誤,且如果您定義同時執行多個代理程式錯誤的實驗,則會失敗。
實驗未立即啟動或失敗
開始實驗之後,您可能會看到錯誤訊息,例如:The long-running operation has failed. InternalServerError. The target resource(s) could not be resolved. Error Code: OperationFailedException
。 這通常表示實驗的身分識別沒有必要的權限。
若要解決此錯誤,請確定實驗的系統指派或使用者指派的受控識別具有實驗中所有資源的權限。 在這裡深入了解權限:Azure Chaos Studio 中的權限和安全性。 例如,如果實驗以虛擬機器為目標,請瀏覽至虛擬機器的身分識別頁面,並將「虛擬機器參與者」角色指派給實驗的受控識別。
我的 AKS 混亂網格實驗失敗
使用 AKS Chaos Mesh 錯誤時,可能會遇到數個常見的錯誤。
錯誤訊息 | 建議的動作 |
---|---|
不允許取得靜態認證,因為此叢集已設定為停用本機帳戶。 | 從 2.2 版起,AKS Chaos Mesh 錯誤可以使用 Kubernetes 本機帳戶或Microsoft Entra 驗證。 瞭解如何在此移轉實驗: 搭配 Chaos Studio AKS 錯誤使用 Microsoft Entra 驗證。 |
無法啟動 Chaos Mesh 實驗,因為提供的設定無效 | jsonSpec 確定 包含所有必要的欄位。 |
Chaos Studio 目前不支援 Chaos Mesh 版本 'x.x.x' | 針對 Azure Chaos Studio 版本相容性頁面確認已安裝的版本,並在未列出所需的版本時提交功能要求。 |
設定受控識別時的問題
當我嘗試將系統指派/使用者指派的受控識別新增至現有的實驗時,無法儲存。
如果您嘗試將使用者指派或系統指派的受控識別新增至已獲指派受控識別的實驗,實驗無法部署。 您需要先刪除所需實驗上現有的使用者指派或系統指派的受控識別,再新增所需的受控識別。
當我執行設定為自動建立及指派自訂角色的實驗時,我會收到「無法解析目標資源」錯誤。 ErrorCode:AccessDenied。 目標資源:「
選取實驗的 [自訂角色權限] 核取方塊時,Chaos Studio 會建立並指派具有實驗身分識別必要權限的自訂角色。 不過,這受限於下列角色指派和角色定義限制:
- 每個 Azure 訂閱都有 4000 個角色指派的限制。
- 每個 Microsoft Entra 租用戶的限制為 5000 個角色定義 (或中國 Azure 為 2000 個角色定義)。
達到這其中一個限制時,就會發生此錯誤。 若要解決此問題,請改為手動將權限授與實驗身分識別。