Mengirim log diagnostik Azure Stack Hub dengan menggunakan titik hak akhir istimewa (PEP)
Untuk menjalankan Get-AzureStackLog pada sistem terintegrasi, Anda harus memiliki akses ke titik akhir dengan hak istimewa (PEP). Berikut adalah contoh skrip yang dapat Anda jalankan menggunakan PEP untuk mengumpulkan log. Jika Anda membatalkan koleksi log yang sedang berjalan untuk memulai yang baru, harap tunggu 5 menit Sebelum memulai pengumpulan log baru dan masukkan 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
}
Contoh
Kumpulkan semua log untuk semua peran:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred
Kumpulkan log dari peran VirtualMachines dan BareMetal:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal
Kumpulkan log dari peran VirtualMachines dan BareMetal, dengan pemfilteran tanggal untuk file log selama 8 jam terakhir:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8)
Kumpulkan log dari peran VirtualMachines dan BareMetal, dengan pemfilteran tanggal untuk file log selama jangka waktu antara 8 jam yang lalu dan 2 jam yang lalu:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2)
Kumpulkan log dari penyebaran penyewa yang menjalankan klaster Kubernetes (mesin AKS) yang dikelola sendiri di Azure Stack. Log Kubernetes harus disimpan dalam akun penyimpanan penyewa dalam format yang akan memungkinkan rentang waktu pengumpulan diterapkan pada mereka juga.
Get-AzureStackLog -OutputPath <Path> -InputSasUri "<Blob Service Sas URI>" -FromDate "<Beginning of the time range>" -ToDate "<End of the time range>"
Contohnya:
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)
Kumpulkan log untuk RP nilai tambah. Sintaks umumnya adalah:
Get-AzureStackLog -FilterByResourceProvider <<value-add RP name>>
Untuk mengumpulkan log SQL RP:
Get-AzureStackLog -FilterByResourceProvider SQLAdapter
Untuk mengumpulkan log MySQL RP:
Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
Untuk mengumpulkan log Pusat Aktivitas:
Get-AzureStackLog -FilterByResourceProvider eventhub
Untuk mengumpulkan log untuk Azure Stack Edge:
Get-AzureStackLog -FilterByResourceProvide databoxedge
Kumpulkan log dan simpan dalam wadah blob Azure Storage yang ditentukan. Sintaks umum untuk operasi ini adalah sebagai berikut:
Get-AzureStackLog -OutputSasUri "<Blob service SAS Uri>"
Contohnya:
Get-AzureStackLog -OutputSasUri "https://<storageAccountName>.blob.core.windows.net/<ContainerName><SAS token>"
Catatan
Prosedur ini berguna untuk mengunggah log. Bahkan jika Anda tidak memiliki akses berbagi SMB atau internet yang dapat diakses, Anda dapat membuat akun penyimpanan blob di Azure Stack Hub Anda untuk mentransfer log, lalu menggunakan klien Anda untuk mengambil log tersebut.
Untuk membuat token SAS untuk akun penyimpanan, izin berikut diperlukan:
- Akses ke layanan Azure Blob Storage.
- Akses ke jenis sumber daya kontainer.
Untuk menghasilkan nilai SAS Uri yang akan digunakan untuk parameter
-OutputSasUri
, ikuti langkah-langkah berikut:- Buat akun penyimpanan, ikuti langkah-langkah dalam artikel ini.
- Buka instans penjelajah Azure Storage.
- Koneksi ke akun penyimpanan yang dibuat pada langkah 1.
- Navigasi ke Kontainer Blob di Layanan Azure Storage.
- Pilih Buat kontainer baru.
- Klik kanan kontainer baru, lalu klik Dapatkan Tanda Tangan Akses Bersama.
- Pilih Waktu Mulai dan Waktu berakhir yang valid, tergantung pada kebutuhan Anda.
- Untuk izin yang diperlukan, pilih Baca, Tulis, dan Daftar.
- Pilih Buat.
- Mendapatkan tanda tangan akses bersama. Salin bagian URL dan berikan ke parameter
-OutputSasUri
.
Pertimbangan parameter
Parameter OutputSharePath dan OutputShareCredential digunakan untuk menyimpan log di lokasi yang ditentukan pengguna.
Parameter FromDate dan ToDate dapat digunakan untuk mengumpulkan log selama jangka waktu tertentu. Jika parameter ini tidak ditentukan, log dikumpulkan selama empat jam terakhir secara default.
Gunakan parameter FilterByNode untuk memfilter log berdasarkan nama komputer. Contohnya:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
Gunakan parameter FilterByLogType untuk memfilter log berdasarkan jenisnya. Anda dapat memilih untuk memfilter berdasarkan File, Bagikan, atau WindowsEvent. Contohnya:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
Anda dapat menggunakan parameter TimeOutInMinutes untuk mengatur batas waktu pengumpulan log. Ini diatur ke 150 (2,5 jam) secara default.
Koleksi log kube-system dinonaktifkan secara default. Untuk mengaktifkannya, gunakan parameter pengalih IncludeDumpFile.
Saat ini, Anda dapat menggunakan parameter FilterByRole untuk memfilter koleksi log dengan peran berikut:
ACS
ACSBlob
ACSDownloadService
ACSFabric
ACSFrontEnd
ACSMetrics
ACSMigrationService
ACSMonitoringService
ACSSettingsService
ACSTableMaster
ACSTableServer
ACSWac
ADFS
ApplicationController
ASAppGateway
AzureBridge
AzureMonitor
BareMetal
BRP
CA
CacheService
Compute
CPI
CRP
DeploymentMachine
DiskRP
Domain
ECE
EventAdminRP
EventRP
ExternalDNS
FabricRing
FabricRingServices
FirstTierAggregationService
FRP
Gateway
HealthMonitoring
HintingServiceV2
HRP
IBC
InfraServiceController
KeyVaultAdminResourceProvider
KeyVaultControlPlane
KeyVaultDataPlane
KeyVaultInternalControlPlane
KeyVaultInternalDataPlane
KeyVaultNamingService
MDM
MetricsAdminRP
MetricsRP
MetricsServer
MetricsStoreService
MonAdminRP
MonRP
NC
NonPrivilegedAppGateway
NRP
OboService
OEM
OnboardRP
PXE
QueryServiceCoordinator
QueryServiceWorker
SeedRing
SeedRingServices
SLB
SQL
SRP
Penyimpanan
StorageController
URP
SupportBridgeController
SupportRing
SupportRingServices
SupportBridgeRP
UsageBridge
VirtualMachines
WAS
WASPUBLIC
Pertimbangan tambahan pada log diagnostik
Perintah membutuhkan waktu untuk berjalan berdasarkan peran mana yang dikumpulkan log. Faktor yang berkontribusi juga mencakup durasi waktu yang ditentukan untuk pengumpulan log, dan jumlah node di lingkungan Azure Stack Hub.
Saat pengumpulan log berjalan, periksa folder baru yang dibuat dalam parameter OutputSharePath yang ditentukan dalam perintah.
Setiap peran memiliki log di dalam file zip individu. Bergantung pada ukuran log yang dikumpulkan, peran mungkin lognya dibagi menjadi beberapa file zip. Untuk peran seperti itu, jika Anda ingin semua file log di-unzip ke dalam satu folder, gunakan alat yang dapat membuka zip secara massal. Pilih semua file zip untuk peran dan pilih ekstrak di sini. Semua file log untuk peran tersebut akan di-unzip ke dalam satu folder gabungan.
File yang disebut Get-AzureStackLog_Output.log juga dibuat di folder yang berisi file log zip. File ini adalah log dari output perintah, yang dapat digunakan untuk memecahkan masalah selama pengumpulan log. Terkadang file log menyertakan entri
PS>TerminatingError
yang dapat diabaikan dengan aman, kecuali file log yang diharapkan hilang setelah pengumpulan log berjalan.Untuk menyelidiki kegagalan tertentu, log mungkin diperlukan dari lebih dari satu komponen.
- Log sistem dan peristiwa untuk semua mesin virtual infrastruktur dikumpulkan dalam peran VirtualMachines.
- Log sistem dan peristiwa untuk semua host dikumpulkan dalam peran BareMetal.
- Kluster failover dan log peristiwa Hyper-V dikumpulkan dalam peran Storage.
- Log ACS dikumpulkan dalam peran Storage dan ACS.
Catatan
Batas ukuran dan usia diberlakukan pada log yang dikumpulkan karena penting untuk memastikan pemanfaatan ruang penyimpanan Anda yang efisien dan untuk menghindari kebanjiran log. Namun, ketika mendiagnosis masalah, Anda terkadang membutuhkan log yang tidak ada lagi karena batas-batas ini. Dengan demikian, Anda sangat disarankan untuk melepas log Anda ke ruang penyimpanan eksternal (akun penyimpanan di Azure, perangkat penyimpanan tambahan lokal, dll.) setiap 8 hingga 12 jam dan menyimpannya di sana selama 1 - 3 bulan, tergantung kebutuhan Anda. Anda juga harus memastikan lokasi penyimpanan ini dienkripsi.
Invoke-AzureStackOnDemandLog
Anda dapat menggunakan cmdlet Invoke-AzureStackOnDemandLog untuk menghasilkan log sesuai permintaan untuk peran tertentu (lihat daftar di akhir bagian ini). Log yang dihasilkan oleh cmdlet ini tidak ada secara default dalam bundel log yang Anda terima saat Anda menjalankan cmdlet Get-AzureStackLog. Selain itu, disarankan agar Anda mengumpulkan log ini hanya jika diminta oleh tim dukungan Microsoft.
Saat ini, Anda dapat menggunakan parameter -FilterByRole
untuk memfilter koleksi log dengan peran berikut:
- OEM
- NC
- SLB
- Gateway
Contoh pengumpulan log diagnostik sesuai permintaan
$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
}
Cara kerja pengumpulan log diagnostik menggunakan PEP
Alat diagnostik Azure Stack Hub membantu membuat pengumpulan log menjadi mudah dan efisien. Diagram berikut menunjukkan cara kerja alat diagnostik:
Pengumpul Jejak
Pengumpul Jejak diaktifkan secara default dan berjalan terus menerus di latar belakang untuk mengumpulkan semua log Pelacakan Peristiwa untuk Windows (ETW) dari layanan komponen Azure Stack Hub. Log ETW disimpan dalam pangsa lokal umum dengan batas usia lima hari. Setelah batas ini tercapai, file terlama dihapus saat yang baru dibuat. Ukuran maksimum default yang diizinkan untuk setiap file adalah 200 MB. Pemeriksaan ukuran terjadi setiap 2 menit, dan jika file saat ini >= 200 MB, file akan disimpan dan file baru dibuat. Ada juga batas 8 GB pada total ukuran file yang dihasilkan per sesi peristiwa.
Get-AzureStackLog
Cmdlet PowerShell Get-AzureStackLog dapat digunakan untuk mengumpulkan log dari semua komponen di lingkungan Azure Stack Hub. Ini menyimpannya dalam file zip di lokasi yang ditentukan pengguna. Jika tim dukungan teknis Azure Stack Hub memerlukan log Anda untuk membantu memecahkan masalah, mereka mungkin meminta Anda untuk menjalankan Get-AzureStackLog.
Perhatian
File log ini mungkin berisi informasi pengidentifikasi pribadi (PII). Pertimbangkan hal ini sebelum Anda memposting file log apa pun secara publik.
Berikut ini adalah beberapa contoh jenis log yang dikumpulkan:
- Log Penyebaran Azure Stack Hub
- Log peristiwa Windows
- Log Panther
- Log kluster
- Log diagnostik Azure Storage
- Log ETW
File-file ini dikumpulkan dan disimpan dalam pembagian oleh Pengumpul Jejak. Get-AzureStackLog kemudian dapat digunakan untuk mengumpulkannya bila perlu.