Enviar registos de diagnósticos do Azure Stack Hub com o ponto final privilegiado (PEP)
Para executar Get-AzureStackLog num sistema integrado, tem de ter acesso ao ponto final privilegiado (PEP). Eis um script de exemplo que pode executar com o PEP para recolher registos. Se estiver a cancelar uma coleção de registos em execução para iniciar uma nova, aguarde 5 minutos Antes de iniciar a nova coleção de registos e introduza 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
}
Exemplos
Recolha todos os registos para todas as funções:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred
Recolher registos de funções VirtualMachines e BareMetal:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal
Recolha registos de funções VirtualMachines e BareMetal, com filtragem de datas para ficheiros de registo nas últimas 8 horas:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8)
Recolha registos de funções VirtualMachines e BareMetal, com filtragem de datas para ficheiros de registo para o período de tempo entre há 8 horas e 2 horas atrás:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2)
Recolha registos de implementações de inquilinos com clusters do Kubernetes autogeridos (motor AKS) no Azure Stack. Os registos do Kubernetes devem ser armazenados numa conta de armazenamento de inquilinos num formato que permita que o intervalo de tempo da coleção também seja aplicado aos mesmos.
Get-AzureStackLog -OutputPath <Path> -InputSasUri "<Blob Service Sas URI>" -FromDate "<Beginning of the time range>" -ToDate "<End of the time range>"
Por exemplo:
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)
Recolher registos para os RPs de valor acrescentado. A sintaxe geral é:
Get-AzureStackLog -FilterByResourceProvider <<value-add RP name>>
Para recolher registos do RP do SQL:
Get-AzureStackLog -FilterByResourceProvider SQLAdapter
Para recolher registos do RP MySQL:
Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
Para recolher registos dos Hubs de Eventos:
Get-AzureStackLog -FilterByResourceProvider eventhub
Para recolher registos do Azure Stack Edge:
Get-AzureStackLog -FilterByResourceProvide databoxedge
Recolha registos e armazene-os no contentor de blobs do Armazenamento do Azure especificado. A sintaxe geral para esta operação é a seguinte:
Get-AzureStackLog -OutputSasUri "<Blob service SAS Uri>"
Por exemplo:
Get-AzureStackLog -OutputSasUri "https://<storageAccountName>.blob.core.windows.net/<ContainerName><SAS token>"
Nota
Este procedimento é útil para carregar registos. Mesmo que não tenha uma partilha SMB acessível ou acesso à Internet, pode criar uma conta de armazenamento de blobs no Azure Stack Hub para transferir os registos e, em seguida, utilizar o cliente para obter esses registos.
Para gerar o token de SAS para a conta de armazenamento, são necessárias as seguintes permissões:
- Acesso ao serviço Armazenamento de Blobs.
- Acesso ao tipo de recurso de contentor.
Para gerar um valor Uri de SAS a ser utilizado para o
-OutputSasUri
parâmetro, siga estes passos:- Crie uma conta de armazenamento, seguindo os passos neste artigo.
- Abra uma instância do Explorador de Armazenamento do Azure.
- Ligue-se à conta de armazenamento criada no passo 1.
- Navegue para Contentores de Blobs nos Serviços de Armazenamento.
- Selecione Criar um novo contentor.
- Clique com o botão direito do rato no novo contentor e, em seguida, clique em Obter Assinatura de Acesso Partilhado.
- Selecione uma Hora de Início e Hora de Fim válidas, consoante os seus requisitos.
- Para obter as permissões necessárias, selecione Leitura, Escrita e Lista.
- Selecione Criar.
- Obterá uma Assinatura de Acesso Partilhado. Copie a parte do URL e forneça-a para o
-OutputSasUri
parâmetro .
Considerações sobre parâmetros
Os parâmetros OutputSharePath e OutputShareCredential são utilizados para armazenar registos numa localização especificada pelo utilizador.
Os parâmetros FromDate e ToDate podem ser utilizados para recolher registos durante um determinado período de tempo. Se estes parâmetros não forem especificados, os registos são recolhidos nas últimas quatro horas por predefinição.
Utilize o parâmetro FilterByNode para filtrar registos pelo nome do computador. Por exemplo:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
Utilize o parâmetro FilterByLogType para filtrar registos por tipo. Pode optar por filtrar por Ficheiro, Partilha ou WindowsEvent. Por exemplo:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
Pode utilizar o parâmetro TimeOutInMinutes para definir o tempo limite da coleção de registos. Está definido como 150 (2,5 horas) por predefinição.
A recolha de registos de ficheiros de informação de falha de sistema está desativada por predefinição. Para a ativar, utilize o parâmetro includeDumpFile switch.
Atualmente, pode utilizar o parâmetro FilterByRole para filtrar a coleção de registos pelas seguintes funções:
ACS
ACSBlob
ACSDownloadService
ACSFabric
ACSFrontEnd
ACSMetrics
ACSMigrationService
ACSMonitoringService
ACSSettingsService
ACSTableMaster
ACSTableServer
ACSWac
ADFS
ApplicationController
ASAppGateway
AzureBridge
AzureMonitor
BareMetal
BRP
CA
CacheService
Computação
CPI
CRP
DeploymentMachine
DiskRP
Domínio
ECE
EventAdminRP
EventRP
ExternalDNS
Recursos de Infraestrutura
FabricRingServices
FirstTierAggregationService
FRP
Gateway
HealthMonitoring
HintingServiceV2
HRP
IBC
InfraServiceController
KeyVaultAdminResourceProvider
KeyVaultControlPlane
KeyVaultDataPlane
KeyVaultInternalControlPlane
KeyVaultInternalDataPlane
KeyVaultNamingService
MDM
MétricasAdminRP
MetricsRP
MetricsServer
MetricsStoreService
MonAdminRP
MonRP
NC
NonPrivilegedAppGateway
NRP
OboService
OEM
OnboardRP
PXE
QueryServiceCoordinator
QueryServiceWorker
SeedRing
SeedRingServices
SLB
SQL
SRP
Armazenamento
StorageController
URP
SupportBridgeController
Suporte
SupportRingServices
SupportBridgeRP
UsageBridge
VirtualMachines
WAS
WASPUBLIC
Considerações adicionais sobre os registos de diagnósticos
O comando demora algum tempo a ser executado com base nas funções que os registos estão a recolher. Os fatores que contribuem também incluem a duração de tempo especificada para a recolha de registos e o número de nós no ambiente do Azure Stack Hub.
À medida que a recolha de registos é executada, verifique a nova pasta criada no parâmetro OutputSharePath especificado no comando .
Cada função tem os respetivos registos dentro de ficheiros zip individuais. Dependendo do tamanho dos registos recolhidos, uma função pode ter os respetivos registos divididos em múltiplos ficheiros zip. Para tal função, se quiser deszipar todos os ficheiros de registo numa única pasta, utilize uma ferramenta que possa deszipar em massa. Selecione todos os ficheiros zipados para a função e selecione extrair aqui. Todos os ficheiros de registo dessa função serão deszipados numa única pasta unida.
Também é criado um ficheiro chamado Get-AzureStackLog_Output.log na pasta que contém os ficheiros de registo zipados. Este ficheiro é um registo da saída do comando, que pode ser utilizado para resolver problemas durante a recolha de registos. Por vezes, o ficheiro de registo inclui
PS>TerminatingError
entradas que podem ser ignoradas em segurança, a menos que os ficheiros de registo esperados estejam em falta após a execução da recolha de registos.Para investigar uma falha específica, podem ser necessários registos de mais do que um componente.
- Os registos de sistemas e eventos para todas as VMs de infraestrutura são recolhidos na função VirtualMachines .
- Os registos do sistema e de eventos para todos os anfitriões são recolhidos na função BareMetal .
- Os registos de eventos do Hyper-V e do cluster de ativação pós-falha são recolhidos na função Armazenamento .
- Os registos ACS são recolhidos nas funções armazenamento e ACS .
Nota
Os limites de tamanho e idade são impostos nos registos recolhidos, uma vez que é essencial garantir uma utilização eficiente do espaço de armazenamento e evitar inundações com registos. No entanto, ao diagnosticar um problema, por vezes precisa de registos que já não existem devido a estes limites. Assim, é altamente recomendado que descarregue os registos para um espaço de armazenamento externo (uma conta de armazenamento no Azure, um dispositivo de armazenamento no local adicional, etc.) a cada 8 a 12 horas e os mantenha lá durante 1 a 3 meses, dependendo dos seus requisitos. Também deve garantir que esta localização de armazenamento está encriptada.
Invoke-AzureStackOnDemandLog
Pode utilizar o cmdlet Invoke-AzureStackOnDemandLog para gerar registos a pedido para determinadas funções (veja a lista no final desta secção). Os registos gerados por este cmdlet não estão presentes por predefinição no pacote de registo que recebe quando executa o cmdlet Get-AzureStackLog . Além disso, recomenda-se que recolha estes registos apenas quando solicitado pela equipa de suporte da Microsoft.
Atualmente, pode utilizar o -FilterByRole
parâmetro para filtrar a recolha de registos pelas seguintes funções:
- OEM
- NC
- SLB
- Gateway
Exemplo de recolha de registos de diagnóstico a pedido
$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
}
Como funciona a recolha de registos de diagnósticos com o PEP
As ferramentas de diagnóstico do Azure Stack Hub ajudam a tornar a recolha de registos fácil e eficiente. O diagrama seguinte mostra como funcionam as ferramentas de diagnóstico:
Recoletor de Rastreio
O Recoletor de Rastreio está ativado por predefinição e é executado continuamente em segundo plano para recolher todos os registos de Rastreio de Eventos para Windows (ETW) a partir dos serviços de componentes do Azure Stack Hub. Os registos ETW são armazenados numa partilha local comum com um limite de idade de cinco dias. Assim que este limite for atingido, os ficheiros mais antigos são eliminados à medida que são criados novos. O tamanho máximo predefinido permitido para cada ficheiro é de 200 MB. Uma verificação de tamanho ocorre a cada 2 minutos e, se o ficheiro atual for >= 200 MB, será guardado e será gerado um novo ficheiro. Também existe um limite de 8 GB no tamanho total do ficheiro gerado por sessão de evento.
Get-AzureStackLog
O cmdlet do PowerShell Get-AzureStackLog pode ser utilizado para recolher registos de todos os componentes num ambiente do Azure Stack Hub. Guarda-os em ficheiros zip numa localização definida pelo utilizador. Se a equipa de suporte técnico do Azure Stack Hub precisar dos seus registos para ajudar a resolver um problema, poderá pedir-lhe para executar Get-AzureStackLog.
Atenção
Estes ficheiros de registo podem conter informações pessoais (PII). Tenha isto em conta antes de publicar publicamente quaisquer ficheiros de registo.
Seguem-se alguns tipos de registo de exemplo que são recolhidos:
- Registos de implementação do Azure Stack Hub
- Registos de eventos do Windows
- Registos do Panther
- Registos do cluster
- Registos de diagnóstico de armazenamento
- Registos ETW
Estes ficheiros são recolhidos e guardados numa partilha pelo Recoletor de Rastreio. Get-AzureStackLog podem ser utilizadas para as recolher quando necessário.