내용으로 건너뛰기

원격에서 WorkSpaces 번들로그를 수집하는 방법

3분 분량
콘텐츠 수준: 중급
0

워크스페이스 로그를 직접적으로 번들로그 수집이 힘든 경우 원격에서 로그를 수집하는 방법을 소개합니다.

WorkSpaces 가 '비정상' 으로 표시가 되거나 연결이 지속적으로 원활하지 않을 경우 트러블 슈팅을 하기 위해 클라이언트 로그와 번들로그 수집이 필요합니다.

다만 이러한 로그 수집을 하려면 사용자의 로컬 클라이언트와 RDP로 워크스페이스에 연결하여 로그 수집이 필요합니다. 이러한 로그 수집방법이 환경에 따라 원할하지 않을 수 있기에 원격에서 클라이언트 로그와 번들로그를 수집하는 방법을 안내 합니다.

  1. Client 로그

클라이언트를 원격으로 수집할수 있는 방법은 제한적입니다. 따라서 Amazon WorkSpaces의 Enable Diagnostic Logging을 Enable(기본으로 Enable) 한뒤 디바이스 ID를 Support 팀에 보내주시면 클라이언트 로그 확인이 가능합니다. (단 로컬 클라이언트의 네트워크 환경이 원할하지 않을 경우 로그수집이 되지 않을수 있습니다.)

디바이스 ID를 확인하는 방법은 아래와 같습니다.

Amazon WorkSpaces Client에서 Settings -> Manage Diagnostic Logging Settings에 접속합니다. Enter image description here

Enter image description here

그후 Device ID 값을 확인한 후 Support팀에 S3링크를 요청하고 S3링크를 받으면 아래방법으로 수집한 번들로그를 업로드 하고 문제 발생 시점과 그리고 Device ID값을 같이 회신합니다.

  1. 번들 로그

번들로그를 수집하려면 RDP로 접속 후 'C:\Program Files\Amazon\WorkSpacesConfig\Scripts\Get-WorkSpaceLogs.ps1' 스크립트를 실행 한후 바탕화면에 있는 로그파일을 S3에 업로드 해야 합니다.

다만 이러한 수집이 고객사에서는 매우 부담스러울수 있고 환경에 따라 수집이 어려울 수 있습니다.

따라서 도메인의 관리자 계정으로 파워쉘의 PSSession 기능을 이용하여 워크스페이스의 로그를 수집하는 방법을 안내하려고 합니다.

우선 스크립트는 아래와 같습니다.


$remoteComputerName = Read-Host "Please enter a remote computer name"
$credential = Get-Credential -Message "Enter credentials for remote computers"
New-Item -Path C:\Temp\$remoteComputerName -ItemType "Directory"
try {
    $session = New-PSSession -ComputerName $remoteComputerName -Credential $credential

    Invoke-Command -Session $session -ScriptBlock {
        param ($scriptPath)
        powershell.exe -NoLogo -ExecutionPolicy RemoteSigned -NoProfile -File $scriptPath
    } -ArgumentList "C:\Program Files\Amazon\WorkSpacesConfig\Scripts\Get-WorkSpaceLogs.ps1"

    Copy-Item -Path "D:\WorkSpaceLogBundle*" -Destination "C:\Temp\$remoteComputerName\" -FromSession $session

    Write-Host "File copied successfully." -ForegroundColor Green
} catch {
    Write-Host "An error has occurred: $_" -ForegroundColor Red
} finally {

    if ($session) {
        Remove-PSSession -Session $session
    }
}

가. 도메인 관리자 계정으로 같은 디렉토리 서비스를 Managed하는 인스턴스에 접속합니다.

나. 그후 위의 스크립트를 메모장에 복사한 후 .ps1 파일로 저장한 후 실행합니다. 다운로드 받는 위치등의 수정이 필요하시면 'C:\Temp$remoteComputerName' 이부분을 수정하시면 됩니다. Enter image description here

다. 실행 하면 워크스페이스의 이름을 입력하라고 나옵니다. 이떄 워크스페이스 콘솔에서 컴퓨터 이름을 확인한 후 기입하면 됩니다. Enter image description here

라. 계정정보에는 도메인 관리자 계정정보를 입력하였습니다. Enter image description here

마. 실행 시 RemoteException이 발생하나 중요 로그는 수집 되므로 넘어가시면 됩니다. Enter image description here

바.File copied successfully. 가 발생하면 로그가 정상적으로 다운받아 졌는지 확인합니다. Enter image description here

이 테스트는 기본 퍼블릭 번들 2019/2022 이미지에서 Directory Service의 Managed 인스턴스에서 실행하여 정상적으로 수행이 되었음을 확인하였습니다. 스크립트는 PSSession 사용하기에 WinRM Port를 사용합니다. [+]New-PSSession https://learn.microsoft.com/ko-kr/powershell/module/microsoft.powershell.core/new-pssession?view=powershell-7.4

AWS
지원 엔지니어
게시됨 2년 전1.7천회 조회