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:

    1. Buat akun penyimpanan, ikuti langkah-langkah dalam artikel ini.
    2. Buka instans penjelajah Azure Storage.
    3. Koneksi ke akun penyimpanan yang dibuat pada langkah 1.
    4. Navigasi ke Kontainer Blob di Layanan Azure Storage.
    5. Pilih Buat kontainer baru.
    6. Klik kanan kontainer baru, lalu klik Dapatkan Tanda Tangan Akses Bersama.
    7. Pilih Waktu Mulai dan Waktu berakhir yang valid, tergantung pada kebutuhan Anda.
    8. Untuk izin yang diperlukan, pilih Baca, Tulis, dan Daftar.
    9. Pilih Buat.
    10. 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:

Diagram alur kerja alat diagnostik Azure Stack Hub

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.