Wysyłanie dzienników diagnostycznych usługi Azure Stack Hub przy użyciu uprzywilejowanego punktu końcowego (PEP)
Aby uruchomić Get-AzureStackLog w zintegrowanym systemie, musisz mieć dostęp do uprzywilejowanego punktu końcowego (PEP). Oto przykładowy skrypt, który można uruchomić przy użyciu pep do zbierania dzienników. Jeśli anulujesz uruchomioną kolekcję dzienników, aby rozpocząć nową, odczekaj 5 minut przed rozpoczęciem nowej kolekcji dzienników i wprowadź polecenie 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
}
Przykłady
Zbierz wszystkie dzienniki dla wszystkich ról:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred
Zbieranie dzienników z ról VirtualMachines i BareMetal:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal
Zbierz dzienniki z ról VirtualMachines i BareMetal z filtrowaniem dat dla plików dziennika w ciągu ostatnich 8 godzin:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8)
Zbierz dzienniki z ról VirtualMachines i BareMetal z filtrowaniem dat dla plików dziennika w okresie od 8 godzin temu do 2 godzin temu:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2)
Zbierz dzienniki z wdrożeń dzierżawy z uruchomionymi samodzielnie zarządzanymi klastrami Kubernetes (aparatem AKS) w usłudze Azure Stack. Dzienniki platformy Kubernetes powinny być przechowywane na koncie magazynu dzierżawy w formacie umożliwiającym zastosowanie do nich również zakresu czasu kolekcji.
Get-AzureStackLog -OutputPath <Path> -InputSasUri "<Blob Service Sas URI>" -FromDate "<Beginning of the time range>" -ToDate "<End of the time range>"
Na przykład:
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)
Zbierz dzienniki dla dostawców RPs dodających wartość. Ogólna składnia to:
Get-AzureStackLog -FilterByResourceProvider <<value-add RP name>>
Aby zebrać dzienniki dla dostawcy usługi SQL:
Get-AzureStackLog -FilterByResourceProvider SQLAdapter
Aby zebrać dzienniki dla dostawcy usługi MySQL:
Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
Aby zbierać dzienniki dla usługi Event Hubs:
Get-AzureStackLog -FilterByResourceProvider eventhub
Aby zebrać dzienniki dla usługi Azure Stack Edge:
Get-AzureStackLog -FilterByResourceProvide databoxedge
Zbierz dzienniki i zapisz je w określonym kontenerze obiektów blob usługi Azure Storage. Ogólna składnia dla tej operacji jest następująca:
Get-AzureStackLog -OutputSasUri "<Blob service SAS Uri>"
Na przykład:
Get-AzureStackLog -OutputSasUri "https://<storageAccountName>.blob.core.windows.net/<ContainerName><SAS token>"
Uwaga
Ta procedura jest przydatna do przekazywania dzienników. Nawet jeśli nie masz dostępnego udziału SMB lub dostępu do Internetu, możesz utworzyć konto magazynu obiektów blob w usłudze Azure Stack Hub, aby przenieść dzienniki, a następnie użyć klienta do pobrania tych dzienników.
Aby wygenerować token SAS dla konta magazynu, wymagane są następujące uprawnienia:
- Dostęp do usługi Blob Storage.
- Dostęp do typu zasobu kontenera.
Aby wygenerować wartość identyfikatora URI sygnatury dostępu współdzielonego do użycia dla parametru
-OutputSasUri
, wykonaj następujące kroki:- Utwórz konto magazynu, wykonując kroki opisane w tym artykule.
- Otwórz wystąpienie Eksplorator usługi Azure Storage.
- Połącz się z kontem magazynu utworzonym w kroku 1.
- Przejdź do obszaru Kontenery obiektów blob w usługach magazynu.
- Wybierz pozycję Utwórz nowy kontener.
- Kliknij prawym przyciskiem myszy nowy kontener, a następnie kliknij polecenie Pobierz sygnaturę dostępu współdzielonego.
- Wybierz prawidłowy czas rozpoczęcia i godzinę zakończenia, w zależności od wymagań.
- W przypadku wymaganych uprawnień wybierz pozycję Odczyt, Zapis i Lista.
- Wybierz przycisk Utwórz.
- Otrzymasz sygnaturę dostępu współdzielonego. Skopiuj część adresu URL i podaj ją do parametru
-OutputSasUri
.
Zagadnienia dotyczące parametrów
Parametry OutputSharePath i OutputShareCredential są używane do przechowywania dzienników w określonej lokalizacji użytkownika.
Parametry FromDate i ToDate mogą służyć do zbierania dzienników w określonym przedziale czasu. Jeśli te parametry nie są określone, dzienniki są zbierane domyślnie przez ostatnie cztery godziny.
Użyj parametru FilterByNode , aby filtrować dzienniki według nazwy komputera. Na przykład:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
Użyj parametru FilterByLogType , aby filtrować dzienniki według typu. Możesz filtrować według plików, udziałów lub windowsEvent. Na przykład:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
Możesz użyć parametru TimeOutInMinutes , aby ustawić limit czasu dla zbierania dzienników. Jest ona domyślnie ustawiona na 150 (2,5 godziny).
Zbieranie dzienników plików zrzutu jest domyślnie wyłączone. Aby ją włączyć, użyj parametru switch IncludeDumpFile .
Obecnie można użyć parametru FilterByRole do filtrowania kolekcji dzienników według następujących ról:
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
Domena
ECE
EventAdminRP
EventRP
ExternalDNS
Sieć szkieletowa
FabricRingServices
FirstTierAggregationService
FrP
Brama
Healthmonitoring
HintingServiceV2
HRP
IBC
InfraServiceController
KeyVaultAdminResourceProvider
KeyVaultControlPlane
KeyVaultDataPlane
KeyVaultInternalControlPlane
KeyVaultInternalDataPlane
KeyVaultNamingService
ZARZĄDZANIE URZĄDZENIAMI PRZENOŚNYMI
MetricsAdminRP
MetricsRP
MetricsServer
MetricsStoreService
MonAdminRP
MonRP
NC
NieuprzywilejowanyAppGateway
NRP
OboService
OEM
Dołączanie
Opcja PXE
QueryServiceCoordinator
QueryServiceWorker
SeedRing
SeedRingServices
SLB
SQL
SRP
Storage
Kontroler magazynu
Adres URL
SupportBridgeController
Obsługa
SupportRingServices
SupportBridgeRP
UsageBridge
VirtualMachines
ZOSTAŁ
WASPUBLIC
Dodatkowe zagadnienia dotyczące dzienników diagnostycznych
Uruchomienie polecenia zajmuje trochę czasu na podstawie ról zbieranych przez dzienniki. Czynniki współtworzenia obejmują również czas trwania określony dla zbierania dzienników oraz liczbę węzłów w środowisku usługi Azure Stack Hub.
Po uruchomieniu zbierania dzienników sprawdź nowy folder utworzony w parametrze OutputSharePath określonym w poleceniu .
Każda rola ma swoje dzienniki wewnątrz poszczególnych plików zip. W zależności od rozmiaru zebranych dzienników rola może mieć dzienniki podzielone na wiele plików zip. W przypadku takiej roli, jeśli chcesz, aby wszystkie pliki dziennika zostały rozpakowane w jednym folderze, użyj narzędzia, które może rozpakować zbiorczo. Wybierz wszystkie spakowane pliki dla roli i wybierz pozycję wyodrębnij tutaj. Wszystkie pliki dziennika dla tej roli zostaną rozpakowane w jednym scalanym folderze.
Plik o nazwie Get-AzureStackLog_Output.log jest również tworzony w folderze zawierającym spakowane pliki dziennika. Ten plik jest dziennikiem danych wyjściowych polecenia, których można użyć do rozwiązywania problemów podczas zbierania dzienników. Czasami plik dziennika zawiera
PS>TerminatingError
wpisy, które można bezpiecznie zignorować, chyba że po uruchomieniu zbierania dzienników brakuje oczekiwanych plików dziennika.Aby zbadać określony błąd, dzienniki mogą być potrzebne z więcej niż jednego składnika.
- Dzienniki systemu i zdarzeń dla wszystkich maszyn wirtualnych infrastruktury są zbierane w roli VirtualMachines .
- Dzienniki systemu i zdarzeń dla wszystkich hostów są zbierane w roli BareMetal .
- Dzienniki zdarzeń klastra trybu failover i funkcji Hyper-V są zbierane w roli magazynu .
- Dzienniki usług ACS są zbierane w rolach Usługi Storage i ACS .
Uwaga
Limity rozmiaru i wieku są wymuszane w dziennikach zebranych, ponieważ niezbędne jest zapewnienie wydajnego wykorzystania miejsca do magazynowania i uniknięcie zalewania dzienników. Jednak podczas diagnozowania problemu czasami potrzebne są dzienniki, które już nie istnieją z powodu tych limitów. W związku z tym zdecydowanie zaleca się odciążanie dzienników do zewnętrznego miejsca do magazynowania (konto magazynu na platformie Azure, dodatkowe lokalne urządzenie magazynujące itp.) co 8 do 12 godzin i przechowywanie ich tam przez 1–3 miesiące, w zależności od wymagań. Należy również upewnić się, że ta lokalizacja magazynu jest zaszyfrowana.
Invoke-AzureStackOnDemandLog
Możesz użyć polecenia cmdlet Invoke-AzureStackOnDemandLog , aby wygenerować dzienniki na żądanie dla niektórych ról (zobacz listę na końcu tej sekcji). Dzienniki generowane przez to polecenie cmdlet nie są domyślnie obecne w pakiecie dzienników, który otrzymujesz podczas wykonywania polecenia cmdlet Get-AzureStackLog . Ponadto zaleca się zbieranie tych dzienników tylko wtedy, gdy zażąda ich zespół pomocy technicznej firmy Microsoft.
Obecnie można użyć parametru do filtrowania -FilterByRole
zbierania dzienników według następujących ról:
- OEM
- NC
- SLB
- Brama
Przykład zbierania dzienników diagnostycznych na żądanie
$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 działa zbieranie dzienników diagnostycznych przy użyciu pep
Narzędzia diagnostyczne usługi Azure Stack Hub ułatwiają i wydajne zbieranie dzienników. Na poniższym diagramie przedstawiono sposób działania narzędzi diagnostycznych:
Moduł zbierający ślady
Moduł zbierający śledzenie jest domyślnie włączony i działa w tle w celu zbierania wszystkich dzienników śledzenia zdarzeń systemu Windows (ETW) z usług składników usługi Azure Stack Hub. Dzienniki ETW są przechowywane we wspólnym udziale lokalnym z pięciodniowym limitem wieku. Po osiągnięciu tego limitu najstarsze pliki są usuwane podczas tworzenia nowych plików. Domyślny maksymalny rozmiar każdego pliku to 200 MB. Sprawdzanie rozmiaru odbywa się co 2 minuty, a jeśli bieżący plik wynosi >= 200 MB, zostanie zapisany i zostanie wygenerowany nowy plik. Istnieje również limit 8 GB całkowitego rozmiaru pliku wygenerowanego na sesję zdarzenia.
Get-AzureStackLog
Polecenie cmdlet programu PowerShell Get-AzureStackLog może służyć do zbierania dzienników ze wszystkich składników w środowisku usługi Azure Stack Hub. Zapisuje je w plikach zip w lokalizacji zdefiniowanej przez użytkownika. Jeśli zespół pomocy technicznej usługi Azure Stack Hub potrzebuje Twoich dzienników w celu rozwiązania problemu, może poprosić Cię o uruchomienie polecenia Get-AzureStackLog.
Przestroga
Te pliki dziennika mogą zawierać dane osobowe. Przed publicznym opublikowaniem wszystkich plików dziennika należy wziąć to pod uwagę.
Poniżej przedstawiono przykładowe typy dzienników, które są zbierane:
- Dzienniki wdrażania usługi Azure Stack Hub
- Dzienniki zdarzeń systemu Windows
- Dzienniki Pantera
- Dzienniki klastrów
- Dzienniki diagnostyczne magazynu
- Dzienniki ETW
Te pliki są zbierane i zapisywane w udziale przez moduł zbierający dane śledzenia. Get-AzureStackLog następnie można ich użyć do zbierania ich w razie potrzeby.