Condividi tramite


Monitorare le macchine virtuali con Monitoraggio di Azure: avvisi

Questo articolo fa parte della guida Monitorare le macchine virtuali e i relativi carichi di lavoro in Monitoraggio di Azure. Gli avvisi in Monitoraggio di Azure notificano in modo proattivo dati e modelli interessanti nei dati di monitoraggio. Non esistono regole di avviso preconfigurate per le macchine virtuali, ma è possibile crearne di personalizzate in base ai dati raccolti dall'agente di Monitoraggio di Azure. Questo articolo presenta le informazioni sui concetti di avviso specifici per le macchine virtuali e le regole di avviso comuni usate da altri clienti di Monitoraggio di Azure.

Questo scenario descrive come implementare il monitoraggio completo dell'ambiente Azure e della macchina virtuale ibrida:

Importante

La maggior parte delle regole di avviso ha un costo che dipende dal tipo di regola, dal numero di dimensioni incluse e dalla frequenza con cui viene eseguita. Prima di creare regole di avviso, vedere la sezione Regole di avviso in Prezzi di Monitoraggio di Azure.

Raccolta dati

Le regole di avviso analizzano i dati già raccolti in Azure Monitor. È necessario assicurarsi che i dati vengano raccolti per uno scenario specifico prima di poter creare una regola di avviso. Vedere Monitorare le macchine virtuali con Monitoraggio di Azure: raccogliere i dati per indicazioni sulla configurazione della raccolta dati per diversi scenari, incluse tutte le regole di avviso in questo articolo.

Monitoraggio di Azure offre un set di regole di avviso consigliate che è possibile abilitare rapidamente per qualsiasi macchina virtuale di Azure. Queste regole sono un ottimo punto di partenza per il monitoraggio di base. Tuttavia, queste regole da sole non forniscono avvisi sufficienti per la maggior parte delle implementazioni aziendali per i motivi seguenti:

  • Gli avvisi consigliati si applicano solo alle macchine virtuali di Azure e non alle macchine ibride.
  • Gli avvisi consigliati includono solo metriche host e non metriche guest o log. Queste metriche sono utili per monitorare l'integrità del computer stesso. Offrono tuttavia visibilità minima sui carichi di lavoro e sulle applicazioni in esecuzione nel computer.
  • Gli avvisi consigliati sono associati a singoli computer che creano un numero eccessivo di regole di avviso. Anziché basarsi su questo metodo per ogni computer, vedere Ridimensionare le regole di avviso per le strategie sull'uso di un numero minimo di regole di avviso per più computer.

Tipi di avviso

I tipi più comuni di regole di avviso in Monitoraggio di Azure sono gli avvisi delle metriche e gli avvisi di ricerca log. Il tipo di regola di avviso creata per uno scenario specifico dipende dalla posizione in cui si trovano i dati in base ai quali generare avvisi.

In alcuni casi è possibile che i dati per uno scenario di avviso specifico siano disponibili sia per le metriche che per i log. In questo caso, è necessario determinare il tipo di regola da usare. Si potrebbe anche sfruttare un certo grado di flessibilità a livello di modalità di raccolta di determinati dati in modo che la decisione del tipo di regola di avviso determini anche il metodo di raccolta dati.

Avvisi delle metriche

Usi comuni per gli avvisi delle metriche:

  • Avvisa quando una determinata metrica supera una soglia. Un esempio è quando la CPU di una macchina è in uso intensivo.

Origini dati per gli avvisi delle metriche:

  • Metriche host per le macchine virtuali di Azure, raccolte automaticamente
  • Metriche raccolte dall'agente di Monitoraggio di Azure dal sistema operativo guest

Avvisi di ricerca nei registri

Usi comuni per gli avvisi di ricerca log:

  • Avvisa quando viene trovato un evento o un modello specifico di eventi nel registro eventi di Windows o Syslog. Queste regole di avviso misurano in genere le righe di tabella restituite dalla query.
  • Avviso basato su un calcolo di dati numerici in più computer. Queste regole di avviso misurano in genere il calcolo di una colonna numerica nei risultati della query.

Origini dati per gli avvisi di ricerca log:

  • Tutti i dati raccolti in un'area di lavoro Log Analytics

Regole di avviso di ridimensionamento

Poiché potrebbero essere presenti molte macchine virtuali che richiedono lo stesso tipo di monitoraggio, non è necessario creare singole regole di avviso per ognuna di esse. Si potrebbe inoltre decidere di assicurarsi che siano disponibili strategie diverse per limitare il numero di regole di avviso da gestire, a seconda del tipo di regola. Ognuna di queste strategie dipende dalla conoscenza della risorsa di destinazione della regola di avviso.

Regole di allerta metriche

Le macchine virtuali supportano regole di avviso delle metriche di più risorse, come descritto in Monitorare più risorse. Questa funzionalità consente di creare un'unica regola di avviso delle metriche applicabile a tutte le macchine virtuali in un gruppo di risorse o una sottoscrizione all'interno della stessa area.

Iniziare con gli avvisi consigliati e creare una regola corrispondente per ognuna usando la sottoscrizione o un gruppo di risorse come risorsa di destinazione. Se sono presenti computer in più aree, è necessario creare regole duplicate per ogni area.

Mano a mano che vengono individuati i requisiti per più regole di avviso sulle metriche, seguire questa stessa strategia utilizzando un abbonamento o un gruppo di risorse come risorsa target per:

  • Ridurre al minimo il numero di regole di avviso che è necessario gestire.
  • Assicurarsi che le regole vengano applicate automaticamente a tutti i nuovi computer.

Regole di avviso per ricerca log

Se si imposta la risorsa di destinazione di una regola di avviso di ricerca log su un computer specifico, le query sono limitate ai dati associati a tale computer, che fornisce singoli avvisi. Questa disposizione richiede una regola di avviso distinta per ogni computer.

Se si imposta la risorsa di destinazione di una regola di avviso di ricerca log su un'area di lavoro Log Analytics, è possibile accedere a tutti i dati nell'area di lavoro. Per questo motivo, è possibile inviare avvisi sui dati di tutti i computer del gruppo di lavoro con un'unica regola. Questa disposizione consente di creare un unico avviso per tutti i computer. È quindi possibile usare le dimensioni per creare un avviso distinto per ogni computer.

Ad esempio, è possibile generare un avviso quando viene creato un evento di errore nel registro eventi di Windows da qualsiasi computer. È prima necessario creare una regola di raccolta dati come descritto in Raccogliere dati con l'agente di Monitoraggio di Azure per inviare questi eventi alla tabella Event nell'area di lavoro Log Analytics. Creare quindi una regola di avviso che esegua una query in questa tabella usando l'area di lavoro come risorsa di destinazione e la condizione illustrata nell'immagine seguente.

La query restituisce un record per qualsiasi messaggio di errore in qualsiasi computer. Usare l'opzione Dividi per dimensioni e specificare _ResourceId per indicare alla regola di creare un avviso per ogni computer se nei risultati vengono restituiti più computer.

Screenshot che mostra una nuova regola di avviso di ricerca log con dimensioni suddivise.

Dimensioni

A seconda delle informazioni che si desidera includere nell'avviso, potrebbe essere necessario suddividere usando dimensioni diverse. In questo caso, assicurarsi che le dimensioni necessarie vengano proiettate nella query usando l'operatore project o extend. Impostare il campo Colonna ID risorsa su Non suddividere e includere tutte le dimensioni significative nell'elenco. Assicurarsi che l'opzione Includi tutti i valori futuri sia selezionata in modo che venga incluso qualsiasi valore restituito dalla query.

Screenshot che mostra una nuova regola di avviso di ricerca nei log, suddivisa per più dimensioni.

Soglie dinamiche

Un altro vantaggio dell'uso delle regole di avviso di ricerca log è la possibilità di includere logica complessa nella query per determinare il valore soglia. È possibile impostare la soglia come predefinita, applicarla a tutte le risorse o calcolarla dinamicamente in base a un campo o un valore calcolato. La soglia viene applicata alle risorse solo in base a condizioni specifiche. Ad esempio, è possibile creare un avviso basato sulla memoria disponibile, ma solo per i computer con una determinata quantità di memoria totale.

Regole di avviso comuni

Nella sezione seguente sono elencate le regole di avviso comuni per le macchine virtuali in Monitoraggio di Azure. I dettagli relativi agli avvisi delle metriche e agli avvisi di ricerca log vengono forniti per ogni regola. Per indicazioni sul tipo di avviso da usare, vedere Tipi di avviso. Se non si ha familiarità con il processo di creazione delle regole di avviso in Monitoraggio di Azure, vedere le istruzioni per creare una nuova regola di avviso.

Nota

I dettagli degli avvisi di ricerca log forniti qui utilizzano i dati raccolti con VM Insights, che fornisce un set di contatori di prestazioni comuni per il sistema operativo client. Questo nome non dipende dal tipo di sistema operativo.

Disponibilità della macchina

Uno dei requisiti di monitoraggio più comuni per una macchina virtuale consiste nel creare un avviso in caso di interruzione dell'esecuzione. Il metodo migliore consiste nel creare una regola di avviso delle metriche in Monitoraggio di Azure usando la metrica di disponibilità della macchina virtuale. Per una procedura dettagliata su questa metrica, vedere Creare una regola di avviso di disponibilità per la macchina virtuale di Azure.

Una regola di avviso è limitata a un segnale del log attività. Pertanto, per ogni condizione, è necessario creare una regola di avviso. Ad esempio, "avvia o arresta la macchina virtuale" richiede due regole di avviso. Tuttavia, per ricevere un avviso al riavvio della macchina virtuale, è necessaria una sola regola di avviso.

Come descritto in Ridimensionamento delle regole di avviso, creare una regola di avviso di disponibilità usando una sottoscrizione o un gruppo di risorse come risorsa di destinazione. La regola si applica a più macchine virtuali, incluse le nuove macchine create dopo la regola di avviso.

Heartbeat dell'agente

L'heartbeat dell'agente è leggermente diverso dall'avviso di indisponibilità del computer perché si basa sull'agente di Monitoraggio di Azure per l'invio di un heartbeat. L'heartbeat dell'agente può avvisare se il computer è in esecuzione, ma l'agente non risponde.

Regole di allerta metriche

Una metrica denominata Heartbeat è inclusa in ogni area di lavoro Log Analytics. Ogni macchina virtuale connessa all'area di lavoro invia un valore metrico di heartbeat ogni minuto. Poiché il computer è una dimensione nella metrica, è possibile generare un avviso quando un computer non riesce a inviare un heartbeat. Impostare Tipo di aggregazione su Conteggio e il valore Soglia per corrispondere alla Granularità di valutazione.

Regole di avviso per ricerca log

Gli avvisi di ricerca log usano la tabella Heartbeat, che deve ricevere un record heartbeat ogni minuto da ogni computer.

Usare una regola con la query seguente:

Heartbeat
| summarize TimeGenerated=max(TimeGenerated) by Computer, _ResourceId
| extend Duration = datetime_diff('minute',now(),TimeGenerated)
| summarize MinutesSinceLastHeartbeat = min(Duration) by Computer, bin(TimeGenerated,5m), _ResourceId

Avvisi della CPU

Questa sezione descrive gli avvisi della CPU.

Regole di allerta metriche

Destinazione Metrica
Padrone di casa / Ospitante / Conduttore (depending on the intended context) Percentuale CPU (inclusi negli avvisi consigliati)
Guest Windows \Informazioni sul processore(_Total)% Tempo processore
Guest Linux cpu/utilizzo_attivo

Regole di avviso per ricerca log

Utilizzo CPU

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Processor" and Name == "UtilizationPercentage"
| summarize CPUPercentageAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId

Avvisi della memoria

Questa sezione descrive gli avvisi relativi alla memoria.

Regole di allerta metriche

Destinazione Metrica
Padrone di casa / Ospitante / Conduttore (depending on the intended context) Byte di memoria disponibili (anteprima) (inclusi negli avvisi consigliati)
Guest Windows Memoria, % byte vincolati in uso. *
\Memoria\Byte Disponibili
Guest Linux mem/available
mem/percentuale_disponibile

Regole di avviso per ricerca log

Nota

Se è necessario specificare l'avviso su un disco, è possibile aggiungerlo alla query: | where parse_json(Tags).["vm.azm.ms/mountId"] == "C:"Memoria disponibile in MB

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Memory" and Name == "AvailableMB"
| summarize AvailableMemoryInMBAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId

Memoria disponibile in percentuale

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Memory" and Name == "AvailableMB"
| extend TotalMemory = toreal(todynamic(Tags)["vm.azm.ms/memorySizeMB"]) | extend AvailableMemoryPercentage = (toreal(Val) / TotalMemory) * 100.0
| summarize AvailableMemoryInPercentageAverage = avg(AvailableMemoryPercentage) by bin(TimeGenerated, 15m), Computer, _ResourceId  

Avvisi del disco

Questa sezione descrive gli avvisi del disco.

Regole di allerta metriche

Destinazione Metrica
Guest Windows \Disco Logico(_Totale)% Spazio Libero
\Disco logico (_Total)\Megabyte liberi
Guest Linux spazio libero su disco
disco/percentuale_libera

Regole di avviso per ricerca log

Disco logico usato: tutti i dischi in ogni computer

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "LogicalDisk" and Name == "FreeSpacePercentage"
| summarize LogicalDiskSpacePercentageFreeAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId 

Disco logico usato: singoli dischi

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "LogicalDisk" and Name == "FreeSpacePercentage"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize LogicalDiskSpacePercentageFreeAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, Disk 

Operazioni di I/O al secondo disco logico

InsightsMetrics
| where Origin == "vm.azm.ms" 
| where Namespace == "LogicalDisk" and Name == "TransfersPerSecond"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize DiskIOPSAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, Disk 

Velocità dei dati dei dischi logici

InsightsMetrics
| where Origin == "vm.azm.ms" 
| where Namespace == "LogicalDisk" and Name == "BytesPerSecond"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize DiskBytesPerSecondAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, Disk 

Avvisi di rete

Regole di allerta metriche

Destinazione Metrica
Padrone di casa / Ospitante / Conduttore (depending on the intended context) Totale rete in ingresso, Totale rete in uscita (incluso negli avvisi consigliati)
Guest Windows \Interfaccia di rete\Byte inviati/sec
\Disco logico (_Total)\Megabyte liberi
Guest Linux spazio libero su disco
disco/percentuale_libera

Regole di avviso per ricerca log

Byte ricevuti dalle interfacce di rete - tutte le interfacce

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "ReadBytesPerSecond"
| summarize BytesReceivedAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId  

Byte ricevuti dalle interfacce di rete - interfacce individuali

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "ReadBytesPerSecond"
| extend NetworkInterface=tostring(todynamic(Tags)["vm.azm.ms/networkDeviceId"])
| summarize BytesReceievedAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, NetworkInterface 

Byte delle interfacce di rete inviati: tutte le interfacce

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "WriteBytesPerSecond"
| summarize BytesSentAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId 

Byte delle interfacce di rete inviati: singole interfacce

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "WriteBytesPerSecond"
| extend NetworkInterface=tostring(todynamic(Tags)["vm.azm.ms/networkDeviceId"])
| summarize BytesSentAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, NetworkInterface 

Eventi di Windows e Linux

L'esempio seguente crea un avviso quando viene creato un evento di Windows specifico. Usa una regola di avviso per la misurazione delle metriche per creare un avviso distinto per ogni computer.

  • Creare una regola di avviso per un evento di Windows specifico. Questo esempio mostra un evento nel registro applicazioni. Specificare una soglia uguale a 0 e violazioni consecutive maggiori di 0.

    Event 
    | where EventLog == "Application"
    | where EventID == 123 
    | summarize NumberOfEvents = count() by Computer, bin(TimeGenerated, 15m)
    
  • Creare una regola di avviso per gli eventi Syslog con una gravità specifica. L'esempio seguente mostra gli eventi di errore nell'autorizzazione. Specificare una soglia uguale a 0 e violazioni consecutive maggiori di 0.

    Syslog
    | where Facility == "auth"
    | where SeverityLevel == "err"
    | summarize NumberOfEvents = count() by Computer, bin(TimeGenerated, 15m)
    

Contatori delle prestazioni personalizzati

  • Creare un avviso per il valore massimo di un contatore.

    Perf 
    | where CounterName == "My Counter" 
    | summarize AggregatedValue = max(CounterValue) by Computer
    
  • Creare un avviso per il valore medio di un contatore.

    Perf 
    | where CounterName == "My Counter" 
    | summarize AggregatedValue = avg(CounterValue) by Computer
    

Passaggi successivi

Analizzare i dati di monitoraggio raccolti per le macchine virtuali