Azure Chaos Studio 관련 문제 해결
Azure Chaos Studio를 사용하다 보면 간혹 문제가 발생할 수 있습니다. 이 문서에서는 일반적인 문제와 문제 해결 단계를 설명합니다.
일반 문제 해결 팁
다음 원본은 Chaos Studio의 문제를 해결할 때 유용합니다.
- 활동 로그: Azure 활동 로그에는 구독의 모든 만들기, 업데이트, 삭제 작업에 대한 기록이 있습니다. 이러한 기록에는 대상 또는 기능 사용, 에이전트 설치, 실험 만들기나 실행 같은 Chaos Studio 작업이 포함됩니다. 활동 로그의 실패는 Chaos Studio 사용에 필수적인 사용자 작업이 완료되지 않았을 수 있음을 나타냅니다. 또한 대부분의 서비스 직접 오류에서는 Azure Resource Manager 작업을 실행하여 오류를 삽입하므로, 활동 로그에는 일부 서비스 직접 오류를 실험하는 중에 삽입된 오류 기록도 있습니다.
- 실험 세부 정보: 실험 실행 세부 정보에는 개별 실험 실행의 상태와 오류가 표시됩니다. 실험 세부 정보에서 특정 오류를 열면 실패한 리소스와 실패에 대한 오류 메시지가 표시됩니다. 실험 세부 정보에 액세스하는 방법에 대해 자세히 알아봅니다.
- 에이전트 로그: 에이전트 기반 오류를 사용하는 경우 에이전트가 오류를 실행하지 못한 이유를 이해하기 위해 VM(가상 머신)에 RDP 또는 SSH를 연결해야 할 수 있습니다. 에이전트 로그에 액세스하기 위한 지침은 운영 체제에 따라 다릅니다.
- Chaos Windows 에이전트: 에이전트 로그는 원본이
AzureChaosAgent
인 애플리케이션 범주의 Windows 이벤트 로그에 있습니다. 에이전트는 이 로그에 오류 관련 작업 및 정기적인 상태 확인(Chaos Studio 에이전트 서비스에 대한 인증 및 통신 기능) 이벤트를 추가합니다. - Chaos Linux 에이전트: Linux 에이전트는 systemd를 사용하여 에이전트 프로세스를 Linux 서비스로 관리합니다. 에이전트에 대한 systemd 저널(에이전트 서비스가 로그한 이벤트)을 보려면
journalctl -u azure-chaos-agent
명령을 실행합니다.
- Chaos Windows 에이전트: 에이전트 로그는 원본이
- VM 확장 상태: 에이전트 기반 오류를 사용하는 경우 VM 확장이 설치되어 있고 정상인지 확인합니다. Azure Portal에서 VM으로 이동하고 확장 또는 확장 + 애플리케이션으로 이동합니다.
ChaosAgent
확장을 선택하고 다음 필드를 찾습니다.- 상태는 프로비저닝 성공으로 표시되어야 합니다. 다른 상태는 에이전트 설치에 실패했음을 나타냅니다. 모든 시스템 요구 사항이 충족되었는지 확인합니다. 에이전트를 다시 설치해 보세요.
- 처리기 상태는 준비로 표시되어야 합니다. 다른 상태는 에이전트가 설치되었지만 Chaos Studio에 연결할 수 없음을 나타냅니다. 모든 네트워크 요구 사항을 충족하고 사용자 할당 관리 ID가 VM에 추가되었는지 확인합니다. 다시 부팅해 보세요.
리소스를 추가할 때 발생하는 문제
리소스를 추가할 때 다음과 같은 문제가 발생할 수 있습니다.
Azure Portal의 대상 목록에 리소스가 표시되지 않음
Chaos Studio 대상 목록에 사용하도록 설정하려는 리소스가 표시되지 않으면 다음 문제 때문일 수 있습니다.
- 리소스가 Chaos Studio 지원 지역에 없습니다.
- 리소스가 Chaos Studio에서 지원되는 리소스 종류가 아닙니다.
- 리소스가 대상 목록에 대한 필터에서 필터링되는 구독 또는 리소스 그룹에 있습니다. 리소스를 보려면 구독 및 리소스 그룹 필터를 변경합니다.
대상 또는 기능 사용이 실패하거나 대상 목록에 올바르게 표시되지 않음
대상 또는 기능을 사용하도록 설정할 때 발생하는 오류가 표시되면 다음 단계를 시도합니다.
- 추가하는 리소스에 적절한 권한이 있는지 확인합니다. 대상 또는 기능을 사용하도록 설정하려면 리소스 범위에서 Microsoft.Chaos/* 권한이 필요합니다. 기여자와 같은 기본 제공 역할에는 모든 Microsoft.Chaos 작업에 대한 권한이 포함된 와일드카드 읽기 및 쓰기 권한이 있습니다.
- 대상 및 기능 목록이 업데이트될 때까지 몇 분 정도 기다리세요. Azure Portal은 Azure Resource Graph를 사용하여 대상 및 기능 추가에 대한 정보를 수집합니다. 업데이트가 전파되는 데 최대 5분이 걸릴 수 있습니다.
- 리소스에 여전히 사용 안 함이 표시되면 다음 단계를 시도합니다.
- 리소스를 다시 사용하도록 설정합니다.
- 리소스 사용 설정이 계속 실패하면 활동 로그로 이동하여 실패한 대상 만들기 작업을 찾아 자세한 오류 정보를 확인합니다.
- 리소스가 사용으로 표시되지만 기능 추가에 실패한 경우 다음 단계를 시도합니다.
- 대상 목록의 리소스에서 작업 관리를 선택합니다. 선택하지 않은 기능을 확인하고 저장을 선택합니다.
- 기능 사용 설정이 계속 실패하면 활동 로그로 이동하여 실패한 대상 만들기 작업을 찾아 자세한 오류 정보를 확인합니다.
필수 구성 요소 문제
일부 문제는 필수 조건 누락으로 인해 발생합니다.
가상 머신에서 에이전트 기반 결함 실패
누락된 필수 조건과 관련된 다양한 이유로 에이전트 기반 오류가 실패할 수 있습니다.
- Linux VM에서 CPU 압력, 물리적 메모리 압력, 디스크 I/O 압력 및 임의 Stress-ng 스트레스 오류는 모두 VM에 stress-ng 유틸리티를 설치해야 합니다. stress-ng 설치 방법에 대한 자세한 내용은 오류 필수 조건 섹션을 참조하세요.
- Linux 또는 Windows VM에서 에이전트 기반 대상 사용 설정 중에 제공된 사용자 할당 관리 ID도 VM에 추가해야 합니다.
- Linux 또는 Windows VM에서 실험에 대한 시스템 할당 관리 ID에 VM에 대한 읽기 권한자 역할을 부여해야 합니다. (Virtual Machine 기여자와 같이 상승된 것처럼 보이는 역할에는 Chaos Studio 에이전트가 VM에서 microsoft-agent 대상 프록시 리소스를 읽는 데 필요한 */읽기 작업이 포함되지 않습니다.)
가상 머신 확장 집합에는 Chaos 에이전트가 설치되지 않습니다.
가상 머신 확장 집합에 Chaos 에이전트를 설치하면 가상 머신 확장 집합 업그레이드 정책이 수동으로 설정된 경우 오류 메시지 없이 실패할 수 있습니다. 가상 머신 확장 집합 업그레이드 정책을 확인하려면 다음을 수행합니다.
- Azure Portal에 로그인합니다.
- Virtual Machine Scale Set를 선택합니다.
- 왼쪽 창에서 업그레이드 정책을 선택합니다.
- 업그레이드 모드를 확인하여 수동 - 기존 인스턴스를 수동으로 업그레이드해야 함으로 설정되어 있는지 살펴봅니다.
업그레이드 정책이 수동으로 설정된 경우 Chaos 에이전트 설치가 완료되도록 Azure Virtual Machine Scale Sets 인스턴스를 업그레이드해야 합니다.
Azure Portal에서 인스턴스 업그레이드
Azure Portal에서 Virtual Machine Scale Sets 인스턴스를 업그레이드할 수 있습니다.
- Azure Portal에 로그인합니다.
- Virtual Machine Scale Set를 선택합니다.
- 왼쪽 창에서 인스턴스를 선택합니다.
- 모든 인스턴스를 선택하고 업그레이드를 선택합니다.
Azure CLI를 사용한 인스턴스 업그레이드
Azure CLI를 사용하여 Virtual Machine Scale Sets 인스턴스를 업그레이드할 수 있습니다.
Azure CLI에서
az vmss update-instances
를 사용하여 인스턴스를 수동으로 업그레이드합니다.az vmss update-instances --resource-group myResourceGroup --name myScaleSet --instance-ids {instanceIds}
자세한 내용은 최신 확장 집합 모델로 VM을 최신 상태로 유지를 참조하세요.
AKS Chaos Mesh 오류 실패
AKS(Azure Kubernetes Service) Chaos Mesh 오류는 누락된 필수 구성 요소와 관련된 다양한 이유로 실패할 수 있습니다.
- AKS Chaos Mesh 오류를 사용하려면 먼저 AKS 클러스터에 Chaos Mesh를 설치해야 합니다. 지침은 AKS의 Chaos Mesh 오류 자습서를 참조하세요.
- Chaos Mesh는 버전 2.0.4 이상이어야 합니다. AKS 클러스터에 연결하고
helm version chaos-mesh
를 실행하여 Chaos Mesh 버전을 가져올 수 있습니다. - Chaos Mesh는
chaos-testing
네임스페이스로 설치해야 합니다. 다른 Chaos Mesh 네임스페이스 이름은 지원되지 않습니다. - 카오스 실험을 위해 시스템 할당 관리 ID에 AKS 클러스터 관리자 역할을 할당해야 합니다.
실험을 만들거나 디자인할 때 발생하는 문제
실험을 만들거나 디자인할 때 문제가 발생할 수 있습니다.
오류를 추가할 때 내 리소스가 대상 리소스 목록에 표시되지 않습니다.
오류를 추가할 때 대상 리소스 목록에 오류로 대상화하려는 리소스가 표시되지 않으면 다음 문제 때문일 수 있습니다.
- 대상이 배포된 구독을 제외하도록 구독 필터가 설정됩니다. 구독 필터를 선택하고 선택한 구독을 수정합니다.
- 리소스가 아직 추가되지 않았습니다. 대상 보기로 이동하여 대상을 사용하도록 설정합니다. 그런 다음, 오류 추가 창을 닫았다가 다시 열어 업데이트된 대상 목록을 확인합니다.
- 해당 오류의 대상 유형에 대해 리소스가 아직 사용하도록 설정되지 않았습니다. 오류 라이브러리를 참조하여 오류에 사용되는 대상 유형을 확인합니다. 그런 다음, 대상 보기로 이동하여 해당 대상 유형을 사용하도록 설정합니다. 이 형식은 microsoft-agent 오류의 경우 에이전트 기반이거나 다른 모든 대상 형식의 경우 서비스 직접입니다. 그런 다음, 오류 추가 창을 닫았다가 다시 열어 업데이트된 대상 목록을 확인합니다.
- 리소스에 아직 해당 결함에 대한 기능이 사용하도록 설정되어 있지 않습니다. 오류 라이브러리를 참조하여 오류에 대한 기능 이름을 확인합니다. 그런 다음, 대상 보기로 이동하여 대상 리소스에서 작업 관리를 선택합니다. 실행하려는 오류에 해당하는 기능의 확인란을 선택하고 저장을 선택합니다. 그런 다음, 오류 추가 창을 닫았다가 다시 열어 업데이트된 대상 목록을 확인합니다.
- 리소스가 최근에 추가되었으며 아직 Azure Resource Graph에 나타나지 않았습니다. 대상 리소스 목록은 Resource Graph에서 쿼리됩니다. 새 대상을 사용하도록 설정한 후 업데이트가 Resource Graph에 전파되는 데 최대 5분이 걸릴 수 있습니다. 몇 분 정도 기다린 다음, 오류 추가 창을 다시 엽니다.
실험을 만들 때 "microsoft:agent 공급자에 관리 ID가 필요합니다."라는 오류가 발생합니다.
이 오류는 에이전트가 VM에 배포되지 않은 경우에 발생합니다. 설치 지침은 에이전트 기반 오류를 사용하는 실험 만들기 및 실행을 참조하세요.
실험을 만들 때 "콘텐츠 미디어 형식 'null'이 지원되지 않습니다. 'application/json'만 지원됩니다."라는 오류가 발생합니다.
Azure Resource Manager 템플릿 또는 Chaos Studio REST API를 사용하여 실험을 만드는 경우 이 오류가 발생할 수 있습니다. 이 오류는 실험 정의에 잘못된 형식의 JSON이 있음을 나타냅니다. 일치하지 않는 중괄호 또는 대괄호({} 및 [])와 같은 구문 오류가 있는지 확인합니다. 확인하려면 Visual Studio Code와 같은 JSON Linter를 사용합니다.
실험을 실행할 때 발생하는 문제
실험을 실행할 때 문제가 발생할 수 있습니다.
시작 후 내 실험의 실행 상태가 "실패"입니다.
Azure Portal의 실험 목록에서 실험 이름을 선택하여 실험 개요를 확인합니다. 기록 섹션에서 실패한 실험 실행 옆에 있는 세부 정보를 선택하면 자세한 오류 정보를 볼 수 있습니다.
또는 REST API를 사용하여 실험 실행 세부 정보를 가져옵니다. REST API 샘플 문서에서 자세히 알아봅니다.
az rest --method post --url "https://management.azure.com/{experimentId}/executions/{executionDetailsId}/getExecutionDetails?api-version={apiVersion}"
"대상이 올바르게 추가되고 적절한 읽기 권한이 실험 msi에 제공되었는지 확인" 오류로 인해 에이전트 기반 오류가 실패했습니다.
이 오류는 알려진 문제가 있는 Azure Portal을 사용하여 에이전트를 추가한 경우에 발생할 수 있습니다. 에이전트 기반 대상을 사용하도록 설정해도 VM 또는 가상 머신 확장 집합에 사용자 할당 관리 ID가 할당되지 않습니다.
이 문제를 해결하려면 Azure Portal에서 VM 또는 가상 머신 확장 집합으로 이동하고 ID로 이동합니다. 사용자 할당 탭을 열고 사용자 할당 ID를 VM에 추가합니다. 완료되면 에이전트가 연결되도록 VM을 다시 부팅해야 할 수도 있습니다.
"에이전트가 이미 다른 작업을 수행하고 있습니다"라는 오류로 인해 에이전트 기반 오류가 실패했습니다.
이 오류는 동시에 여러 에이전트 오류를 실행하려고 하면 발생합니다. 현재 에이전트는 한 번에 단일 에이전트 오류 실행만 지원하며 동시에 여러 에이전트 오류를 실행하는 실험을 정의하면 실패합니다.
실험이 즉시 시작되지 않았거나 실패함
실험을 시작한 후 다음과 같은 오류 메시지가 표시될 수 있습니다. The long-running operation has failed. InternalServerError. The target resource(s) could not be resolved. Error Code: OperationFailedException
. 일반적으로 이는 실험의 ID에 필요한 권한이 없음을 나타냅니다.
이 오류를 해결하려면 실험의 시스템 할당 또는 사용자 할당 관리 ID에 실험의 모든 리소스에 대한 권한이 있는지 확인합니다. Azure Chaos Studio의 권한 및 보안에서 권한에 대해 자세히 알아봅니다. 예를 들어, 실험이 가상 머신을 대상으로 하는 경우 가상 머신의 ID 페이지로 이동하여 실험의 관리 ID에 "가상 머신 기여자" 역할을 할당합니다.
내 AKS Chaos Mesh 실험 실패
AKS Chaos Mesh 오류를 사용할 때 발생할 수 있는 몇 가지 일반적인 오류가 있습니다.
오류 메시지 | 권장 조치 |
---|---|
이 클러스터가 로컬 계정을 사용하지 않도록 설정되었으므로 정적 자격 증명을 가져올 수 없습니다. | AKS Chaos Mesh 오류는 버전 2.2를 기준으로 Kubernetes 로컬 계정 또는 Microsoft Entra 인증을 사용할 수 있습니다. 여기서 실험을 마이그레이션하는 방법을 알아봅니다. Chaos Studio AKS 오류로 Microsoft Entra 인증 사용. |
제공된 구성이 잘못되어 Chaos Mesh 실험을 시작할 수 없습니다. | jsonSpec 필요한 필드가 모두 포함되어 있는지 확인합니다. |
Chaos Mesh 버전 'x.x.x'는 현재 Chaos Studio에서 지원되지 않습니다. | Azure Chaos Studio 버전 호환성 페이지에 대해 설치된 버전을 확인하고 원하는 버전이 나열되지 않은 경우 기능 요청을 제출합니다. |
관리 ID를 설정할 때 발생하는 문제
기존 실험에 시스템 할당/사용자 할당 관리 ID를 추가하려고 하면 저장에 실패합니다.
이미 할당된 관리 ID가 있는 실험에 사용자 할당 또는 시스템 할당 관리 ID를 추가하려고 하면 실험이 배포되지 않습니다. 원하는 관리 ID를 추가하기 전에 먼저 원하는 실험에서 기존 사용자 할당 또는 시스템 할당 관리 ID를 삭제해야 합니다.
사용자 지정 역할을 자동으로 만들고 할당하도록 구성된 실험을 실행하면 "대상 리소스를 확인할 수 없습니다. ErrorCode: AccessDenied. 대상 리소스:" 오류가 발생합니다.
실험에 대해 "사용자 지정 역할 권한" 확인란을 선택하면 Chaos Studio는 실험 ID에 필요한 권한이 있는 사용자 지정 역할을 만들고 할당합니다. 그러나 여기에는 다음과 같은 역할 할당 및 역할 정의 제한이 적용됩니다.
- 각 Azure 구독은 역할 할당이 4000개로 제한됩니다.
- 각 Microsoft Entra 테넌트는 역할 정의가 5000개로 제한됩니다(또는 중국의 Azure에 대한 역할 정의는 2000개).
이러한 제한 중 하나에 도달하면 이 오류가 발생합니다. 이 문제를 해결하려면 대신 수동으로 실험 ID에 권한을 부여합니다.