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:

    1. Crie uma conta de armazenamento, seguindo os passos neste artigo.
    2. Abra uma instância do Explorador de Armazenamento do Azure.
    3. Ligue-se à conta de armazenamento criada no passo 1.
    4. Navegue para Contentores de Blobs nos Serviços de Armazenamento.
    5. Selecione Criar um novo contentor.
    6. Clique com o botão direito do rato no novo contentor e, em seguida, clique em Obter Assinatura de Acesso Partilhado.
    7. Selecione uma Hora de Início e Hora de Fim válidas, consoante os seus requisitos.
    8. Para obter as permissões necessárias, selecione Leitura, Escrita e Lista.
    9. Selecione Criar.
    10. 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:

Diagrama de fluxo de trabalho das ferramentas de diagnóstico do Azure Stack Hub

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.