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:
Per iniziare a monitorare la prima macchina virtuale di Azure, vedere Monitorare le macchine virtuali di Azure.
Per abilitare rapidamente un set consigliato di avvisi, vedere Abilitare le regole di avviso consigliate per una macchina virtuale di Azure.
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 controllano i dati già raccolti in Monitoraggio di Azure. È 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.
Abilitare le regole di avviso consigliate
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 l'esecuzione della CPU di un computer consuma molte risorse.
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 per la ricerca di log
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 avviso per le 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.
A mano a mano che vengono individuati i requisiti per più regole di avviso delle metriche, seguire questa stessa strategia usando una sottoscrizione o un gruppo di risorse come risorsa di destinazione 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.
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.
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 come hardcoded la soglia, applicarla a tutte le risorse o calcolarla in modo dinamico in base a un campo o a 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 usano i dati raccolti usando Informazioni dettagliate macchina virtuale, che fornisce un set di contatori delle prestazioni comuni per il sistema operativo client. Questo nome non dipende dal tipo di sistema operativo.
Disponibilità del computer
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, attualmente in anteprima pubblica. 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 avviso per le metriche
Una metrica denominata Heartbeat è inclusa in ogni area di lavoro Log Analytics. Ogni macchina virtuale connessa all'area di lavoro invia un valore della metrica 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 in modo che corrisponda al valore di Granularità 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 avviso per le metriche
Destinazione | Metric |
---|---|
Host | Percentuale CPU (inclusi negli avvisi consigliati) |
Guest Windows | Informazioni sul processore (_totale)% Tempo processore |
Guest Linux | cpu/usage_active |
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 avviso per le metriche
Destinazione | Metric |
---|---|
Host | Byte di memoria disponibili (anteprima) (inclusi negli avvisi consigliati) |
Guest Windows | Memoria, % byte vincolati in uso. * \Memory\Available Bytes |
Guest Linux | mem/available mem/available_percent |
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 avviso per le metriche
Destinazione | Metric |
---|---|
Guest Windows | \Logical Disk(_Total)% Free Space \Logical Disk(_Total)\Free Megabytes |
Guest Linux | disk/free disk/free_percent |
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 avviso per le metriche
Destinazione | Metric |
---|---|
Host | Totale rete in ingresso, Totale rete in uscita (incluso negli avvisi consigliati) |
Guest Windows | \Network Interface\Bytes Sent/sec \Logical Disk(_Total)\Free Megabytes |
Guest Linux | disk/free disk/free_percent |
Regole di avviso per ricerca log
Byte delle interfacce di rete ricevute: 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 delle interfacce di rete ricevuti: singole interfacce
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 autorizzazione degli errori. 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