Colete logs sob demanda com o módulo do PowerShell Local do Azure em operações independentes.

Este artigo explica como coletar logs sob demanda para operações desconectadas para Azure Local usando o módulo do PowerShell. Você aprenderá a fornecer logs para solução de problemas e suporte quando Azure Local opera no modo desconectado.

Sobre a coleta de logs sob demanda

A coleção de logs sob demanda envolve a coleta manual e o envio de logs de diagnóstico para a Microsoft. Esses logs são armazenados em um banco de dados Azure Data Explorer que Suporte da Microsoft pode acessar para ajudar a investigar e resolver seus problemas relatados. Os dados de diagnóstico coletados são mantidos por até 30 dias e gerenciados de acordo com as práticas de privacidade padrão da Microsoft.

A coleta de logs ajuda a diagnosticar e solucionar problemas em operações desconectadas para Azure Local. Use esse recurso para enviar logs para Suporte da Microsoft. Os logs incluem detalhes sobre o ambiente de operações desconectado, como o ponto de extremidade de gerenciamento, o tempo de execução integrado e outros componentes. Durante a coleta de logs, erros podem ocorrer devido a limitações ambientais ou de ferramentas.

Importante

Antes de usar a coleção de logs diretos sob demanda, conclua os pré-requisitos e configure a observabilidade com o Set-ApplianceObservabilityConfiguration cmdlet. Se você ignorar essas etapas, poderá ver um erro.

Pré-requisitos

Antes de configurar a observabilidade para seu dispositivo de Azure Local, verifique se você:

  • Implantar Operações Desconectadas para o Azure Local
  • Configurar a observabilidade para diagnóstico e suporte
  • Tenha espaço em disco suficiente para logs:
    • Para a coleção de logs típica: pelo menos 25 GB de espaço livre.
    • Para pacotes de log maiores, como logs de sistema:
      • Os logs compactados podem exceder 25 GB
      • Os logs descompactados exigem mais espaço.
    • Como regra, mantenha pelo menos o dobro do tamanho do log compactado disponível. Por exemplo:
      • Para um pacote de log compactado de 10 GB, mantenha pelo menos 20 GB livres.
      • Para um pacote compactado de 25 GB, mantenha pelo menos 50 GB livres.

Observação

Carregue logs em lotes pequenos para reduzir o tempo de processamento e o uso do disco. Antes de começar, verifique o espaço em disco para evitar falhas devido ao armazenamento baixo.

Workflow

Para coletar logs sob demanda, siga os passos abaixo:

Configurar a observabilidade para diagnóstico e suporte

Recomendamos que você configure a observabilidade para obter a telemetria e os logs para a sua primeira implantação. Isso permite que Azure Local Desconectado se conecte ao Azure por meio do registro do Arc e use uma identidade gerenciada para carregar logs, métricas e telemetria da VM do dispositivo.

Observação

Configuração de observabilidade não se aplica se você planeja operar um sistema desconectado, pois telemetria e diagnóstico exigem conectividade.

Aqui está uma lista de parâmetros necessários:

  • Grupo de recursos do Azure: crie um grupo de recursos no Azure para o appliance, como azure-disconnectedoperations.
  • Service Principal Name (SPN): crie um SPN que tenha direitos de Azure Connected Machine Resource Administrator ao grupo de recursos.
  • Credenciais da Entidade de Serviço: obtenha a ID da entidade de serviço (appId) e o segredo (senha).
  • Subscription: identifique sua assinatura Azure.
  • ID do locatário: identifique a ID do locatário.
  • Região do Azure: especifique a região do Azure (local) para implantação.
  • Provedores de recursos necessários: registre esses provedores de recursos em sua assinatura:
    • Microsoft.Compute (para Update Manager e upgrades de extensão)
    • Microsoft.AzureArcData (se você usar o SQL habilitado pelo Arc)
    • Microsoft. HybridConnectivity
    • Microsoft. GuestConfiguration
    • Microsoft. HybridCompute
  • Conectividade: verifique se o dispositivo pode se conectar a Azure para telemetria e diagnóstico.

Siga estas etapas para configurar a observabilidade para diagnóstico e suporte:

  1. Entre no Azure. Use CLI do Azure ou Azure Cloud Shell e execute este comando:

    az login
    
  2. Crie um grupo de recursos usando o mesmo nome usado em DeviceARMResourceURI. Execute este comando:

    az group create -g <ResourceGroupName> -l <AzureRegion>
    
  3. Identifique a nuvem ativa. Execute este comando:

    az cloud list -o table
    
  4. Obtenha as IDs de assinatura e de locatário. Execute este comando:

    az account show
    
  5. Crie uma entidade de serviço. Substitua <SubscriptionID> pela ID da assinatura e execute este comando:

    az ad sp create-for-rbac --name "<SPNName>" --role "Azure Connected Machine Resource Administrator" --scopes /subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroupName>
    

    Exemplo de saída:

    {
      "appId": "<AppId>",
      "displayName": "<SPNName>",
      "password": "<RETRACTED>",
      "tenant": "<RETRACTED>"
    }
    

    Observação

    Use o appID como a ID da Entidade de Serviço e a senha como o Segredo da Entidade de Serviço

  6. Defina a configuração de observabilidade. Altere os valores para corresponder aos detalhes do ambiente.

    $observabilityConfiguration = New-ApplianceObservabilityConfiguration -ResourceGroupName "azure-disconnectedoperations" -TenantId "<TenantID>" -Location "<Location>" -SubscriptionId "<SubscriptionId>" -ServicePrincipalId "<AppId>" -ServicePrincipalSecret ("<Password>"|ConvertTo-SecureString -AsPlainText -Force)
    
    Set-ApplianceObservabilityConfiguration -ObservabilityConfiguration $observabilityConfiguration
    

    Observação

    Se você quiser configurar a observabilidade como parte de uma implantação de inicialização, poderá passar o $observabilityConfiguration parâmetro como um parâmetro para Install-Appliance e ignorar Set-ApplianceObservabilityConfiguration. Isso simplifica a implantação e ajuda você a obter logs e telemetria como parte da implantação.

  7. Verifique se a observabilidade está configurada.

    Get-ApplianceObservabilityConfiguration
    

Cenários com suporte

Há suporte para os seguintes cenários sob demanda para a coleta de logs:

Cenário para a coleta de logs Como coletar logs
Use a coleta direta de logs sob demanda quando um dispositivo local com operações Azure Local em modo desconectado se conecta à Azure e o ponto de extremidade de gerenciamento para operações desconectadas é acessível. Para coletar logs, execute o Invoke-ApplianceLogCollection cmdlet.
Usar coleta indireta de logs sob demanda quando um dispositivo local usando operações desconectadas para Azure Local não consegue se conectar ao Azure mas ainda pode alcançar o ponto de extremidade de gerenciamento para operações desconectadas. Iniciar a coleção de logs com o Invoke-AzureLocalDisconnectedLogCollection cmdlet.

Depois de executar o Invoke-AzureLocalDisconnectedLogCollection cmdlet, use o Send-DiagnosticData cmdlet para carregar os logs do dispositivo (plano de controle).

Use o cmdlet Send-AzStackHciDiagnosticData para carregar logs de nós do host local do Azure.
Use a coleta de logs de fallback sob demanda quando o ponto de extremidade de gerenciamento para operações desconectadas não estiver acessível ou as operações de runtime integradas em modo desconectado com a máquina virtual (VM) local do Azure estiverem inativas. Colete logs depois de desligar a VM do appliance de operações desconectadas, montar e desbloquear os VHDs (discos rígidos virtuais) e copiar os logs usando o cmdlet Copy-DiagnosticData dos VHDs montados para um local definido pelo usuário. Para obter mais informações, consulte a coleção de logs de fallback do dispositivo para operações desconectadas.

Use o cmdlet Send-DiagnosticData para enviar manualmente dados de diagnóstico para Microsoft.

Para obter uma lista de recursos sem suporte no modo desconectado, consulte recursos sem suporte no modo desconectado.

Importante

Não execute o cmdlet Send-DiagnosticData em nós de host local do Azure. As operações desconectadas para o plano de controle do Azure Local gerenciam esses nós. Execute o cmdlet de um computador Windows com conectividade Azure, como seu laptop ou área de trabalho.

Operações desconectadas para Azure Local quando a VM do dispositivo está conectada ao Azure

Quando a VM do dispositivo estiver conectada ao Azure, envie logs do plano de controle diretamente usando o cmdlet Invoke-ApplianceLogCollection. Você não precisa salvá-los localmente. Para os logs dos nós do host, use o cmdlet Invoke-AzureLocalDisconnectedLogCollection para copiar os logs e, em seguida, envie-os à Microsoft usando o cmdlet Send-AzStackDiagnosticData.

O diagrama a seguir mostra os principais componentes da coleção de logs em operações desconectadas para Azure Local quando a VM do dispositivo está conectada ao Azure:

Diagrama que mostra os principais componentes de um cenário de host conectado em operações desconectadas para Azure Local.

Observação

Para cada implantação, o endereço IP de gerenciamento, o certificado de cliente do endpoint de gerenciamento e a senha do certificado são diferentes. Certifique-se de usar os valores corretos para sua implantação.

Antes de coletar logs em um cenário de operações desconectadas, verifique se você:

  1. Conclua cada um dos pré-requisitos.

  2. Instale o módulo de operações se ele não estiver instalado. Use o Import-Module cmdlet e altere o caminho para corresponder à estrutura da pasta.

    Import-Module "Q:\AzureLocalVHD\OperationsModule\ApplianceFallbackLogging.psm1" -Force
    

    Exemplo de saída:

    PS C:\Users\administrator.s46r2004\Documents> Import-Module "Q:\AzureLocalVHD\OperationsModule\ApplianceFallbackLogging.psm1" -Force
    VERBOSE: [2025-03-26 19:49:12Z][Test-RunningRequirements] PSVersionTable:  
    
    Name                           Value  
    ----                           -----  
    PSVersion                      5.1.26100.2161  
    PSEdition                      Desktop  
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}  
    BuildVersion                   10.0.26100.2161  
    CLRVersion                     4.0.30319.42000  
    WSManStackVersion              3.0  
    PSRemotingProtocolVersion      2.3  
    SerializationVersion           1.1.0.1  
    
    VERBOSE: See Readme.md for directions on how to use this module.
    
  3. Depois de copiar o módulo Operações Desconectadas para o caminho da pasta, desbloqueie os arquivos.

    Get-ChildItem <disconnected operations module folder path> -Recurse | Unblock-File
    

    Observação

    Use Windows PowerShell com permissão de Administrador para executar o upload de log. O PowerShell 7 e o Windows PowerShell ISE não são suportados para carregamento de logs.

  4. Instale o módulo Azure Local necessário para a coleção de logs.

    Import-Module "<Azure Local module folder path>\AzureLocal.Orchestration.psd1" -Force
    

    Exemplo de saída:

    PS C:\Users\administrator.s46r2004\Documents> Import-Module "Q:\AzureLocalVHD\Azurelocal.Orchestration\AzureLocal.Orchestration.psd1" -Force
    
    CommandType        Name                                              Version        Source
    -----------        ----                                              -------        ------
    Function           Invoke-AzureLocalDisconnectedLogCollection        2602.1....    AzureLocal.Orchestration
    Function           Invoke-AzureLocalEnvironmentValidation            2602.1....    AzureLocal.Orchestration
    
  5. Use operações desconectadas Deploy para Azure Local para o ponto de extremidade de gerenciamento.

    • Identifique o endereço IP do ponto de extremidade de gerenciamento.

    • Identifique o certificado do cliente de gerenciamento usado para autenticar com as operações desconectadas do ponto de extremidade de gerenciamento local do Azure.

    • Configure o contexto do cliente do endpoint de gerenciamento. Execute este script:

      # Replace with your actual values
      $certPassword = Read-Host -AsSecureString "Management endpoint client certificate password"
      $context = Set-DisconnectedOperationsClientContext -ManagementEndpointClientCertificatePath "<Management Endpoint Client Cert Path>" -ManagementEndpointClientCertificatePassword $certPassword -ManagementEndpointIpAddress "<Management Endpoint IP address>"
      
  6. Coletar logs do plano de controle. Execute este comando em um sistema que pode acessar a VM do dispositivo (geralmente a mesma Hyper-V host):

    Invoke-ApplianceLogCollection
    

    Esse comando coleta logs da VM do dispositivo e os envia diretamente para Microsoft suporte.

    Exemplo:

    $fromDate = (Get-Date).AddMinutes(-30)
    $toDate = (Get-Date)
    $operationId = Invoke-ApplianceLogCollection -FromDate $fromDate -ToDate $toDate
    

    Exemplo de saída:

    PS G:\azurelocal\OperationsModule> $fromDate = (Get-Date).AddMinutes(-30)
    PS G:\azurelocal\OperationsModule> $toDate = (Get-Date)
    PS G:\azurelocal\OperationsModule> $operationId = Invoke-ApplianceLogCollection -FromDate $fromDate -ToDate $toDate
    VERBOSE: [2025-11-13 18:33:26Z][Invoke-ApplianceLogCollection] Get health state with URI: https://169.254.53.25:9443/sysconfig/SystemReadiness
    VERBOSE: [2025-11-13 18:33:26Z][Invoke-ScriptsWithRetry][Invoke-ApplianceLogCollection] Executing 'Get health state ...' with timeout 600 seconds ...
    VERBOSE: [2025-11-13 18:33:26Z][Invoke-ScriptsWithRetry][Invoke-ApplianceLogCollection] [CHECK][Attempt 0] for task 'Get health state ...' ...
    VERBOSE: [2025-11-13 18:33:56Z][Invoke-ScriptsWithRetry][Invoke-ApplianceLogCollection] Task 'Get health state ...' succeeded.
    VERBOSE: [2025-11-13 18:33:56Z][Invoke-ScriptsWithRetry][Invoke-ApplianceLogCollection] Executing 'Get system configuration ...' with timeout 600 seconds ...
    VERBOSE: [2025-11-13 18:33:56Z][Invoke-ScriptsWithRetry][Invoke-ApplianceLogCollection] [CHECK][Attempt 0] for task 'Get system configuration ...' ...
    VERBOSE: [2025-11-13 18:34:37Z][Invoke-ScriptsWithRetry][Invoke-ApplianceLogCollection] Task 'Get system configuration ...' succeeded.
    VERBOSE: [2025-11-13 18:34:37Z][Invoke-ApplianceLogCollection] Trigger log collections with parameters: https://169.254.53.25:9443/logs/logCollectionJob/default and body {
        "fromDate":  "2025-11-13T18:03:08.4868568Z",
        "toDate":  "2025-11-13T18:33:13.7369896Z"
    }
    VERBOSE: [2025-11-13 18:34:37Z][Invoke-ScriptsWithRetry][Invoke-ApplianceLogCollection] Executing 'Trigger log collection ...' with timeout 600 seconds ...
    VERBOSE: [2025-11-13 18:34:37Z][Invoke-ScriptsWithRetry][Invoke-ApplianceLogCollection] [CHECK][Attempt 0] for task 'Trigger log collection ...' ...
    VERBOSE: [2025-11-13 18:34:37Z][Invoke-ScriptsWithRetry][Invoke-ApplianceLogCollection] Task 'Trigger log collection ...' succeeded.
    VERBOSE: [2025-11-13 18:34:37Z][Invoke-ApplianceLogCollection] Log collections trigger result: "d5cb5a24-7f35-4fdb-a0a5-f6dbab77a68c"
    
  7. Coletar logs de nós de host.

    Invoke-AzureLocalDisconnectedLogCollection -FromDate (Get-Date).AddHours(-2) `
    -ToDate (Get-Date) `
    -AzureLocalNodeNames @("ALNode01", "ALNode02", "ALNode03") `
    -AzureLocalNodeCredential (Get-Credential -UserName "Admin" -Message "Enter Azure Local node admin credentials") `
    -SaveToPath "\\fileserver\logshare\AzureLocalLogs" `
    -ShareCredential (Get-Credential -UserName "fileuser" -Message "Enter SMB share credentials")
    -SkipAldoLogCollection
    

    Este comando coleta logs do nó do host, incluindo diagnósticos em nível de sistema e de cluster. Para obter mais informações, consulte Invoke-AzureLocalDisconnectedLogCollection.

  8. Carregue logs de nós de host usando a ferramenta de observabilidade autônoma e executando o comando Send-AzStackHciDiagnosticData. Para obter mais informações, consulte Obtenha suporte para problemas de implantação local do Azure.

Operações desconectadas para Azure Local quando a VM do dispositivo não está conectada ao Azure

Em ambientes de operações desconectados, você pode coletar logs do plano de controle (dispositivo) e dos nós de host e carregá-los manualmente com uma ferramenta autônoma.

O diagrama a seguir mostra os principais componentes da coleção de logs em operações desconectadas para ambientes Azure Local quando a VM do dispositivo não está conectada a Azure.

Diagrama que mostra os principais componentes de um cenário de host desconectado em operações desconectadas para Azure Local.

Antes de coletar logs em um cenário de operações desconectadas, verifique se você:

  1. Instale o módulo de operações se ele não estiver instalado. Use o Import-Module cmdlet e altere o caminho para corresponder à estrutura da pasta.

    # Replace with your actual values
    Import-Module "<disconnected operations module folder path>\Azure.Local.DisconnectedOperations.psd1" -Force
    

    Exemplo de saída:

    PS C:\Users\administrator.s46r2004\Documents> Import-Module "Q:\AzureLocalVHD\OperationsModule\Azure.Local.DisconnectedOperations.psd1" -Force  
    VERBOSE: [2025-03-26 19:49:12Z][Test-RunningRequirements] PSVersionTable:  
    
    Name                           Value  
    ----                           -----  
    PSVersion                      5.1.26100.2161  
    PSEdition                      Desktop  
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}  
    BuildVersion                   10.0.26100.2161  
    CLRVersion                     4.0.30319.42000  
    WSManStackVersion              3.0  
    PSRemotingProtocolVersion      2.3  
    SerializationVersion           1.1.0.1  
    
    VERBOSE: See Readme.md for directions on how to use this module.
    
  2. Instale o módulo Azure Local necessário para a coleção de logs.

    Import-Module "<Azure Local module folder path>\AzureLocal.Orchestration.psd1" -Force
    

    Exemplo de saída:

    PS C:\Users\administrator.s46r2004\Documents> Import-Module "Q:\AzureLocalVHD\Azurelocal.Orchestration\AzureLocal.Orchestration.psd1" -Force
    
    CommandType        Name                                              Version        Source
    -----------        ----                                              -------        ------
    Function           Invoke-AzureLocalDisconnectedLogCollection        2602.1....    AzureLocal.Orchestration
    Function           Invoke-AzureLocalEnvironmentValidation            2602.1....    AzureLocal.Orchestration
    
  3. Implante operações desconectadas do Azure Local para o seu ponto de extremidade de gerenciamento.

    • Identifique o endereço IP do ponto de extremidade de gerenciamento.

    • Identifique o certificado do cliente de gerenciamento usado para autenticar nas operações desconectadas pelo ponto de extremidade de gerenciamento do Azure Local.

    • Configure o contexto do cliente do endpoint de gerenciamento. Execute este script:

      # Replace with your actual values
      $certPassword = Read-Host -AsSecureString "Management endpoint client certificate password"
      $context = Set-DisconnectedOperationsClientContext -ManagementEndpointClientCertificatePath "<Management Endpoint Client Cert Path>" -ManagementEndpointClientCertificatePassword $certPassword -ManagementEndpointIpAddress "<Management Endpoint IP address>"
      
  4. Crie um compartilhamento. Execute este comando:

    New-SMBShare -Name `<share-name>` -Path `<path-to-share>` -FullAccess Users -ChangeAccess 'Server Operators'
    
  5. Configure as credenciais para o compartilhamento. Substitua o texto do espaço reservado <share-name> e <path-to-share> com seus próprios valores e execute este comando:

    # Replace with your actual values
    $user = "<username>"
    $pass = "<password>"
    $sec=ConvertTo-SecureString -String $pass -AsPlainText -Force
    $shareCredential = New-Object System.Management.Automation.PSCredential ($user, $sec)
    
  6. Colete os logs do painel de controle e do nó do host. Execute este comando em um sistema que pode acessar a VM do dispositivo (geralmente a mesma Hyper-V host):

    Exemplo:

    #replace with your actual values
    Invoke-AzureLocalDisconnectedLogCollection -FromDate (Get-Date).AddHours(-2) `
    -ToDate (Get-Date) `
    -AzureLocalNodeNames @("ALNode01", "ALNode02", "ALNode03") `
    -AzureLocalNodeCredential (Get-Credential -UserName "Admin" -Message "Enter Azure Local node admin credentials") `
    -SaveToPath "\\fileserver\logshare\AzureLocalLogs" `
    -ShareCredential (Get-Credential -UserName "fileuser" -Message "Enter SMB share credentials")
    

    Esse comando também inclui diagnósticos em níveis de sistema e de cluster. Para obter mais informações, consulte Invoke-AzureLocalDisconnectedLogCollection.

  7. Após a coleta, examine os logs localmente ou carregue-os para a Microsoft usando a ferramenta de observação independente . Há empacotadores específicos do produto em torno de Microsoft.AzureStack.Observability.Standalone.

    Quando você coleta logs usando Invoke-AzureLocalDisconnectedLogCollection, os logs dos nós hospedeiros e do dispositivo são salvos em subpastas separadas na mesma <SaveToPath> localização.

    Observação

    Esses cmdlets devem ser carregados utilizando outros cmdlets.

    Locais de log e comandos de upload:

    • Logs do dispositivo:

      # Logs from disconnected operations appliance for Azure Local infrastructure
      
      <SaveToPath>\ALDO
      

      Carregar logs coletados da appliance VM usando o cmdlet Send-DiagnosticData das operações offline para o módulo do PowerShell Local do Azure.

    • Logs de nó de host (nós de cluster):

      # Logs from Azure Local host nodes
      
      <SaveToPath>\AzureLocal
      

      Carregue os logs coletados dos nós de host do Azure Local usando o cmdlet Send-AzStackHciDiagnosticData. Para obter mais informações, consulte Get support for Azure Local deployment issues.

  8. Opcional. Se o Send-DiagnosticData comando falhar ou for interrompido, use o Clear-DiagnosticPipeline cmdlet.

Métodos de coleção de logs

Coleção direta (conectada a Azure)

Quando o aplicativo puder se conectar ao Azure e o ponto de extremidade de gerenciamento estiver acessível, use o cmdlet Invoke-ApplianceLogCollection.

O cmdlet permite que você especifique um intervalo de tempo para a coleção de logs. Execute esse cmdlet a partir de um host que tenha o módulo do PowerShell necessário importado e que possa acessar o ponto de extremidade de gerenciamento do appliance.

Para obter mais informações, consulte Operações desconectadas para o Azure Local quando a VM do appliance está conectada ao Azure.

Coleção indireta (desconectada do Azure, endpoint acessível)

Quando o appliance não consegue se conectar ao Azure mas pode alcançar o endpoint de gerenciamento, use Invoke-AzureLocalDisconnectedLogCollection cmdlet. Em seguida, carregue os logs com o cmdlet Send-DiagnosticData.

Para obter mais informações, consulte Operações desconectadas no Azure Local quando a VM do dispositivo não está conectada ao Azure.

Coleção fallback (ponto de extremidade não acessível, VM do dispositivo inoperante)

Quando o ponto de extremidade de gerenciamento está indisponível ou a VM do dispositivo está offline:

  • Desligue a VM do dispositivo, monte e desbloqueie VHDs, copie os logs usando o Copy-DiagnosticData cmdlet.
  • Carregue logs manualmente com Send-DiagnosticData cmdlet.

Para obter mais informações sobre a coleta de fallback, consulte coleta de registros de fallback de dispositivos para operações desconectadas.

Invoke-AzureLocalDisconnectedLogCollection

Quando o dispositivo de VM está conectado, esse comando coleta todos os logs do nó do host. Quando desconectado, ele coleta logs do nó do host e do dispositivo de VM.

Este cmdlet:

Capacidades:

  • Coleta logs complementares e específicos de função e logs opcionais do Data Center Definido pelo Software
  • Filtra logs por função, intervalo de datas ou tipo de log.
  • É executado somente no nó em que você executa o comando e ignora os agentes de observabilidade.
  • Salva logs localmente somente quando você usa o -SaveToPath parâmetro.
    • Os logs do dispositivo são salvos em <SaveToPath>\ALDO.
    • Os logs do nó do host são salvos em <SaveToPath>\AzureLocal.
  • Usa o parâmetro SkipAldoLogCollection para coletar logs somente dos nós de host local do Azure e ignorar o plano de controle de operações desconectadas.
  • Dá suporte a credenciais seguras para salvar logs em um compartilhamento de rede.

Send-DiagnosticData

O cmdlet Send-DiagnosticData permite enviar logs para o suporte da Microsoft por meio do pipeline independente.

Este cmdlet requer:

  • Detalhes da assinatura: ResourceGroupName, SubscriptionId, TenantId e RegistrationRegion.
  • Credenciais: por meio da entrada manual ou fornecendo o principal do serviço e a senha apropriados.
  • Executa automaticamente a desinstalação e a limpeza de artefatos após o sucesso.

Revise a seção Configurar a observabilidade para diagnóstico e suporte para as etapas de criação do grupo de recursos e do principal do serviço necessárias para carregar logs.

O pipeline autônomo:

  • Conecta seu computador host a Azure.
  • Direciona todos os logs em uma pasta que você forneceu.
  • Envia-os ao suporte da Microsoft.
    • Se o upload falhar, o cmdlet tentará até três vezes e mostrará os resultados quando concluído.

Observação

Execute Send-DiagnosticData em um computador Windows conectado à Internet.

  • Você não pode executar esse cmdlet em hosts Azure Local porque eles não podem usar Azure como o plano de controle Arc quando as operações desconectadas são configuradas.
  • Quando você executa o cmdlet, a máquina usa o registro Arc para carregar dados para o suporte da Microsoft.
    • RegistrationRegion é o mesmo que Local em ObservabilityConfiguration.

Use esse método quando você não puder coletar logs diretamente da VM do dispositivo, por exemplo:

  • A VM do dispositivo é desconectada do Azure.
  • O ponto de extremidade de gerenciamento não está acessível.

Exemplos de cmdlet Send-DiagnosticData

Aqui estão alguns exemplos de como usar o Send-DiagnosticData cmdlet.

  • Para importar o módulo, execute este comando:

    Import-Module "<disconnected operations module folder path>" -Force
    Send-DiagnosticData -ResourceGroupName <String> -SubscriptionId <String> -TenantId <String> [-RegistrationWithDeviceCode] -RegistrationRegion <String> [-Cloud <String>] -DiagnosticLogPath <String> [-ObsRootFolderPath <String>] [-StampId <Guid>] [<CommonParameters>]
    
  • Para entrar manualmente usando um código do dispositivo, execute este comando:

    Send-DiagnosticData -ResourceGroupName <String> -SubscriptionId <String> -TenantId <String> [-RegistrationWithDeviceCode] -RegistrationRegion <String> [-Cloud <String>] -DiagnosticLogPath <String> [-ObsRootFolderPath <String>] [-StampId <Guid>] [<CommonParameters>]
    
  • Para usar as credenciais do principal de serviço, execute este comando:

    Send-DiagnosticData -ResourceGroupName <String> -SubscriptionId <String> -TenantId <String> -RegistrationWithCredential <PSCredential> -RegistrationRegion <String> [-Cloud <String>] -DiagnosticLogPath <String> [-ObsRootFolderPath <String>] [-StampId <Guid>] [<CommonParameters>]
    

Clear-DiagnosticPipeline

Se Send-DiagnosticData a execução falhar ou for interrompida devido a uma instalação parcial, configuração incorreta ou cancelamento com Ctrl+C, use o Clear-DiagnosticPipeline Cmdlet para limpar ou remover o pipeline.

Este cmdlet:

  • É necessário somente quando a limpeza automática falha ou é interrompida.
  • Usa o mesmo método de autenticação que a chamada original Send-DiagnosticData para desinstalação.

Observação

Se você tiver um agente do Arc for Server conectado antes de executar Send-DiagnosticData, use o -SkipArcForServer parâmetro para preservar sua conexão do Arc pré-existente.

Clear-DiagnosticPipeline - exemplos de cmdlet

Métodos de autenticação com suporte:

  • Autenticação de código do dispositivo:

    Clear-DiagnosticPipeline `
        -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" `
        -TenantId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    
  • PassThrough utilizando o contexto existente do Azure

    Clear-DiagnosticPipeline -PassThrough
    
  • Credenciais da Entidade de Serviço:

    Clear-DiagnosticPipeline -RegistrationWithCredential $credential
    

Opções disponíveis:

  • Preservar a conexão pré-existente do agente Arc:

    Clear-DiagnosticPipeline `
        -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" `
        -TenantId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" `
        -SkipArcForServer
    
  • Ignore a desinstalação e remova os artefatos restantes. A autenticação não é necessária porque nenhuma desinstalação é iniciada:

    Clear-DiagnosticPipeline -SkipUninstall
    

Monitorar a coleção de logs

Use esses comandos para monitorar a coleção de logs.

Get-ApplianceLogCollectionJobStatus

Verifique o status do trabalho de coleta de logs com este cmdlet.

Get-ApplianceLogCollectionJobStatus -OperationId $OperationId

Exemplo de saída:

   PS C:\Users\administrator.s46r2004\Documents> Get-ApplianceLogCollectionJobStatus -OperationId $operationId  
   VERBOSE: [2023-04-09 22:35:29Z] [Invoke-ScriptsWithRetry] Executing 'Get log collection job status ...' with timeout 600 seconds ...  
   VERBOSE: [2023-04-09 22:35:29Z] [Invoke-ScriptsWithRetry] [CHECK] [Attempt 0] for task 'Get log collection job status ...' ...  
   VERBOSE: [2023-04-09 22:35:29Z] [Invoke-ScriptsWithRetry] Task 'Get log collection job status ...' succeeded.  

   StatusRecord                               
   @{Instance Id=<Instance Id>; State=Running; StartTime=0001-01-01T00:00:00; EndTime=0001-01-01T00:00:00}

Get-ApplianceLogCollectionHistory

Obtenha o histórico da coleção de logs com este cmdlet. O parâmetro FromDate de entrada usa o tipo DateTime e define a hora de início da janela de pesquisa de histórico. Se você não especificar o FromDate, o cmdlet pesquisará nas últimas três horas.

   Get-ApplianceLogCollectionHistory -FromDate ((Get-Date).AddHours(-5))

Exemplo de saída:

PS G:\azurelocal\OperationsModule> Get-ApplianceLogCollectionHistory -FromDate ((Get-Date).AddHours(-5))
VERBOSE: [2025-10-17 05:16:14Z][Invoke-ScriptsWithRetry][Get-ApplianceLogCollectionHistory] Executing 'Get log collection job history ...' with timeout 600 seconds ...
VERBOSE: [2025-10-17 05:16:14Z][Invoke-ScriptsWithRetry][Get-ApplianceLogCollectionHistory] [CHECK][Attempt 0] for task 'Get log collection job history ...' ...
VERBOSE: [2025-10-17 05:16:14Z][Invoke-ScriptsWithRetry][Get-ApplianceLogCollectionHistory] Task 'Get log collection job history ...' succeeded.


Name              : b4cffa08-6eb8-4700-a29e-6b5f08824c87
OperationId       : b4cffa08-6eb8-4700-a29e-6b5f08824c87
CorrelationId     : aaaa0000-bb11-2222-33cc-444444dddddd
State             : Succeeded
CollectionTime    : 2025-10-17T01:13:00.273+00:00
CollectionEndTime : 2025-10-17T02:07:52.069+00:00
FromDate          : 2025-10-17T00:39:40.448+00:00
ToDate            : 2025-10-17T01:09:40.453+00:00
Distributed       : True
JobType           : OnDemand
StorageKind       : Azure
Reason            : User initiated
Error             : @{Code=0}
UploadDetails     : @{UploadStartTime=2025-10-17T01:13:00.273+00:00; UploadSizeInMb=6982; UploadNumberOfFiles=710}

Get-ApplianceInstanceConfiguration

Obtenha a configuração da instância do dispositivo, incluindo a ID do selo e a ID do recurso (DeviceARMResourceUri), com esse cmdlet.

   $stampId = (Get-ApplianceInstanceConfiguration).StampId

Exemplo de saída:

    PS G:\azurelocal\> Get-ApplianceInstanceConfiguration
    VERBOSE: [2025-08-06 00:00:35Z][Invoke-ScriptsWithRetry][Get-ApplianceInstanceConfiguration] Executing 'Retrieving system configuration ...' with timeout 300 seconds ...
    VERBOSE: [2025-08-06 00:00:35Z][Invoke-ScriptsWithRetry][Get-ApplianceInstanceConfiguration] [CHECK][Attempt 0] for task 'Retrieving system configuration ...' ...
    VERBOSE: [2025-08-06 00:00:35Z][`ScriptBlock`] Getting system configuration from https://</IP address>:9443/sysconfig/SystemConfiguration
    VERBOSE: [2025-08-06 00:00:35Z][Invoke-ScriptsWithRetry][Get-ApplianceInstanceConfiguration] Task 'Retrieving system configuration ...' succeeded.


    IsAutomaticUpdatePreparation :
    ExternalTimeServers          :
    IsTelemetryOptOut            : False
    ExternalDomainSuffix         : autonomous.cloud.private
    ImageVersion                 : 7.1064750419.18210
    IngressNICPrefixLength       : 24
    DeviceARMResourceUri         : /subscriptions/<Subcription ID>/resourceGroups/<Resource group>/providers/Microsoft.Edge/winfields/7dfd0b
    ConnectionIntent             : Connected
    StampId                      : <Stamp ID>
    IngressNICIPAddress          : 10.0.50.4
    DnsForwarderIpAddress        : 10.10.240.23
    IngressNICDefaultGateway     : 10.0.50.1

Considerações de segurança

Ao coletar logs de diagnóstico em ambientes isolados, você deve entender as proteções de segurança e privacidade incorporadas a esse processo. As considerações a seguir ajudam a garantir que seus dados de diagnóstico permaneçam seguros enquanto ainda fornecem Microsoft com as informações necessárias para suporte efetivo.

  • Em ambientes isolados, use esse método para obter e enviar logs de diagnóstico para a Microsoft.
  • Os logs não são enviados automaticamente, a menos que você os defina claramente para serem enviados.
  • Os logs podem ser salvos localmente e revisados antes do compartilhamento.
  • Os logs podem conter metadados operacionais confidenciais, mas não incluem dados pessoais por padrão.
  • Microsoft não mantém o acesso aos logs, a menos que os clientes os compartilhem diretamente.

Se sua organização impedir que o nó afetado se conecte diretamente à Internet, siga estas etapas:

  1. Para armazenar logs localmente, use a opção -SaveToPath .
  2. Mova os logs para uma VM ou sistema separado que possa se conectar à Internet.
  3. Para carregar logs para Microsoft por meio de canais de suporte seguros, use esse sistema.

Problemas comuns

  • Formato da conta para cobrança indireta:

    • Usar Domínio\Nome de usuário ao executar Invoke-AzureLocalDisconnectedLogCollection.
    • Se você omitir o domínio ou usar um nome de usuário incorreto, a operação de cópia para o compartilhamento falhará com um erro de acesso negado.
  • Execução do Send-DiagnosticData:

    • Deve ser executado em um computador Windows que tenha acesso direto à Internet para Azure.
    • Não execute em sistemas habilitados para Arc ou no appliance que atua como o plano de controle Arc.
  • Copy-DiagnosticData execução:

    • Deve ser executado no host Hyper-V que hospeda sua VM Azure Local desconectada.
  • Requisitos de função:

    • As funções necessárias variam de acordo com o cenário.
    • Para determinar as funções apropriadas, use o get-help cmdlet ou trabalhe com seu contato de suporte.
  • Execução incorreta de comandos:

    • A coleta de logs falhará se os comandos forem executados em:
      • Nós que não são parte da infraestrutura de hospedagem local do Azure.
      • Computadores externos (por exemplo, laptops pessoais) que não hospedam as VMs de dispositivo necessárias no mesmo host Hyper-V.
  • Uso da ferramenta de observabilidade:

    • Execute a ferramenta de observabilidade autônoma no Windows Server.
    • Ambientes sem suporte exigem configuração manual extra.

Recursos sem suporte no modo desconectado

Esses recursos não têm suporte no modo desconectado.

  • Suporte remoto.
  • Coleta de logs baseada em portal.
  • Métricas e streaming de telemetria.

Esse recurso só está disponível no Azure Local 2602 ou posterior.