Odesílání diagnostických protokolů služby Azure Stack Hub s využitím privilegovaného koncového bodu
Pokud chcete spustit Get-AzureStackLog v integrovaném systému, musíte mít přístup k privilegovanému koncovému bodu (PEP). Tady je ukázkový skript, který můžete spustit pomocí PRIVILEGOVÉHO BODU ke shromažďování protokolů. Pokud rušíte spuštěné shromažďování protokolů, aby se spustilo nové, počkejte 5 minut, než začnete shromažďovat nové protokoly, a zadejte 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
}
Příklady
Shromážděte všechny protokoly pro všechny role:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred
Shromážděte protokoly z rolí VirtualMachines a BareMetal:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal
Shromážděte protokoly z rolí VirtualMachines a BareMetal s filtrováním dat pro soubory protokolů za posledních 8 hodin:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8)
Shromážděte protokoly z rolí VirtualMachines a BareMetal s filtrováním dat pro soubory protokolu pro časové období před 8 hodinami a 2 hodinami:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2)
Shromážděte protokoly z nasazení tenantů s clustery Kubernetes s vlastní správou (modul AKS) ve službě Azure Stack. Protokoly Kubernetes by se měly ukládat v účtu úložiště tenanta ve formátu, který umožní použít i časový rozsah shromažďování.
Get-AzureStackLog -OutputPath <Path> -InputSasUri "<Blob Service Sas URI>" -FromDate "<Beginning of the time range>" -ToDate "<End of the time range>"
Příklad:
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)
Shromážděte protokoly pro adresy RP s přidanou hodnotou. Obecná syntaxe je:
Get-AzureStackLog -FilterByResourceProvider <<value-add RP name>>
Shromažďování protokolů pro poskytovatele prostředků SQL:
Get-AzureStackLog -FilterByResourceProvider SQLAdapter
Shromažďování protokolů pro poskytovatele prostředků MySQL:
Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
Shromažďování protokolů pro službu Event Hubs:
Get-AzureStackLog -FilterByResourceProvider eventhub
Shromažďování protokolů pro Azure Stack Edge:
Get-AzureStackLog -FilterByResourceProvide databoxedge
Shromážděte protokoly a uložte je do zadaného kontejneru objektů blob služby Azure Storage. Obecná syntaxe této operace je následující:
Get-AzureStackLog -OutputSasUri "<Blob service SAS Uri>"
Příklad:
Get-AzureStackLog -OutputSasUri "https://<storageAccountName>.blob.core.windows.net/<ContainerName><SAS token>"
Poznámka
Tento postup je užitečný při nahrávání protokolů. I když sdílenou složku SMB nemáte přístupnou nebo přístup k internetu, můžete ve službě Azure Stack Hub vytvořit účet úložiště objektů blob pro přenos protokolů a pak tyto protokoly načíst pomocí klienta.
K vygenerování tokenu SAS pro účet úložiště se vyžadují následující oprávnění:
- Přístup ke službě Blob Storage
- Přístup k typu prostředku kontejneru
Pokud chcete vygenerovat hodnotu identifikátoru URI SAS, která se má použít pro
-OutputSasUri
parametr , postupujte takto:- Vytvořte účet úložiště podle kroků v tomto článku.
- Otevřete instanci Průzkumník služby Azure Storage.
- Připojte se k účtu úložiště vytvořenému v kroku 1.
- Přejděte do části Kontejnery objektů blob ve službách úložiště.
- Vyberte Create a new container (Vytvořit nový kontejner).
- Klikněte pravým tlačítkem na nový kontejner a pak klikněte na Získat sdílený přístupový podpis.
- V závislosti na vašich požadavcích vyberte platný čas zahájení a čas ukončení.
- U požadovaných oprávnění vyberte Čtení, Zápis a Seznam.
- Vyberte Vytvořit.
- Získáte sdílený přístupový podpis. Zkopírujte část adresy URL a zadejte ji do parametru
-OutputSasUri
.
Důležité informace o parametrech
Parametry OutputSharePath a OutputShareCredential se používají k ukládání protokolů v umístění zadaném uživatelem.
Parametry FromDate a ToDate je možné použít ke shromažďování protokolů pro určité časové období. Pokud tyto parametry nejsou zadané, protokoly se ve výchozím nastavení shromažďují za poslední čtyři hodiny.
Pomocí parametru FilterByNode můžete filtrovat protokoly podle názvu počítače. Příklad:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
K filtrování protokolů podle typu použijte parametr FilterByLogType . Můžete filtrovat podle file (Soubor), Share (Sdílená složka) nebo WindowsEvent (Událost Windows). Příklad:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
K nastavení časového limitu pro shromažďování protokolů můžete použít parametr TimeOutInMinutes . Ve výchozím nastavení je nastavená na 150 (2,5 hodiny).
Shromažďování souborů s výpisem paměti je ve výchozím nastavení zakázané. Pokud ho chcete povolit, použijte parametr přepínače IncludeDumpFile .
V současné době můžete použít parametr FilterByRole k filtrování shromažďování protokolů podle následujících rolí:
ACS
ACSBlob
ACSDownloadService
ACSFabric
ACSFrontEnd
Metriky ACS
ACSMigrationService
ACSMonitoringService
ACSSettingsService
ACSTableMaster
ACSTableServer
ACSWac
ADFS
Ovládací prvek aplikace
ASAppGateway
AzureBridge
AzureMonitor
BareMetal
BRP
CA
CacheService
Compute
CPI
CRP
DeploymentMachine
DiskRP
Doména
ECE
EventAdminRP
EventRP
ExterníDNS
FabricRing
Topologie FabricRingServices
FirstTierAggregationService
FRP
brána
Healthmonitoring
HintingServiceV2
HRP
IBC
InfraServiceController
KeyVaultAdminResourceProvider
KeyVaultControlPlane
KeyVaultDataPlane
KeyVaultInternalControlPlane
KeyVaultInternalDataPlane
KeyVaultNamingService
MDM
MetricsAdminRP
MetricsRP
MetricsServer
MetricsStoreService
MonAdminRP
MonRP
NC
NeprivilegedAppGateway
NRP
OboService
OEM
OnboardRP
PXE
QueryServiceCoordinator
QueryServiceWorker
Seedring
SeedRingServices
SLB
SQL
SRP
Storage
StorageController
URP
SupportBridgeController
Podpora
SupportRingServices
SupportBridgeRP
UsageBridge
Virtuální počítače
BYL
WASPUBLIC
Další důležité informace o diagnostických protokolech
Spuštění příkazu nějakou dobu trvá na základě toho, které role protokoly shromažďují. Mezi přispívající faktory patří také doba trvání zadaná pro shromažďování protokolů a počet uzlů v prostředí Služby Azure Stack Hub.
Při spuštění shromažďování protokolů zkontrolujte novou složku vytvořenou v parametru OutputSharePath zadaném v příkazu.
Každá role má své protokoly v jednotlivých souborech ZIP. V závislosti na velikosti shromážděných protokolů může mít role své protokoly rozdělené do několika souborů ZIP. Pokud pro takovou roli chcete mít všechny soubory protokolu rozbalené do jedné složky, použijte nástroj, který může rozbalit hromadně. Vyberte všechny komprimované soubory pro roli a sem vyberte Extrahovat. Všechny soubory protokolu pro danou roli se rozbalí do jedné sloučené složky.
Soubor s názvem Get-AzureStackLog_Output.log se vytvoří také ve složce, která obsahuje komprimované soubory protokolu. Tento soubor je protokol výstupu příkazu, který lze použít k řešení potíží při shromažďování protokolů. Někdy soubor protokolu obsahuje
PS>TerminatingError
položky, které lze bezpečně ignorovat, pokud po spuštění shromažďování protokolů chybí očekávané soubory protokolu.K prozkoumání konkrétního selhání můžou být potřeba protokoly z více než jedné komponenty.
- Protokoly systému a událostí pro všechny virtuální počítače infrastruktury se shromažďují v roli VirtualMachines .
- Protokoly systému a událostí pro všechny hostitele se shromažďují v roli BareMetal .
- Cluster s podporou převzetí služeb při selhání a protokoly událostí Hyper-V se shromažďují v roli úložiště .
- Protokoly služby ACS se shromažďují v rolích Úložiště a ACS .
Poznámka
U shromážděných protokolů se vynucují omezení velikosti a stáří, protože je to nezbytné k zajištění efektivního využití prostoru úložiště a zabránění zahlceni protokoly. Při diagnostice problému ale někdy potřebujete protokoly, které už kvůli těmto omezením neexistují. Proto důrazně doporučujeme každých 8 až 12 hodin převést protokoly do externího úložného prostoru (účet úložiště v Azure, další místní úložné zařízení atd.) a uchovávat je tam po dobu 1 až 3 měsíců v závislosti na vašich požadavcích. Měli byste také zajistit, aby toto umístění úložiště bylo šifrované.
Invoke-AzureStackOnDemandLog
K vygenerování protokolů na vyžádání pro určité role můžete použít rutinu Invoke-AzureStackOnDemandLog (viz seznam na konci této části). Protokoly vygenerované touto rutinou se ve výchozím nastavení nezobrazují ve sadě protokolů, kterou obdržíte při spuštění rutiny Get-AzureStackLog . Tyto protokoly se také doporučuje shromažďovat jenom v případě, že o to požádá tým podpory Microsoftu.
V současné době můžete pomocí parametru -FilterByRole
filtrovat shromažďování protokolů podle následujících rolí:
- OEM
- NC
- SLB
- brána
Příklad shromažďování diagnostických protokolů na vyžádání
$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
}
Jak funguje shromažďování diagnostických protokolů pomocí PEP
Diagnostické nástroje služby Azure Stack Hub pomáhají usnadnit a zefektivnit shromažďování protokolů. Následující diagram znázorňuje fungování diagnostických nástrojů:
Kolektor trasování
Kolektor trasování je ve výchozím nastavení povolený a běží nepřetržitě na pozadí, aby shromažďoval všechny protokoly trasování událostí pro Windows ze služeb komponent služby Azure Stack Hub. Protokoly ETW se ukládají ve společné místní sdílené složce s pětidenním věkovým limitem. Po dosažení tohoto limitu se nejstarší soubory odstraní při vytváření nových souborů. Výchozí maximální povolená velikost každého souboru je 200 MB. Kontrola velikosti probíhá každé 2 minuty, a pokud je >aktuální soubor = 200 MB, uloží se a vygeneruje se nový soubor. Existuje také limit 8 GB pro celkovou velikost souboru vygenerovanou na relaci události.
Get-AzureStackLog
Rutinní Get-AzureStackLog PowerShellu je možné použít ke shromažďování protokolů ze všech komponent v prostředí Služby Azure Stack Hub. Uloží je do souborů ZIP do uživatelem definovaného umístění. Pokud tým technické podpory služby Azure Stack Hub potřebuje vaše protokoly, které vám pomůžou s řešením problému, může vás požádat o spuštění rutiny Get-AzureStackLog.
Upozornění
Tyto soubory protokolů můžou obsahovat identifikovatelné osobní údaje. Před veřejným publikováním souborů protokolu to vezměte v úvahu.
Následuje několik příkladů typů protokolů, které se shromažďují:
- Protokoly nasazení služby Azure Stack Hub
- Protokoly událostí Windows
- Protokoly Panther
- Protokoly clusteru
- Diagnostické protokoly úložiště
- Protokoly trasování událostí pro Windows
Kolektor trasování tyto soubory shromažďuje a ukládá do sdílené složky. Get-AzureStackLog pak můžete v případě potřeby použít ke shromažďování.