Enviar Azure Stack logs de diagnóstico de Hub usando o ponto de extremidade privilegiado (PEP)Send Azure Stack Hub diagnostic logs by using the privileged endpoint (PEP)

Para executar o Get-AzureStackLog em um sistema integrado, você precisa ter acesso ao ponto de extremidade privilegiado (PEP).To run Get-AzureStackLog on an integrated system, you need to have access to the privileged endpoint (PEP). Aqui está um script de exemplo que você pode executar usando o PEP para coletar logs.Here's an example script you can run using the PEP to collect logs. Se você estiver cancelando uma coleção de logs em execução para iniciar uma nova, aguarde 5 minutos antes de iniciar a nova coleta de logs e insira Remove-PSSession -Session $session .If you are canceling a running log collection to start a new one, please wait 5 minutes Before starting new log collection and enter 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

$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
}

ExemplosExamples

  • Coletar todos os logs de todas as funções:Collect all logs for all roles:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred
    
  • Coletar logs de funções VirtualMachines e BareMetal:Collect logs from VirtualMachines and BareMetal roles:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal
    
  • Colete logs de funções VirtualMachines e BareMetal, com filtragem de data para os arquivos de log das últimas 8 horas:Collect logs from VirtualMachines and BareMetal roles, with date filtering for log files for the past 8 hours:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8)
    
  • Coletar logs de funções VirtualMachines e BareMetal, com filtragem de data para arquivos de log para o período de tempo entre 8 horas atrás e 2 horas atrás:Collect logs from VirtualMachines and BareMetal roles, with date filtering for log files for the time period between 8 hours ago and 2 hours ago:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2)
    
  • Coletar logs de implantações de locatário que executam clusters kubernetes (AKS Engine) autogerenciados no Azure Stack.Collect logs from tenant deployments running self-managed Kubernetes clusters (AKS engine) on Azure Stack. Os logs de kubernetes devem ser armazenados em uma conta de armazenamento de locatário em um formato que permitirá que o intervalo de tempo de coleta seja aplicado a eles também.Kubernetes logs should be stored in a tenant storage account in a format that will enable the collection time range to be applied to them as well.

    Get-AzureStackLog -OutputPath <Path> -InputSasUri "<Blob Service Sas URI>" -FromDate "<Beginning of the time range>" -ToDate "<End of the time range>"
    

    Por exemplo:For example:

    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) 
    
  • Coletar logs para o valor-adicionar RPs.Collect logs for the value-add RPs. A sintaxe geral é:The general syntax is:

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

    Para coletar logs para o Hub IoT:To collect logs for IoT Hub:

    Get-AzureStackLog -FilterByResourceProvider iothubServiceHealth
    

    Para coletar logs para hubs de eventos:To collect logs for Event Hubs:

    Get-AzureStackLog -FilterByResourceProvider eventhub
    

    Para coletar logs para Azure Stack borda:To collect logs for Azure Stack Edge:

    Get-AzureStackLog -FilterByResourceProvide databoxedge
    
  • Colete logs e armazene-os no contêiner de BLOBs do armazenamento do Azure especificado.Collect logs and store them in the specified Azure Storage blob container. A sintaxe geral para essa operação é a seguinte:The general syntax for this operation is as follows:

    Get-AzureStackLog -OutputSasUri "<Blob service SAS Uri>"
    

    Por exemplo:For example:

    Get-AzureStackLog -OutputSasUri "https://<storageAccountName>.blob.core.windows.net/<ContainerName><SAS token>"
    

    Observação

    Esse procedimento é útil para carregar logs.This procedure is useful for uploading logs. Mesmo que você não tenha um compartilhamento SMB acessível ou acesso à Internet, você pode criar uma conta de armazenamento de BLOBs em seu hub de Azure Stack para transferir os logs e, em seguida, usar o cliente para recuperar esses logs.Even if you don't have an SMB share accessible or internet access, you can create a blob storage account on your Azure Stack Hub to transfer the logs, and then use your client to retrieve those logs.

    Para gerar o token SAS para a conta de armazenamento, as seguintes permissões são necessárias:To generate the SAS token for the storage account, the following permissions are required:

    • Acesso ao serviço de armazenamento de BLOBs.Access to the Blob Storage service.
    • Acesso ao tipo de recurso de contêiner.Access to the container resource type.

    Para gerar um valor de URI de SAS a ser usado para o -OutputSasUri parâmetro, siga estas etapas:To generate a SAS Uri value to be used for the -OutputSasUri parameter, follow these steps:

    1. Crie uma conta de armazenamento, seguindo as etapas neste artigo.Create a storage account, following the steps in this article.
    2. Abra uma instância do Gerenciador de Armazenamento do Azure.Open an instance of the Azure Storage Explorer.
    3. Conecte-se à conta de armazenamento criada na etapa 1.Connect to the storage account created in step 1.
    4. Navegue até contêineres de blob em serviços de armazenamento.Navigate to Blob Containers in Storage Services.
    5. Selecione criar um novo contêiner.Select Create a new container.
    6. Clique com o botão direito do mouse no novo contêiner e clique em obter assinatura de acesso compartilhado.Right-click the new container, then click Get Shared Access Signature.
    7. Selecione uma hora de início e uma hora de términoválidas, dependendo de seus requisitos.Select a valid Start Time and End Time, depending on your requirements.
    8. Para as permissões necessárias, selecione ler, gravare listar.For the required permissions, select Read, Write, and List.
    9. Selecione Criar.Select Create.
    10. Você obterá uma assinatura de acesso compartilhado.You'll get a Shared Access Signature. Copie a parte da URL e forneça-a para o -OutputSasUri parâmetro.Copy the URL portion and provide it to the -OutputSasUri parameter.

Considerações sobre parâmetrosParameter considerations

  • Os parâmetros OutputSharePath e OutputShareCredential são usados para armazenar logs em um local especificado pelo usuário.The parameters OutputSharePath and OutputShareCredential are used to store logs in a user specified location.

  • Os parâmetros FromDate e ToDate podem ser usados para coletar logs por um período de tempo específico.The FromDate and ToDate parameters can be used to collect logs for a particular time period. Se esses parâmetros não forem especificados, os logs serão coletados nas últimas quatro horas por padrão.If these parameters aren't specified, logs are collected for the past four hours by default.

  • Use o parâmetro FilterByNode para filtrar os logs por nome do computador.Use the FilterByNode parameter to filter logs by computer name. Por exemplo:For example:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
    
  • Use o parâmetro FilterByLogType para filtrar logs por tipo.Use the FilterByLogType parameter to filter logs by type. Você pode optar por filtrar por arquivo, compartilhamento ou WindowsEvent.You can choose to filter by File, Share, or WindowsEvent. Por exemplo:For example:

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
    
  • Você pode usar o parâmetro TimeOutInMinutes para definir o tempo limite para a coleta de log.You can use the TimeOutInMinutes parameter to set the timeout for log collection. Ele é definido como 150 (2,5 horas) por padrão.It's set to 150 (2.5 hours) by default.

  • A coleta de log de arquivo de despejo está desabilitada por padrão.Dump file log collection is disabled by default. Para habilitá-lo, use o parâmetro de opção IncludeDumpFile .To enable it, use the IncludeDumpFile switch parameter.

  • No momento, você pode usar o parâmetro FilterByRole para filtrar a coleta de log pelas seguintes funções:Currently, you can use the FilterByRole parameter to filter log collection by the following roles:

ACSACS

ACSBlobACSBlob

ACSDownloadServiceACSDownloadService

ACSFabricACSFabric

ACSFrontEndACSFrontEnd

ACSMetricsACSMetrics

ACSMigrationServiceACSMigrationService

ACSMonitoringServiceACSMonitoringService

ACSSettingsServiceACSSettingsService

ACSTableMasterACSTableMaster

ACSTableServerACSTableServer

ACSWacACSWac

ADFSADFS

ApplicationControllerApplicationController

ASAppGatewayASAppGateway

AzureBridgeAzureBridge

AzureMonitorAzureMonitor

BareMetalBareMetal

BRPBRP

ACCA

CacheServiceCacheService

ComputaçãoCompute

CPICPI

CRPCRP

DeploymentMachineDeploymentMachine

DiskRPDiskRP

DomínioDomain

ECEECE

EventAdminRPEventAdminRP

EventRPEventRP

ExternalDNSExternalDNS

FabricRingFabricRing

FabricRingServicesFabricRingServices

FirstTierAggregationServiceFirstTierAggregationService

FRPFRP

GatewayGateway

HealthMonitoringHealthMonitoring

HintingServiceV2HintingServiceV2

HRPHRP

IBCIBC

InfraServiceControllerInfraServiceController

KeyVaultAdminResourceProviderKeyVaultAdminResourceProvider

KeyVaultControlPlaneKeyVaultControlPlane

KeyVaultDataPlaneKeyVaultDataPlane

KeyVaultInternalControlPlaneKeyVaultInternalControlPlane

KeyVaultInternalDataPlaneKeyVaultInternalDataPlane

KeyVaultNamingServiceKeyVaultNamingService

MDMMDM

MetricsAdminRPMetricsAdminRP

MetricsRPMetricsRP

MetricsServerMetricsServer

MetricsStoreServiceMetricsStoreService

MonAdminRPMonAdminRP

MonRPMonRP

NCNC

NonPrivilegedAppGatewayNonPrivilegedAppGateway

NRPNRP

OboServiceOboService

OEMOEM

OnboardRPOnboardRP

PXEPXE

QueryServiceCoordinatorQueryServiceCoordinator

QueryServiceWorkerQueryServiceWorker

SeedRingSeedRing

SeedRingServicesSeedRingServices

SLBSLB

SQLSQL

SRPSRP

ArmazenamentoStorage

StorageControllerStorageController

URPURP

SupportBridgeControllerSupportBridgeController

SupportRingSupportRing

SupportRingServicesSupportRingServices

SupportBridgeRPSupportBridgeRP

UsageBridgeUsageBridge

VirtualMachinesVirtualMachines

WASWAS

WASPUBLICWASPUBLIC

Considerações adicionais sobre os logs de diagnósticoAdditional considerations on diagnostic logs

  • O comando leva algum tempo para ser executado com base na (s) função (ões) que os logs estão coletando.The command takes some time to run based on which role(s) the logs are collecting. Os fatores que contribuem também incluem a duração de tempo especificada para a coleta de log e os números de nós no ambiente de Hub de Azure Stack.Contributing factors also include the time duration specified for log collection, and the numbers of nodes in the Azure Stack Hub environment.

  • À medida que a coleta de log é executada, verifique a nova pasta criada no parâmetro OutputSharePath especificado no comando.As log collection runs, check the new folder created in the OutputSharePath parameter specified in the command.

  • Cada função tem seus logs dentro de arquivos zip individuais.Each role has its logs inside individual zip files. Dependendo do tamanho dos logs coletados, uma função pode ter seus logs divididos em vários arquivos zip.Depending on the size of the collected logs, a role may have its logs split into multiple zip files. Para essa função, se você quiser que todos os arquivos de log sejam descompactados em uma única pasta, use uma ferramenta que possa descompactar em massa.For such a role, if you want to have all the log files unzipped into a single folder, use a tool that can unzip in bulk. Selecione todos os arquivos compactados para a função e selecione extrair aqui.Select all the zipped files for the role and select extract here. Todos os arquivos de log para essa função serão descompactados em uma única pasta mesclada.All the log files for that role will be unzipped into a single merged folder.

  • Um arquivo chamado Get-AzureStackLog_Output. log também é criado na pasta que contém os arquivos de log compactados.A file called Get-AzureStackLog_Output.log is also created in the folder that contains the zipped log files. Esse arquivo é um log da saída do comando, que pode ser usado para solucionar problemas durante a coleta de log.This file is a log of the command output, which can be used for troubleshooting problems during log collection. Às vezes, o arquivo de log inclui PS>TerminatingError entradas que podem ser ignoradas com segurança, a menos que os arquivos de log esperados estejam faltando após a execução da coleta de log.Sometimes the log file includes PS>TerminatingError entries which can be safely ignored, unless expected log files are missing after log collection runs.

  • Para investigar uma falha específica, os logs podem ser necessários de mais de um componente.To investigate a specific failure, logs may be needed from more than one component.

    • Os logs de sistema e de eventos de todas as VMs de infraestrutura são coletados na função VirtualMachines .System and event logs for all infrastructure VMs are collected in the VirtualMachines role.
    • Os logs de sistema e de eventos de todos os hosts são coletados na função BareMetal .System and event logs for all hosts are collected in the BareMetal role.
    • Os logs de eventos do cluster de failover e do Hyper-V são coletados na função de armazenamento .Failover cluster and Hyper-V event logs are collected in the Storage role.
    • Os logs do ACS são coletados nas funções de armazenamento e ACS .ACS logs are collected in the Storage and ACS roles.

Observação

Os limites de tamanho e idade são impostos nos logs coletados, pois são essenciais para garantir a utilização eficiente do espaço de armazenamento e para evitar que eles sejam inundados com os logs.Size and age limits are enforced on the logs collected as it's essential to ensure efficient utilization of your storage space and to avoid getting flooded with logs. No entanto, ao diagnosticar um problema, às vezes você precisa de logs que não existem mais por causa desses limites.However, when diagnosing a problem, you sometimes need logs that don't exist anymore because of these limits. Portanto, é altamente recomendável que você descarregue os 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 mantenha-os lá por 1-3 meses, dependendo de seus requisitos.Thus, it's highly recommended that you offload your logs to an external storage space (a storage account in Azure, an additional on premises storage device, etc.) every 8 to 12 hours and keep them there for 1 - 3 months, depending on your requirements. Você também deve garantir que esse local de armazenamento esteja criptografado.You should also ensure this storage location is encrypted.

Invoke-AzureStackOnDemandLogInvoke-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).You can use the Invoke-AzureStackOnDemandLog cmdlet to generate on-demand logs for certain roles (see the list at the end of this section). Os logs gerados por esse cmdlet não estão presentes por padrão no pacote de log que você recebe ao executar o cmdlet Get-AzureStackLog .The logs generated by this cmdlet aren't present by default in the log bundle you receive when you execute the Get-AzureStackLog cmdlet. Além disso, é recomendável que você colete esses logs somente quando solicitado pela equipe de suporte da Microsoft.Also, it's recommended that you collect these logs only when requested by the Microsoft support team.

No momento, você pode usar o -FilterByRole parâmetro para filtrar a coleta de log pelas seguintes funções:Currently, you can use the -FilterByRole parameter to filter log collection by the following roles:

  • OEMOEM
  • NCNC
  • SLBSLB
  • GatewayGateway

Exemplo de coleta de logs de diagnóstico sob demandaExample of collecting on-demand diagnostic logs

$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

$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 a coleta de log de diagnóstico usando o PEP funcionaHow diagnostic log collection using the PEP works

Azure Stack ferramentas de diagnóstico de Hub ajudam a tornar a coleta de logs fácil e eficiente.Azure Stack Hub diagnostics tools help make log collection easy and efficient. O diagrama a seguir mostra como as ferramentas de diagnóstico funcionam:The following diagram shows how the diagnostics tools work:

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

Coletor de RastreamentosTrace Collector

O Coletor de Rastreamentos é habilitado por padrão e é executado continuamente em segundo plano para coletar todos os logs do ETW (rastreamento de eventos para Windows) de Azure Stack serviços de componentes de Hub.The Trace Collector is enabled by default and runs continuously in the background to collect all Event Tracing for Windows (ETW) logs from Azure Stack Hub component services. Os logs do ETW são armazenados em um compartilhamento local comum com um limite de idade de cinco dias.ETW logs are stored in a common local share with a five-day age limit. Quando esse limite é atingido, os arquivos mais antigos são excluídos à medida que novos são criados.Once this limit is reached, the oldest files are deleted as new ones are created. O tamanho máximo padrão permitido para cada arquivo é de 200 MB.The default maximum size allowed for each file is 200 MB. Uma verificação de tamanho ocorre A cada 2 minutos e, se o arquivo atual é >= 200 MB, ele é salvo e um novo arquivo é gerado.A size check happens every 2 minutes, and if the current file is >= 200 MB, it's saved and a new file generates. Há também um limite de 8 GB no tamanho total do arquivo gerado por sessão de evento.There's also an 8 GB limit on the total file size generated per event session.

Get-AzureStackLogGet-AzureStackLog

O cmdlet Get-AzureStackLog do PowerShell pode ser usado para coletar logs de todos os componentes em um ambiente de Hub de Azure Stack.The PowerShell cmdlet Get-AzureStackLog can be used to collect logs from all the components in an Azure Stack Hub environment. Ele os salva em arquivos zip em um local definido pelo usuário.It saves them in zip files in a user-defined location. Se a equipe de suporte técnico do hub de Azure Stack precisar de seus logs para ajudar a solucionar um problema, ele poderá solicitar que você execute Get-AzureStackLog.If the Azure Stack Hub technical support team needs your logs to help troubleshoot an issue, they may ask you to run Get-AzureStackLog.

Cuidado

Esses arquivos de log podem conter informações de identificação pessoal (PII).These log files may contain personally identifiable information (PII). Leve isso em conta antes de publicar publicamente todos os arquivos de log.Take this into account before you publicly post any log files.

A seguir estão alguns tipos de log de exemplo que são coletados:The following are some example log types that are collected:

  • Logs de implantação de Hub Azure StackAzure Stack Hub deployment logs
  • Logs de eventos do WindowsWindows event logs
  • Logs do PantherPanther logs
  • Logs de clusterCluster logs
  • Logs de diagnóstico de armazenamentoStorage diagnostic logs
  • Logs de ETWETW logs

Esses arquivos são coletados e salvos em um compartilhamento por Coletor de Rastreamentos.These files are collected and saved in a share by Trace Collector. O Get-AzureStackLog pode ser usado para coletá-los quando necessário.Get-AzureStackLog can then be used to collect them when necessary.