PEP(권한 있는 엔드포인트)를 사용하여 Azure Stack Hub 진단 로그 보내기
통합 시스템에서 Get-AzureStackLog 실행하려면 PEP(권한 있는 엔드포인트)에 액세스할 수 있어야 합니다. 다음은 PEP를 사용하여 실행하여 로그를 수집할 수 있는 예제 스크립트입니다. 실행 중인 로그 컬렉션을 취소하여 새 로그 컬렉션을 시작하는 경우 새 로그 수집을 시작하기 전에 5분 정도 기다렸다가 Remove-PSSession -Session $session
입력합니다.
$ipAddress = "<IP ADDRESS OF THE PEP VM>" # You can also use the machine name instead of IP here.
$password = ConvertTo-SecureString "<CLOUD ADMIN PASSWORD>" -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential ("<DOMAIN NAME>\CloudAdmin", $password)
$shareCred = Get-Credential
$session = New-PSSession -ComputerName $ipAddress -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
$fromDate = (Get-Date).AddHours(-8)
$toDate = (Get-Date).AddHours(-2) # Provide the time that includes the period for your issue
Invoke-Command -Session $session { Get-AzureStackLog -OutputSharePath "<EXTERNAL SHARE ADDRESS>" -OutputShareCredential $using:shareCred -FilterByRole Storage -FromDate $using:fromDate -ToDate $using:toDate}
if ($session) {
Remove-PSSession -Session $session
}
예제
모든 역할에 대한 모든 로그를 수집합니다.
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred
VirtualMachines 및 BareMetal 역할에서 로그를 수집합니다.
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal
지난 8시간 동안 로그 파일에 대한 날짜 필터링을 사용하여 VirtualMachines 및 BareMetal 역할에서 로그를 수집합니다.
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8)
8시간 전에서 2시간 전 사이의 기간 동안 로그 파일에 대한 날짜 필터링을 사용하여 VirtualMachines 및 BareMetal 역할에서 로그를 수집합니다.
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2)
Azure Stack에서 AKS 엔진(자체 관리 Kubernetes 클러스터)을 실행하는 테넌트 배포에서 로그를 수집합니다. Kubernetes 로그는 컬렉션 시간 범위도 적용할 수 있는 형식으로 테넌트 스토리지 계정에 저장되어야 합니다.
Get-AzureStackLog -OutputPath <Path> -InputSasUri "<Blob Service Sas URI>" -FromDate "<Beginning of the time range>" -ToDate "<End of the time range>"
예를 들어:
Get-AzureStackLog -OutputPath C:\KubernetesLogs -InputSasUri "https://<storageAccountName>.blob.core.windows.net/<ContainerName><SAS token>" -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2)
값이 추가된 RP에 대한 로그를 수집합니다. 일반적인 구문은 다음과 같습니다.
Get-AzureStackLog -FilterByResourceProvider <<value-add RP name>>
SQL RP에 대한 로그를 수집하려면 다음을 수행합니다.
Get-AzureStackLog -FilterByResourceProvider SQLAdapter
MySQL RP에 대한 로그를 수집하려면 다음을 수행합니다.
Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
Event Hubs에 대한 로그를 수집하려면 다음을 수행합니다.
Get-AzureStackLog -FilterByResourceProvider eventhub
Azure Stack Edge에 대한 로그를 수집하려면 다음을 수행합니다.
Get-AzureStackLog -FilterByResourceProvide databoxedge
로그를 수집하고 지정된 Azure Storage Blob 컨테이너에 저장합니다. 이 작업의 일반적인 구문은 다음과 같습니다.
Get-AzureStackLog -OutputSasUri "<Blob service SAS Uri>"
예를 들어:
Get-AzureStackLog -OutputSasUri "https://<storageAccountName>.blob.core.windows.net/<ContainerName><SAS token>"
메모
이 절차는 로그를 업로드하는 데 유용합니다. 액세스 가능하거나 인터넷에 액세스할 수 있는 SMB 공유가 없더라도 Azure Stack Hub에 Blob Storage 계정을 만들어 로그를 전송한 다음 클라이언트를 사용하여 해당 로그를 검색할 수 있습니다.
스토리지 계정에 대한 SAS 토큰을 생성하려면 다음 권한이 필요합니다.
- Blob Storage 서비스에 대한 액세스.
- 컨테이너 리소스 종류에 대한 액세스.
-OutputSasUri
매개 변수에 사용할 SAS Uri 값을 생성하려면 다음 단계를 수행합니다.- 스토리지 계정을 만들려면 이 문서 의 단계에 따라 수행하세요.
- Azure Storage Explorer의 인스턴스를 엽니다.
- 1단계에서 만든 스토리지 계정에 연결합니다.
- Storage Services의 Blob 컨테이너를 탐색합니다.
- 선택합니다. 새 컨테이너을 만듭니다.
- 새 컨테이너를 마우스 오른쪽 단추로 클릭한 다음 공유 액세스 서명 가져오기클릭합니다.
- 요구 사항에 따라 유효한 시작 시간 및 종료 시간을 선택하세요.
- 필요한 권한을 위해 읽기, 쓰기, 및 목록을 선택합니다.
- 만들기선택합니다.
- 공유 액세스 서명을 받게 됩니다. URL 부분을 복사하여
-OutputSasUri
매개 변수에 제공합니다.
매개 변수 고려 사항
OutputSharePath 및 OutputShareCredential 매개 변수는 사용자가 지정한 위치에 로그를 저장하는 데 사용됩니다.
FromDate 및 ToDate 매개 변수를 사용하여 특정 기간 동안 로그를 수집할 수 있습니다. 이러한 매개 변수를 지정하지 않으면 로그는 기본적으로 지난 4시간 동안 수집됩니다.
FilterByNode 매개 변수를 사용하여 컴퓨터 이름으로 로그를 필터링합니다. 예를 들어:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
FilterByLogType 매개 변수를 사용하여 형식별로 로그를 필터링합니다. 파일, 공유 또는 WindowsEvent별로 필터링하도록 선택할 수 있습니다. 예를 들어:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
TimeOutInMinutes 매개 변수를 사용하여 로그 수집에 대한 시간 제한을 설정할 수 있습니다. 기본적으로 150(2.5시간)으로 설정됩니다.
덤프 파일 로그 컬렉션은 기본적으로 사용하지 않도록 설정됩니다. 사용하도록 설정하려면 IncludeDumpFile 스위치 매개 변수를 사용합니다.
현재 FilterByRole 매개 변수를 사용하여 다음 역할로 로그 수집을 필터링할 수 있습니다.
ACS
ACSBlob
ACS 다운로드 서비스
ACSFabric
ACSFrontEnd
ACSMetrics
ACSMigrationService
ACS 모니터링 서비스
ACSSettingsService (ACS 설정 서비스)
ACSTableMaster
ACSTableServer
ACSWac
ADFS
ApplicationController
ASAppGateway
AzureBridge
AzureMonitor
BareMetal
BRP
CA (캘리포니아, 미국)
CacheService
계산
CPI
CRP
DeploymentMachine
DiskRP
도메인
ECE
EventAdminRP
EventRP
ExternalDNS
패브릭링
패브릭링서비스
FirstTierAggregationService
강화 플라스틱
게이트웨이
건강 모니터링
HintingServiceV2 (힌팅 서비스 버전 2)
HRP
IBC
InfraServiceController
키볼트 관리자 리소스 공급자 (KeyVaultAdminResourceProvider)
KeyVaultControlPlane
KeyVaultDataPlane
KeyVaultInternalControlPlane
KeyVaultInternalDataPlane
KeyVaultNamingService
MDM
메트릭스어드민RP
MetricsRP
MetricsServer
MetricsStoreService
MonAdminRP
MonRP
노스캐롤라이나
비권한적 애플리케이션 게이트웨이
NRP
OboService
OEM
OnboardRP
PXE
질의 서비스 조정자
QueryServiceWorker
씨앗링
SeedRingServices
SLB
SQL
SRP
보관
저장 장치 컨트롤러
URP
SupportBridgeController
SupportRing
SupportRingServices
SupportBridgeRP
UsageBridge
가상머신
이었다
WASPUBLIC
진단 로그에 대한 추가 고려 사항
이 명령은 로그가 수집하는 역할에 따라 실행하는 데 다소 시간이 걸립니다. 기여 요인에는 로그 수집에 지정된 기간 및 Azure Stack Hub 환경의 노드 수도 포함됩니다.
로그 컬렉션이 실행될 때 명령에 지정된 OutputSharePath 매개 변수에서 만든 새 폴더를 확인합니다.
각 역할에는 개별 zip 파일 내에 로그가 있습니다. 수집된 로그의 크기에 따라 역할에는 해당 로그가 여러 zip 파일로 분할될 수 있습니다. 이러한 역할의 경우 모든 로그 파일을 단일 폴더로 압축 해제하려면 대량으로 압축을 풀 수 있는 도구를 사용합니다. 역할과 관련된 압축된 파일을 모두 선택하고 여기에서 압축 풀기를선택합니다. 해당 역할에 대한 모든 로그 파일은 병합된 단일 폴더로 압축 해제됩니다.
Get-AzureStackLog_Output.log이라는 파일은 압축된 로그 파일이 포함된 폴더에도 만들어집니다. 이 파일은 로그 수집 중에 문제를 해결하는 데 사용할 수 있는 명령 출력의 로그입니다. 로그 컬렉션이 실행된 후 예상 로그 파일이 누락되지 않는 한 로그 파일에 안전하게 무시될 수 있는
PS>TerminatingError
항목이 포함된 경우가 있습니다.특정 오류를 조사하려면 둘 이상의 구성 요소에서 로그가 필요할 수 있습니다.
- 모든 인프라 VM에 대한 시스템 및 이벤트 로그는 VirtualMachines 역할에서 수집됩니다.
- 모든 호스트에 대한 시스템 및 이벤트 로그는 BareMetal 역할에서 수집됩니다.
- 페일오버 클러스터 및 Hyper-V 이벤트 로그는 저장소 역할에서 수집됩니다.
- ACS 로그는 Storage 및 ACS 역할에서 수집됩니다.
메모
스토리지 공간의 효율적인 사용률을 보장하고 로그로 넘쳐나지 않도록 하는 것이 중요하기 때문에 수집된 로그에 크기 및 연령 제한이 적용됩니다. 그러나 문제를 진단할 때 이러한 제한으로 인해 더 이상 존재하지 않는 로그가 필요한 경우가 있습니다. 따라서 8~12시간마다 로그를 외부 스토리지 공간(Azure의 스토리지 계정, 추가 온-프레미스 스토리지 디바이스 등)으로 오프로드하고 요구 사항에 따라 1~3개월 동안 로그를 유지하는 것이 매우 권장됩니다. 또한 이 스토리지 위치가 암호화되어 있는지 확인해야 합니다.
Invoke-AzureStackOnDemandLog
Invoke-AzureStackOnDemandLog cmdlet을 사용하여 특정 역할에 대한 주문형 로그를 생성할 수 있습니다(이 섹션의 끝부분에 있는 목록 참조). 이 cmdlet에서 생성된 로그는 Get-AzureStackLog cmdlet을 실행할 때 수신하는 로그 번들에 기본적으로 존재하지 않습니다. 또한 Microsoft 지원 팀의 요청에 따라 이러한 로그를 수집하는 것이 좋습니다.
현재 -FilterByRole
매개 변수를 사용하여 다음 역할로 로그 수집을 필터링할 수 있습니다.
- OEM (제조사 위탁 생산)
- 노스캐롤라이나
- SLB
- 게이트웨이
주문형 진단 로그 수집 예제
$ipAddress = "<IP ADDRESS OF THE PEP VM>" # You can also use the machine name instead of IP here.
$password = ConvertTo-SecureString "<CLOUD ADMIN PASSWORD>" -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential ("<DOMAIN NAME>\CloudAdmin", $password)
$shareCred = Get-Credential
$session = New-PSSession -ComputerName $ipAddress -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
$fromDate = (Get-Date).AddHours(-8)
$toDate = (Get-Date).AddHours(-2) # Provide the time that includes the period for your issue
Invoke-Command -Session $session {
Invoke-AzureStackOnDemandLog -Generate -FilterByRole "<on-demand role name>" # Provide the supported on-demand role name e.g. OEM, NC, SLB, Gateway
Get-AzureStackLog -OutputSharePath "<external share address>" -OutputShareCredential $using:shareCred -FilterByRole Storage -FromDate $using:fromDate -ToDate $using:toDate
}
if ($session) {
Remove-PSSession -Session $session
}
PEP를 사용한 진단 로그 수집의 작동 방식
Azure Stack Hub 진단 도구는 로그 수집을 쉽고 효율적으로 만드는 데 도움이 됩니다. 다음 다이어그램은 진단 도구의 작동 방식을 보여 줍니다.
Azure Stack Hub 진단 도구 워크플로 다이어그램
추적 수집기
추적 수집기는 기본적으로 사용하도록 설정되며 백그라운드에서 지속적으로 실행되어 Azure Stack Hub 구성 요소 서비스에서 ETW(Windows용 이벤트 추적) 로그를 모두 수집합니다. ETW 로그는 5일 제한으로 공통 로컬 공유에 저장됩니다. 이 제한에 도달하면 새 파일이 만들어지면 가장 오래된 파일이 삭제됩니다. 각 파일에 허용되는 기본 최대 크기는 200MB입니다. 크기 검사는 2분마다 수행되며 현재 파일이 >= 200MB이면 저장되고 새 파일이 생성됩니다. 또한 이벤트 세션당 생성된 총 파일 크기는 8GB로 제한됩니다.
Get-AzureStackLog
PowerShell cmdlet Get-AzureStackLog 사용하여 Azure Stack Hub 환경의 모든 구성 요소에서 로그를 수집할 수 있습니다. 사용자 정의 위치의 zip 파일에 저장합니다. Azure Stack Hub 기술 지원 팀에서 문제를 해결하는 데 도움이 되는 로그가 필요한 경우 Get-AzureStackLog를 실행하도록 요청할 수 있습니다.
주의
이러한 로그 파일에는 PII(개인 식별 정보)가 포함될 수 있습니다. 로그 파일을 공개적으로 게시하기 전에 이 사항을 고려합니다.
다음은 수집되는 몇 가지 예제 로그 형식입니다.
- Azure Stack Hub 배포 로그
- Windows 이벤트 로그
- Panther 로그
- 클러스터 로그
- 스토리지 진단 로그
- ETW 로그
이러한 파일은 추적 수집기에서 수집하여 공유에 저장됩니다. 그런 다음 필요한 경우 Get-AzureStackLog 사용하여 수집할 수 있습니다.