Partilhar via


Enviar logs de diagnóstico do Azure Stack Hub usando o ponto de extremidade privilegiado (PEP)

Para executar Get-AzureStackLog em um sistema integrado, você precisa ter acesso ao ponto de extremidade privilegiado (PEP). Aqui está um script de exemplo que você pode executar usando o PEP para coletar logs. Se você estiver cancelando uma coleção de logs em execução para iniciar uma nova, aguarde 5 minutos antes de iniciar uma nova coleta de logs e insira 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 todos os perfis.

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred
    
  • Colete logs de funções VirtualMachines e BareMetal:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal
    
  • Colete registos das funções de Máquinas Virtuais e BareMetal, com filtragem por data para os registos das últimas 8 horas.

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8)
    
  • Colete logs das funções VirtualMachines e BareMetal, com filtragem pela data para os arquivos de log no período de tempo entre 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)
    
  • Colete logs de implantações de locatários que executam clusters Kubernetes autogerenciados (mecanismo AKS) no Azure Stack. Os logs do Kubernetes devem ser armazenados em uma conta de armazenamento de locatário em um formato que permita que o intervalo de tempo de coleta também seja aplicado a eles.

    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) 
    
  • Colete logs para os RPs de valor acrescentado. A sintaxe geral é:

    Get-AzureStackLog -FilterByResourceProvider <<value-add RP name>>
    

    Para coletar logs para SQL RP:

    Get-AzureStackLog -FilterByResourceProvider SQLAdapter
    

    Para recolher logs para o MySQL RP:

    Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
    

    Para recolher registos para o Event Hubs:

    Get-AzureStackLog -FilterByResourceProvider eventhub
    

    Para coletar logs para o Azure Stack Edge:

    Get-AzureStackLog -FilterByResourceProvide databoxedge
    
  • Colete logs 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>"
    

    Observação

    Este procedimento é útil para carregar logs. Mesmo que você não tenha um compartilhamento SMB acessível ou acesso à Internet, você pode criar uma conta de armazenamento de blob em seu Azure Stack Hub para transferir os logs e, em seguida, usar seu cliente para recuperar esses logs.

    Para gerar o token SAS para a conta de armazenamento, as seguintes permissões são necessárias:

    • Acesso ao serviço de Armazenamento em Bloco.
    • Acesso ao tipo de recurso de contêiner.

    Para gerar um valor de Uri SAS a ser usado para o parâmetro -OutputSasUri, execute estas etapas:

    1. Crie uma conta de armazenamento, seguindo as etapas neste artigo.
    2. Abra uma instância do Gerenciador de Armazenamento do Azure.
    3. Conecte-se à conta de armazenamento criada na etapa 1.
    4. Navegue até contêineres de Blob no Storage Services.
    5. Selecione Criar um novo contêiner.
    6. Clique com o botão direito do rato no novo contentor e, em seguida, clique Obter Assinatura de Acesso Partilhado.
    7. Selecione uma Hora de Início válida e Hora de Término, dependendo das suas necessidades.
    8. Para as permissões necessárias, selecione Ler, Escrevere Listar.
    9. Selecione Criar.
    10. Você receberá uma Assinatura de Acesso Compartilhado. Copie a parte da URL e forneça-a para o parâmetro -OutputSasUri.

Considerações sobre parâmetros

  • Os parâmetros OutputSharePath e OutputShareCredential são usados para armazenar logs em um local especificado pelo usuário.

  • Os parâmetros FromDate e ToDate podem ser usados para coletar logs para um período de tempo específico. Se esses parâmetros não forem especificados, os logs serão coletados nas últimas quatro horas por padrão.

  • Use o parâmetro FilterByNode para filtrar logs por nome do computador. Por exemplo:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
    
  • Use o parâmetro FilterByLogType para filtrar logs por tipo. Você pode optar por filtrar por Arquivo, Compartilhamento ou WindowsEvent. Por exemplo:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
    
  • Você pode usar o parâmetro TimeOutInMinutes para definir o tempo limite para a coleta de logs. É definido como 150 (2,5 horas) por padrão.

  • A coleta de log do arquivo de despejo está desabilitada por padrão. Para habilitá-lo, use o parâmetro IncludeDumpFile switch.

  • Atualmente, você pode usar o parâmetro FilterByRole para filtrar a coleta de logs pelas seguintes funções:

ACS

ACSBlob

ACSDownloadService

ACSFabric

ACSFrontEnd

ACSMetrics

Serviço de Migração ACS

Serviço de Monitorização ACS

ACSSettingsService

ACSTableMaster

ACSTableServer

ACSWac

ADFS

ApplicationController

ASAppGateway

AzureBridge

AzureMonitor

BareMetal

BRP

Califórnia

CacheService

Computação

CPI

PCR

DeploymentMachine

DiskRP

Domínio

ECE

Administrador de Eventos RP

EventRP

DNS externo

FabricRing

FabricRingServices

ServiçoDeAgregaçãoDePrimeiroNível

FRP

Porta de entrada

Monitorização da saúde

SugestõesServiceV2

PRH

IBC

InfraServiceController

KeyVaultAdminResourceProvider

KeyVaultControlPlane

KeyVaultDataPlane

KeyVaultInternalControlPlane

KeyVaultInternalDataPlane

KeyVaultNamingService

MDM

MétricasAdminRP

MétricasRP

MetricsServer

MetricsStoreService

MonAdminRP

MonRP

N.º

GatewayDeAplicaçõesNãoPrivilegiadas

NRP

OboService

OEM (Fabricante de Equipamento Original)

OnboardRP

PXE

Coordenador de Serviço de Consulta

QueryServiceWorker

SeedRing

SeedRingServices

SLB

SQL

Preço Recomendado de Venda

Armazenamento

Controlador de armazenamento

Programa de Recuperação Urbana

SuporteBridgeController

SupportRing

SupportRingServices

SuporteBridgeRP

UsageBridge

Máquinas Virtuais

FOI

WASPUBLIC

Considerações adicionais sobre logs de diagnóstico

  • O comando leva algum tempo para ser executado, dependendo de qual(is) função(ões) os logs estão a recolher. Os fatores contribuintes também incluem a duração de tempo especificada para a coleta de logs e o número de nós no ambiente do Azure Stack Hub.

  • À medida que a coleta de log é executada, verifique a nova pasta criada no parâmetro OutputSharePath especificado no comando.

  • Cada função tem seus logs dentro de arquivos zip individuais. Dependendo do tamanho dos logs coletados, uma função pode ter seus logs divididos em vários arquivos zip. Para esta tarefa, se pretender ter todos os ficheiros de log descompactados numa única pasta, utilize uma ferramenta que consiga descompactar vários ficheiros simultaneamente. Selecione todos os arquivos compactados para a função e selecione extrair aqui. Todos os ficheiros de log dessa função serão descompactados numa única pasta combinada.

  • Um arquivo chamado Get-AzureStackLog_Output.log também é criado na pasta que contém os arquivos de log compactados. Esse arquivo é um log da saída do comando, que pode ser usado para solucionar problemas durante a coleta de log. Às vezes, o arquivo de log inclui entradas PS>TerminatingError que podem ser ignoradas com segurança, a menos que os arquivos de log esperados estejam ausentes após a execução da coleta de logs.

  • Para investigar uma falha específica, podem ser necessários logs de mais de um componente.

    • Os logs de sistema e eventos para todas as VMs de infraestrutura são coletados na função VirtualMachines.
    • Os logs de sistema e eventos para todos os hosts são coletados na função BareMetal.
    • Os logs de eventos de Hyper-V e cluster de failover são coletados na função de Armazenamento.
    • Os logs do ACS são recolhidos no Storage e nas funções do ACS.

Observação

Os limites de tamanho e idade são impostos aos logs coletados, pois é essencial para garantir a utilização eficiente do seu espaço de armazenamento e evitar ser inundado com logs. No entanto, ao diagnosticar um problema, às vezes você precisa de logs que não existem mais por causa desses limites. Assim, é altamente recomendável que você descarregue seus logs para um espaço de armazenamento externo (uma conta de armazenamento no Azure, um dispositivo de armazenamento local adicional, etc.) a cada 8 a 12 horas e os mantenha lá por 1 a 3 meses, dependendo de suas necessidades. Você também deve garantir que esse local de armazenamento esteja criptografado.

Invoke-AzureStackOnDemandLog

Você pode usar o cmdlet Invoke-AzureStackOnDemandLog para gerar logs sob demanda para determinadas funções (consulte a lista no final desta seção). Os logs gerados por esse cmdlet não estão presentes por padrão no pacote de logs que você recebe quando executa o cmdlet Get-AzureStackLog. Além disso, é recomendável que você colete esses logs somente quando solicitado pela equipe de suporte da Microsoft.

Atualmente, você pode usar o parâmetro -FilterByRole para filtrar a coleta de logs pelas seguintes funções:

  • OEM (Fabricante de Equipamento Original)
  • N.º
  • SLB
  • Porta de entrada

Exemplo de recolha de registos de diagnóstico sob demanda

$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 logs de diagnóstico utilizando o PEP

As ferramentas de diagnóstico do Azure Stack Hub ajudam a tornar a coleta de logs fácil e eficiente. O diagrama a seguir mostra como as ferramentas de diagnóstico funcionam:

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

Coletor de rastreamento

O Coletor de Rastreamento é habilitado por padrão e é executado continuamente em segundo plano para coletar todos os logs de Rastreamento de Eventos para Windows (ETW) dos serviços de componentes do Azure Stack Hub. Os logs ETW são armazenados numa partilha local comum com um limite de idade de cinco dias. Uma vez atingido esse limite, os arquivos mais antigos são excluídos à medida que novos são criados. O tamanho máximo padrão permitido para cada arquivo é de 200 MB. Uma verificação de tamanho acontece a cada 2 minutos e, se o arquivo atual for >= 200 MB, ele será salvo e um novo arquivo será gerado. Há também um limite de 8 GB no tamanho total do arquivo gerado por sessão de evento.

Get-AzureStackLog

O cmdlet do PowerShell Get-AzureStackLog pode ser usado para coletar logs de todos os componentes em um ambiente do Azure Stack Hub. Ele os salva em arquivos zip em um local definido pelo usuário. Se a equipe de suporte técnico do Azure Stack Hub precisar de seus logs para ajudar a solucionar um problema, eles poderão solicitar que você execute Get-AzureStackLog.

Atenção

Esses arquivos de log podem conter informações de identificação pessoal (PII). Tenha isto em conta antes de publicar quaisquer ficheiros de registo.

A seguir estão alguns exemplos de tipos de log que são coletados:

  • logs de implantação do Azure Stack Hub
  • logs de eventos do Windows
  • Pantera registra
  • Logs de cluster
  • Logs de diagnóstico de armazenamento
  • registos ETW

Esses arquivos são coletados e salvos em um compartilhamento pelo Trace Collector. Get-AzureStackLog pode então ser usado para recolhê-los quando necessário.