Azure Virtual Desktop에 대한 Log Analytics에 진단 데이터 보내기

Important

이 콘텐츠는 Azure Resource Manager Azure Virtual Desktop 개체를 통해 Azure Virtual Desktop에 적용됩니다. Azure Resource Manager 개체 없이 Azure Virtual Desktop(클래식)을 사용하는 경우 이 문서를 참조하세요.

Azure Virtual Desktop은 다른 많은 Azure 서비스와 마찬가지로 모니터링 및 경고를 위해 Azure Monitor를 사용합니다. 이를 통해 관리자는 단일 인터페이스에서 문제를 파악할 수 있습니다. 이 서비스는 사용자 및 관리 작업 모두에 대한 활동 로그를 만듭니다. 각 활동 로그는 다음 범주에 속합니다.

범주 설명
관리 작업 API 또는 PowerShell을 사용하여 Azure Virtual Desktop 개체를 변경하려는 시도가 성공했는지 여부입니다.
피드 사용자가 작업 영역을 성공적으로 구독할 수 있는지 여부를 나타냅니다.
연결 사용자가 서비스 연결을 시작하고 완료하는 경우입니다.
호스트 등록 연결 시 세션 호스트가 서비스에 성공적으로 등록되었는지 여부를 나타냅니다.
Errors 사용자가 특정 작업과 관련하여 문제를 겪는 경우.
검사점 연결된 활동의 수명의 특정 단계입니다.
에이전트 상태 각 세션 호스트에 설치된 Azure Virtual Desktop 에이전트의 상태를 모니터링합니다.
네트워크 예상 왕복 시간을 포함한 세부 정보를 모니터링할 사용자 세션의 평균 네트워크 데이터입니다.
연결 그래픽 Azure Virtual Desktop 그래픽 스트림의 성능 데이터입니다.
세션 호스트 관리 작업 세션 호스트의 관리 작업.
Autoscale 크기 조정 작업.

진단 역할 서비스 자체가 Azure Virtual Desktop의 일부이기 때문에 Azure Virtual Desktop에 도달하지 않는 연결은 진단 결과에 표시되지 않습니다. Azure Virtual Desktop 연결 문제는 사용자에게 네트워크 연결 문제가 발생할 때 나타날 수 있습니다.

Azure Monitor를 사용하면 동일한 도구 내에서 Azure Virtual Desktop 데이터를 분석하고 VM(가상 머신) 성능 카운터를 검토할 수 있습니다. 이 문서에서는 Azure Virtual Desktop 환경에 대해 진단을 사용하도록 설정하는 방법을 보여줍니다.

참고 항목

Azure에서 VM을 모니터하는 방법은 Azure Monitor로 Azure 가상 머신 모니터링을 참조하세요. 또한 세션 호스트에서 사용자 환경을 더 잘 이해하려면 Azure Virtual Desktop Insights 용어집을 검토합니다.

필수 조건

Log Analytics에서 Azure Virtual Desktop을 사용하려면 다음이 필요합니다.

작업 영역에 진단 데이터 푸시

Azure Virtual Desktop 개체에서 작업 영역의 Log Analytics로 진단 데이터를 푸시할 수 있습니다. 개체를 처음 만들 때 이 기능을 즉시 설정할 수 있습니다.

새 개체에 대해 Log Analytics를 설정하려면 다음을 수행합니다.

  1. Azure Portal에 로그인하고 Virtual Desktop으로 이동합니다.

  2. 로그 및 이벤트를 캡처하려는 개체(예: 호스트 풀, 애플리케이션 그룹 또는 작업 영역)로 이동합니다.

  3. 화면의 왼쪽 메뉴에서 진단 설정을 선택합니다.

  4. 화면의 오른쪽 메뉴에서 진단 설정 추가를 선택합니다.

    진단 설정 페이지에 표시되는 옵션은 편집 중인 개체 종류에 따라 달라집니다.

    예를 들어 애플리케이션 그룹에 대해 진단을 사용하도록 설정하는 경우 검사점, 오류 및 관리 구성 옵션이 표시됩니다. 작업 영역의 경우 이러한 범주는 사용자가 앱 목록을 구독하는 시간을 추적하기 위한 피드를 구성합니다. 진단 설정에 대한 자세한 내용은 Azure에서 리소스 로그 및 메트릭을 수집하기 위한 진단 설정 만들기를 참조하세요.

    Important

    모니터하려는 각 Azure Resource Manager 개체에 대해 진단을 사용해야 합니다. 진단이 사용하도록 설정된 후 활동에 데이터를 사용할 수 있습니다. 처음 설정된 후 몇 시간 정도 걸릴 수 있습니다.

  5. 설정 구성 이름을 입력한 후 Log Analytics에 보내기를 선택합니다. 사용하는 이름은 공백을 포함하지 않고 Azure 명명 규칙을 준수해야 합니다. 로그의 일부로 검사점, 오류, 관리 등 Log Analytics에 추가하려는 모든 옵션을 선택할 수 있습니다.

  6. 저장을 선택합니다.

참고 항목

Log Analytics는 Event Hub로 데이터를 스트리밍하거나 스토리지 계정에 보관하는 옵션을 제공합니다. 이 기능에 대한 자세한 내용은 Event Hub에 Azure 모니터링 데이터 스트리밍스토리지 계정에 Azure 리소스 로그 아카이브를 참조하세요.

Log Analytics 액세스 방법

Azure Portal 또는 Azure Monitor에서 Log Analytics 작업 영역에 액세스할 수 있습니다.

Log Analytics 작업 영역에서 Log Analytics 액세스

  1. Azure Portal에 로그인합니다.

  2. Log Analytics 작업 영역을 검색합니다.

  3. 서비스에서 Log Analytics 작업 영역을 선택합니다.

  4. 목록에서 Azure Virtual Desktop 개체에 구성한 작업 영역을 선택합니다.

  5. 작업 영역에서 로그를 선택합니다. 검색 기능을 사용하여 메뉴 목록을 필터링할 수 있습니다.

Azure Monitor에서 Log Analytics에 액세스

  1. Azure Portal에 로그인합니다.

  2. 모니터를 검색하고 선택합니다.

  3. 로그를 선택합니다.

  4. 로깅 페이지의 지침에 따라 쿼리 범위를 설정합니다.

  5. 진단을 쿼리할 준비가 되었습니다. 모든 진단 테이블에는 "WVD" 접두사가 포함됩니다.

참고 항목

Azure Monitor 로그에 저장된 테이블에 대한 자세한 내용은 Azure Monitor 데이터 참조를 확인하세요. Azure Virtual Desktop과 관련된 모든 테이블에는 "WVD" 접두사가 붙습니다.

진단 이벤트 전송 주기

완료되었으면 진단 이벤트가 Log Analytics로 전송됩니다.

Log Analytics는 연결 활동에 대해 이러한 중간 상태만 보고합니다.

  • 시작됨: 사용자가 원격 데스크톱 클라이언트에서 앱 또는 데스크톱을 선택하고 연결했습니다.
  • 연결됨: 앱 또는 데스크톱이 호스트되는 VM에 사용자가 성공적으로 연결되었습니다.
  • 완료됨: 사용자 또는 서버가 작업이 수행된 세션 연결을 해제했습니다.

예제 쿼리

Azure Monitor Log Analytics UI를 통해 예시 쿼리에 액세스합니다.

  1. Log Analytics 작업 영역으로 이동한 후 로그를 선택합니다. 예제 쿼리 UI가 자동으로 표시됩니다.
  2. 필터를 범주로 변경합니다.
  3. Virtual Desktop을 선택하여 사용 가능한 쿼리를 검토합니다.
  4. 실행을 선택하여 선택한 쿼리를 실행합니다.

Azure Monitor Log Analytics에 저장된 쿼리에서 샘플 쿼리 인터페이스에 대해 자세히 알아보세요.

다음 쿼리 목록을 통해 단일 사용자의 연결 정보 또는 문제를 검토할 수 있습니다. 이러한 쿼리는 Log Analytics 쿼리 편집기에서 실행할 수 있습니다. 각 쿼리에 대해 userupn을 조회하려는 사용자의 UPN으로 바꿉니다.

단일 사용자의 모든 연결을 찾으려면 다음을 수행합니다.

WVDConnections
|where UserName == "userupn"
|take 100
|sort by TimeGenerated asc, CorrelationId

사용자가 하루 동안 연결한 횟수를 찾으려면 다음을 수행합니다.

WVDConnections
|where UserName == "userupn"
|take 100
|sort by TimeGenerated asc, CorrelationId
|summarize dcount(CorrelationId) by bin(TimeGenerated, 1d)

사용자별 세션 기간을 찾으려면 다음을 수행합니다.

let Events = WVDConnections | where UserName == "userupn" ;
Events
| where State == "Connected"
| project CorrelationId , UserName, ResourceAlias , StartTime=TimeGenerated
| join (Events
| where State == "Completed"
| project EndTime=TimeGenerated, CorrelationId)
on CorrelationId
| project Duration = EndTime - StartTime, ResourceAlias
| sort by Duration asc

특정 사용자의 오류를 찾으려면 다음을 수행합니다.

WVDErrors
| where UserName == "userupn"
|take 100

특정 오류가 다른 사용자에 대해 발생했는지 여부를 확인하려면 다음을 수행합니다.

WVDErrors
| where CodeSymbolic =="ErrorSymbolicCode"
| summarize count(UserName) by CodeSymbolic

참고 항목

  • 사용자가 전체 데스크톱 세션을 시작하면 세션에서 앱 사용이 WVDCheckpoints 테이블의 검사점으로 추적되지 않습니다.
  • WVDConnections 테이블의 ResourcesAlias 열은 사용자가 전체 데스크톱 또는 게시된 앱에 연결했는지 여부를 보여 줍니다. 이 열에는 연결 중 열리는 첫 번째 앱만 표시됩니다. 사용자가 여는 모든 게시된 앱은 WVDCheckpoints에서 추적됩니다.
  • WVDErrors 테이블은 관리 오류, 호스트 등록 문제 및 사용자가 앱 또는 데스크톱 목록에 등록할 때 발생하는 기타 문제를 보여줍니다.
  • WVDErrors 테이블은 또한 관리자 작업으로 해결할 수 있는 문제를 식별하는 데 도움이 됩니다. 이러한 형식의 문제에 대해 ServiceError의 값은 항상 false와 같아야 합니다. ServiceErrortrue인 경우 문제를 Microsoft에 에스컬레이션해야 합니다. 에스컬레이션하는 오류에 대해 CorrelationID를 제공해야 합니다.
  • 연결 문제를 디버깅할 때 경우에 따라 연결 이벤트가 완료되더라도 클라이언트 정보가 누락될 수 있습니다. 이는 WVDConnectionsWVDCheckpoints 테이블에 적용됩니다.

다음 단계