Come monitorare una macchina virtuale Linux in Azure

Per verificare che le macchine virtuali in Azure funzionino correttamente, è possibile esaminare le metriche delle prestazioni e la diagnostica di avvio. In questa esercitazione si apprenderà come:

  • Abilitare la diagnostica di avvio in una macchina virtuale
  • Visualizzare la diagnostica di avvio
  • Visualizzare le metriche host
  • Abilitare l'estensione della diagnostica nella macchina virtuale
  • Visualizzare le metriche della macchina virtuale
  • Creare avvisi basati sulle metriche di diagnostica
  • Configurare il monitoraggio avanzato

Avviare Azure Cloud Shell

Azure Cloud Shell è una shell Bash gratuita che può essere eseguita direttamente nel portale di Azure. Include l'interfaccia della riga di comando di Azure preinstallata e configurata per l'uso con l'account. Fare clic sul pulsante Cloud Shell nel menu nel riquadro in alto a destra nel portale di Azure.

Cloud Shell

Il pulsante avvia una shell interattiva che è possibile usare per eseguire tutti i passaggi in questo argomento:

Screenshot che mostra la finestra di Cloud Shell nel portale

Se si sceglie di installare e usare l'interfaccia della riga di comando in locale, per questa esercitazione è necessario eseguire l'interfaccia della riga di comando di Azure versione 2.0.4 o successiva. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure 2.0.

Creare una macchina virtuale

Per visualizzare la diagnostica e le metriche in azione, è necessaria una macchina virtuale. Creare prima un gruppo di risorse con az group create. L'esempio seguente crea un gruppo di risorse denominato myResourceGroupMonitor nella località eastus.

az group create --name myResourceGroupMonitor --location eastus

Creare quindi una macchina virtuale con il comando az vm create. L'esempio seguente crea una macchina virtuale denominata myVM:

az vm create \
  --resource-group myResourceGroupMonitor \
  --name myVM \
  --image UbuntuLTS \
  --admin-username azureuser \
  --generate-ssh-keys

Abilitare la diagnostica di avvio

All'avvio delle macchine virtuali Linux, l'estensione diagnostica di avvio acquisisce l'output e lo memorizza nell'Archiviazione di Azure. Questi dati possono essere usati per risolvere i problemi di avvio della macchina virtuale. La diagnostica di avvio non viene abilitata automaticamente quando si crea una macchina virtuale Linux tramite l'interfaccia della riga di comando di Azure.

Prima di abilitare la diagnostica di avvio, è necessario creare un account di archiviazione per l'archiviazione dei log di avvio. Gli account di archiviazione devono avere un nome univoco globale, che abbia tra i 3 e i 24 caratteri e devono contenere solo numeri e lettere minuscole. Creare un account di archiviazione con il comando az storage account create. In questo esempio, viene usata una stringa casuale per creare un nome univoco per l'account di archiviazione.

storageacct=mydiagdata$RANDOM

az storage account create \
  --resource-group myResourceGroupMonitor \
  --name $storageacct \
  --sku Standard_LRS \
  --location eastus

Quando si abilita la diagnostica di avvio, è necessario l'URI per il contenitore di archiviazione BLOB. Il comando seguente esegue una query sull'account di archiviazione per restituire questo URI. Il valore URI viene archiviato nei nomi di variabile bloburi e verrà usato nel passaggio successivo.

bloburi=$(az storage account show --resource-group myResourceGroupMonitor --name $storageacct --query 'primaryEndpoints.blob' -o tsv)

Abilitare ora la diagnostica di avvio con az vm boot-diagnostics enable. Il valore --storage è l'URI del BLOB raccolto nel passaggio precedente.

az vm boot-diagnostics enable \
  --resource-group myResourceGroupMonitor \
  --name myVM \
  --storage $bloburi

Visualizzare la diagnostica di avvio

Quando la diagnostica di avvio è abilitata, ogni volta che si arresta e si avvia la macchina virtuale, in un file log vengono scritte le informazioni sul processo di avvio. Per questo esempio, deallocare prima la macchina virtuale con il comando az vm deallocate come illustrato di seguito:

az vm deallocate --resource-group myResourceGroupMonitor --name myVM

Ora avviare la macchina virtuale con il comando az vm start come illustrato di seguito:

az vm start --resource-group myResourceGroupMonitor --name myVM

È possibile ottenere i dati della diagnostica di avvio per myVM con il comando az vm boot-diagnostics get-boot-log come illustrato di seguito:

az vm boot-diagnostics get-boot-log --resource-group myResourceGroupMonitor --name myVM

Visualizzare le metriche host

Una macchina virtuale Linux è un host dedicato in Azure con cui interagisce. Le metriche per l'host vengono raccolte automaticamente e possono essere visualizzate nel portale di Azure come indicato di seguito:

  1. Nel portale di Azure, fare clic su Gruppi di risorse selezionare myResourceGroupMonitor, quindi selezionare myVM nell'elenco delle risorse.
  2. Per visualizzare le prestazioni della macchina virtuale host, fare clic su Metriche nel pannello della macchina virtuale, quindi selezionare una metrica [Host] in Metriche disponibili.

    Visualizzare le metriche host

Installare l'estensione di diagnostica

Importante

Questo documento descrive la versione 2.3 dell'estensione Diagnostica per Linux, che è stata deprecata. La versione 2.3 sarà supportata fino al 30 giugno 2018.

È invece possibile abilitare la versione 3.0 dell'estensione Diagnostica per Linux. Per altre informazioni, vedere la documentazione.

Sono disponibili le metriche di base host, ma per visualizzare metriche specifiche per la macchina virtuale e più granulari è necessario installare l'estensione Diagnostica di Azure nella macchina virtuale. L'estensione Diagnostica di Azure consente un monitoraggio aggiuntivo e il recupero dei dati di diagnostica dalla macchina virtuale. È possibile visualizzare queste metriche delle prestazioni e creare avvisi in base al funzionamento della macchina virtuale. L'estensione Diagnostica viene installata tramite il portale di Azure come indicato di seguito:

  1. Nel portale di Azure fare clic su Gruppi di risorse, selezionare myResourceGroup e quindi selezionare myVM nell'elenco delle risorse.
  2. Fare clic su Impostazioni di diagnostica. L'elenco mostra che Diagnostica di avvio è già stata abilitata nella sezione precedente. Selezionare la casella di controllo per Metriche di base.
  3. Nella sezione Account di archiviazione individuare e selezionare l'account mydiagdata[1234] creato nella sezione precedente.
  4. Fare clic sul pulsante Salva .

    Visualizzare le metriche di diagnostica

Visualizzare le metriche della macchina virtuale

È possibile visualizzare le metriche della macchina virtuale nello stesso modo in cui sono state visualizzate le metriche della macchina virtuale host:

  1. Nel portale di Azure fare clic su Gruppi di risorse, selezionare myResourceGroup e quindi selezionare myVM nell'elenco delle risorse.
  2. Per visualizzare le prestazioni della macchina virtuale, fare clic su Metriche nel pannello della macchina virtuale, quindi selezionare una metrica di diagnostica in Metriche disponibili.

    Visualizzare le metriche della macchina virtuale

Creare avvisi

È possibile creare avvisi basati sulle metriche di prestazioni specifiche. Gli avvisi possono essere usati, ad esempio, per inviare una notifica quando l'uso medio della CPU supera una determinata soglia o lo spazio su disco disponibile è inferiore a una determinata quantità. Gli avvisi vengono visualizzati nel portale di Azure o possono essere inviati tramite posta elettronica. In risposta agli avvisi generati, è anche possibile attivare i runbook di Automazione di Azure o App per la logica di Azure.

L'esempio seguente crea un avviso per l'uso medio della CPU.

  1. Nel portale di Azure fare clic su Gruppi di risorse, selezionare myResourceGroup e quindi selezionare myVM nell'elenco delle risorse.
  2. Nel pannello della macchina virtuale fare clic su Regole di avviso, quindi fare clic su Aggiungi avviso per la metrica nella parte superiore del pannello degli avvisi.
  3. Inserire un Nome per l'avviso, ad esempio myAlertRule
  4. Per attivare un avviso quando la percentuale di CPU supera 1.0 per cinque minuti, lasciare tutte le altre impostazioni predefinite selezionate.
  5. Facoltativamente, è possibile selezionare la casella per Invia messaggio di posta elettronica a proprietari, collaboratori e lettori per inviare una notifica tramite posta elettronica. L'azione predefinita è di presentare una notifica nel portale.
  6. Fare clic sul pulsante OK.

Monitoraggio avanzato

È possibile eseguire un monitoraggio più approfondito della macchina virtuale tramite Operations Management Suite. Se non è già stato fatto, è possibile iscriversi per avere una versione di prova gratuita di Operations Management Suite.

Quando si ha accesso al portale di OMS, è possibile trovare la chiave e l'identificatore dell'area di lavoro nel pannello Impostazioni. Sostituire e con i valori dell'area di lavoro OMS, quindi è possibile usare az vm extension set per aggiungere l'estensione OMS alla macchina virtuale:

az vm extension set \
  --resource-group myResourceGroupMonitor \
  --vm-name myVM \
  --name OmsAgentForLinux \
  --publisher Microsoft.EnterpriseCloud.Monitoring \
  --version 1.3 \
  --protected-settings '{"workspaceKey": "<workspace-key>"}' \
  --settings '{"workspaceId": "<workspace-id>"}'

Nel pannello Ricerca log del portale OMS si dovrebbe vedere myVM come mostrato nell'immagine seguente:

Pannello OMS

Passaggi successivi

In questa esercitazione le macchine virtuali sono state configurate ed esaminate con il Centro sicurezza di Azure. Si è appreso come:

  • Abilitare la diagnostica di avvio in una macchina virtuale
  • Visualizzare la diagnostica di avvio
  • Visualizzare le metriche host
  • Abilitare l'estensione della diagnostica nella macchina virtuale
  • Visualizzare le metriche della macchina virtuale
  • Creare avvisi basati sulle metriche di diagnostica
  • Configurare il monitoraggio avanzato

Passare all'esercitazione successiva per informazioni sul Centro sicurezza di Azure.