Come usare la diagnostica di avvio per risolvere i problemi relativi alle macchine virtuali in Azure

Esistono molti motivi per cui una macchina virtuale entra in uno stato non avviabile. Per risolvere i problemi relativi alle macchine virtuali create con il modello di distribuzione di Resource Manager, è possibile utilizzare le funzionalità di debug seguenti: Output console e Supporto screenshot per le macchine virtuali di Azure.

Per le macchine virtuali Linux, è possibile visualizzare l'output del log della console dal portale. Per le Windows e Linux, Azure consente di visualizzare uno screenshot della macchina virtuale dall'hypervisor. Entrambe le funzionalità sono supportate per le macchine virtuali di Azure in tutte le aree geografiche. Nota, gli screenshot e l'output possono richiedere fino a 10 minuti per essere visualizzati nell'account di archiviazione.

Puoi selezionare l'opzione Diagnostica di avvio per visualizzare il registro e lo screenshot.

Manager delle risorse

Errori di avvio comuni

Abilitare la diagnostica in una macchina virtuale creata con il portale di Azure

La procedura seguente è per una macchina virtuale creata utilizzando il modello di distribuzione di Resource Manager.

Nella sezione Monitoraggio della scheda Gestione verificare che diagnostica di avvio sia attivata. Nell'elenco a discesa Account di archiviazione di diagnostica selezionare un account di archiviazione in cui inserire i file di diagnostica.

Creare una macchina virtuale

Nota

La funzionalità diagnostica di avvio non supporta l'account di archiviazione premium o i tipi di account ridondanti Archiviazione di area. Se si usa l'account di archiviazione premium per la diagnostica di avvio, è possibile che venga visualizzato l'errore StorageAccountTypeNotSupported quando si avvia la macchina virtuale.

Distribuzione da un modello di Azure Resource Manager

Se si esegue la distribuzione da un modello di Azure Resource Manager, passare alla risorsa macchina virtuale e aggiungere la sezione del profilo di diagnostica. Imposta l'intestazione della versione API su "2015-06-15" o versione successiva. La versione più recente è "2018-10-01".

{
  "apiVersion": "2018-10-01",
  "type": "Microsoft.Compute/virtualMachines",
  … 

Il profilo di diagnostica consente di selezionare l'account di archiviazione in cui si desidera inserire questi log.

    "diagnosticsProfile": {
    "bootDiagnostics": {
    "enabled": true,
    "storageUri": "[concat('https://', parameters('newStorageAccountName'), '.blob.core.windows.net')]"
    }
    }
    }
}

Per altre informazioni sulla distribuzione delle risorse tramite i modelli, vedere Guida introduttiva: Crearee distribuire modelli di Azure Resource Manager tramite il portale di Azure.

Abilitare la diagnostica di avvio nella macchina virtuale esistente

Per abilitare diagnostica di avvio in una macchina virtuale esistente, attenersi alla seguente procedura:

  1. Accedi al portale di Azuree quindi seleziona la macchina virtuale.

  2. Nella sezione Supporto e risoluzione dei problemi seleziona Diagnostica di avvio, quindi seleziona la Impostazioni impostazioni.

  3. In Impostazioni diagnostica di avvio modificare lo stato su On e nell'elenco a discesa Archiviazione account selezionare un account di archiviazione.

  4. Salvare la modifica.

    Aggiornare la macchina virtuale esistente

Abilitare la diagnostica di avvio tramite l'interfaccia della riga di comando di Azure

È possibile usare l'interfaccia della riga di comando di Azure per abilitare la diagnostica di avvio in una macchina virtuale di Azure esistente. Per ulteriori informazioni, vedere az vm boot-diagnostics.

Fix boot diagnostics screenshot not refreshing

Se si nota che la schermata Diagnostica di avvio per la macchina virtuale di Azure non è obsoleta nel portale di Azure, verificare innanzitutto che il timeout della visualizzazione virtuale sia disabilitato nel sistema operativo guest. Ad esempio, è possibile che l'ora visualizzata nella schermata di accesso non sia obsoleta per una macchina Windows virtuale.

Per Windows, eseguire il comando seguente da CMD con privilegi elevati:

powercfg /setacvalueindex SCHEME_CURRENT SUB_VIDEO VIDEOIDLE 0

Per Linux, eseguire il comando seguente:

xset s off

Per Windows macchine virtuali, l'agente di provisioning di Azure è diverso dall'agente macchina virtuale ed è l'agente di provisioning che esegue il comando precedente durante il provisioning per le macchine virtuali create da un'immagine generalizzata. È possibile vedere la prova di questo se si cerca powercfg in C:\Windows\Panther\WaSetup.xml, che è il registro dell'agente di provisioning. Tuttavia, poiché l'agente di provisioning non deve essere eseguito per le macchine virtuali create da un disco rigido virtuale specializzato, questo è uno scenario in cui è necessario eseguire manualmente il comando powercfg per disabilitare il timeout dello schermo virtuale. Inoltre, è possibile creare una macchina virtuale di Azure particolarmente vecchia da un'immagine generalizzata che potrebbe non essere impostata perché è stata creata prima dell'aggiornamento dell'agente di provisioning per disabilitare il timeout dello schermo virtuale.