Configurare le Data Collection Rule in Azure Monitor per il monitoraggio delle macchine virtuali

Azure Monitor è un servizio di monitoraggio e gestione delle prestazioni offerto da Microsoft Azure, progettato per aiutare gli utenti a raccogliere, analizzare e rispondere ai dati di telemetria provenienti da infrastrutture cloud, applicazioni e servizi. Azure Monitor consente di garantire l’affidabilità e le prestazioni delle applicazioni e delle risorse, offrendo strumenti completi per il monitoraggio in tempo reale e l’analisi.

Le Data Collection Rules (DCR) in Azure Monitor sono configurazioni che definiscono come e quali dati devono essere raccolti e inviati al servizio di monitoraggio di Azure. Sono essenziali per la gestione delle modalità di raccolta e l’instradamento dei dati provenienti da diverse fonti verso i servizi di analisi come Azure Monitor Logs, Azure Metrics, o altri endpoint.

Le Data Collection Rules permettono agli amministratori di configurare in modo centralizzato cosa raccogliere, da quali risorse, e dove questi dati devono essere inviati. In altre parole, fungono da “regole” che determinano come gestire la raccolta dei dati di monitoraggio dalle risorse di Azure.

NOTA: Dal Il 31/8/2024 Log Analytics Agent non è più supportato e, se non lo avete già fatto, dovete procedere alla migrazione verso Azure Monitoring Agent (AMA). Vi rimando alla lettura della guida Migrazione di Log Analytics Agent verso Azure Monitoring Agent per continuare la log collection in Microsoft Sentinel – ICT Power per maggiori dettagli.

 

Architettura delle Data Collection Rules

Le DCR sono un componente fondamentale del nuovo modello di raccolta dati in Azure Monitor, che offre un maggior livello di flessibilità e controllo rispetto ai metodi di raccolta tradizionali. Le DCR vengono utilizzate principalmente per raccogliere dati dai client agent, come l’Azure Monitor Agent (AMA), che sostituisce i precedenti agenti come Log Analytics Agent e Diagnostic Extension.

Le Data Collection Rules sono composte da tre componenti principali:

  • Origini dei Dati (Data Sources): Specificano da dove provengono i dati (ad esempio, eventi di Windows, contatori di performance, file di log personalizzati).
  • Trasformazioni (Transformations): Permettono di manipolare i dati durante la raccolta. Ad esempio, è possibile filtrare i dati o effettuare trasformazioni per modificarli prima di essere inviati alla destinazione.
  • Destinazioni (Destinations): Specificano dove devono essere inviati i dati raccolti, come i Log Analytics Workspaces o un’area di archiviazione di Azure.

A differenza dei vecchi approcci di raccolta, le DCR consentono di definire regole di raccolta in modo più granulare, specificando esattamente i tipi di dati da raccogliere e da quali risorse.

 

Configurazione delle Data Collection Rule (DCR)

In questo scenario ci occuperemo di collezionare le performance delle macchine virtuali Windows ospitate in Azure. non è l’unico scenario supportato. Anzi, vi propongo di leggere la guida Creare Data Collection Rule con Azure ARC e Microsoft Sentinel per il monitoraggio dei sistemi operativi Windows on-premises – ICT Power per capire come analizzare i log anche delle macchine on-premises.

I dati collezionati verranno inviati ad un workspace di Log Analytics. Un Log Analytics Workspace è un elemento centrale del servizio Azure Monitor che funge da repository per raccogliere, archiviare e analizzare i dati di log provenienti da risorse Azure e altre fonti. Si tratta di uno spazio di lavoro dedicato all’interno del quale è possibile gestire tutti i dati di telemetria e di log delle risorse e delle applicazioni che si desidera monitorare.

Nella figura sotto sono mostrate le risorse di Azure che utilizzeremo:

Figura 1: VM e Log Analytics Workspace che verranno utilizzati

Creazione di una Data Collection Rule (DCR)

La creazione di una Data Collection Rule (DCR) è un processo che consente di configurare quali dati raccogliere da risorse specifiche e come instradarli verso le destinazioni come Log Analytics Workspace. Dal portale di Microsoft Azure cercate Azure Monitor e dal nodo Settings scegliete Data Collection Rules. Fate clic su +Create per lanciare il wizard di creazione della regola.

Figura 2: Creazione di una nuova Data Collection Rule (DCR)

Configurate i dettagli di base scegliendo la sottoscrizione, il resource group, la regione di Azure e il nome della regola. È consigliato selezionare la stessa regione delle risorse per ottimizzare le prestazioni. Per quanto riguarda il tipo di piattaforma ho deciso di collezionare solo informazioni proveniente da macchine Windows.

Figura 3: Configurazione dei dettagli di base della regola

Nella scheda Resources definite le macchine virtuali che volere monitorare. Selezionate Enable Collection Endpoints. I Data Collection Endpoints sono un concetto importante quando si lavora con Data Collection Rules (DCR), poiché consentono di controllare dove e come i dati vengono inviati e gestiti. Il Data Collection Endpoint (DCE) funge da gateway per la raccolta di dati e consente una maggiore personalizzazione, come l’utilizzo di endpoint privati per migliorare la sicurezza e il controllo.

Figura 4: Definizione dell’origine dei dati (Data Sources)

Figura 5: Risorse che verranno monitorare dalla Data Collection Rule

Nella scheda Collect and Deliver cliccate su + Add data source e selezionate i tipi di dati che volete raccogliere.

Poiché abbiamo scelto di collezionare i log di Windows possiamo scegliere tra:

  • Performance Counters: Per raccogliere dati sulle prestazioni come CPU, memoria, ecc.
  • Windows Event Logs: Per raccogliere eventi di log di Windows.

Figura 6: Aggiunta della origine dei dati

Io ho scelto di collezionare i Performance Counters e ho stabilito ogni quanti secondi devono essere collezionate le performance.

Figura 7: Scelta del tipo di dati da collezionare e loro frequenza

Aggiungete quindi una destinazione per i dati raccolti. Le opzioni di destinazione comuni includono Log Analytics Workspace e Azure Monitor Metrics, attualmente in preview, molto interessante perché permette di inviare i dati come metriche per l’analisi in tempo reale.

Potete configurare più destinazioni se volete che gli stessi dati siano disponibili in più di un posto.

Figura 8: Scelta della destinazione dei log collezionati

Figura 9: Dati collezionati e relativa destinazione

Controllate le informazioni inserite e fate clic su Create per creare la Data Collection Rule.

Figura 10: Schermata finale del wizard di creazione della Data Collection Rule

Figura 11: Data Collection Rule creata

Dopo aver creato la Data Collection Rule, il passaggio successivo è configurare, monitorare e ottimizzare la raccolta dati. È importante verificare che i dati siano raccolti correttamente e che siano utili per il monitoraggio delle risorse e l’analisi. Potete configurare avvisi, creare dashboard per una visione d’insieme, ottimizzare la raccolta per ridurre i costi e automatizzare le azioni per rispondere ai problemi rilevati. Inoltre, la gestione degli accessi e la documentazione sono fondamentali per mantenere una buona governance del monitoraggio.

Se le risorse non hanno già l’Azure Monitor Agent (AMA) installato, è necessario installarlo. L’AMA è l’agente che raccoglie i dati e li invia seguendo le specifiche della DCR.

Andate nel Log Analytics Workspace per verificare se i dati stanno arrivando correttamente. Cliccando Su Agent potrete vedere le VM connesse, come mostrato nella figura sotto:

Figura 12: L’Azure Monitor Agent (AMA) sta inviando correttamente i dati al Log Analytics Workspace

Cliccando sul link See them in Logs potrete verificare la connessione dell’agent, come mostrato nella figura sotto:

Figura 13: Informazioni relative all’Azure Monitor Agent

Di qui potete partire per visualizzare i dati raccolti tramite una query KQL (Kusto Query Language), configurare Avvisi (Alerts) oppure creare Dashboard di monitoraggio. Se notate che state raccogliendo troppi dati non necessari, potete tornare alla DCR e applicare filtri o modificare le origini dati. Questo può aiutare a ridurre il volume di dati e, quindi, i costi.

Io ho usato la query

Per ottenere informazioni sul livello di utilizzo della CPU, media e di picco.

Figura 14: Risultato della query ottenuta partendo dai dati collezionati

Inoltre, in Log Analytics Workspace potete configurare la durata di conservazione dei log. Il periodo di conservazione predefinito è di 30 giorni, ma potete estenderlo fino a 730 giorni se hai bisogno di conservare i dati per più tempo.

Potete anche integrare la DCR con Azure Logic Apps, Azure Functions o Automation Runbooks per implementare azioni di correzione automatica quando si verificano determinati eventi.

 

Conclusioni

Azure Monitor è una soluzione versatile per la gestione delle prestazioni e del monitoraggio delle risorse in ambiente Azure, con la capacità di raccogliere, analizzare e rispondere ai dati di telemetria provenienti da vari servizi, macchine virtuali, e applicazioni. Le Data Collection Rules offrono un controllo granulare sulla raccolta dei dati, permettendo di ottimizzare l’uso delle risorse e ridurre i costi, mentre i DCE forniscono una gestione centralizzata e sicura del traffico dei dati.

L’integrazione di queste funzionalità in una soluzione di monitoraggio consente non solo di avere visibilità completa e in tempo reale sulle risorse, ma anche di garantire una sicurezza avanzata, una gestione centralizzata e l’ottimizzazione delle prestazioni di applicazioni e infrastrutture. Azure Monitor, con le sue potenti capacità di automazione e analisi, è uno strumento imprescindibile per chiunque voglia gestire in maniera efficace le proprie risorse cloud, consentendo di risolvere problemi proattivamente e di ottimizzare le proprie operazioni IT.