Condividi tramite


Configurare il runtime di integrazione self-hosted (SHIR) per la raccolta di analisi dei log

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

Prerequisiti

Per questo approccio è necessaria un'area di lavoro Log Analytics disponibile. È consigliabile prendere nota dell'ID dell'area di lavoro e della chiave di autenticazione dell'area di lavoro Log Analytics perché potrebbero servire per determinati scenari. Questa soluzione aumenterà i dati che verranno inviati all'area di lavoro Log Analytics e avrà un impatto ridotto sul costo complessivo. Continuare a leggere per informazioni dettagliate su come mantenere al minimo la quantità di dati.

Obiettivi e scenari

Centralizzare gli eventi e i dati del contatore delle prestazioni nell'area di lavoro Log Analytics. Prima di tutto la macchina virtuale che ospita il servizio SHIR deve essere instrumentata in modo appropriato. Scegliere tra i due scenari principali di seguito.

Strumentazione delle macchine virtuali locali

L'articolo Installare l'agente di Log Analytics in computer Windows descrive come installare il client in una macchina virtuale, in genere ospitata in locale. Può trattarsi di un server fisico o di una macchina virtuale ospitata in un hypervisor gestito dal cliente. Come indicato nella sezione dei prerequisiti, quando si installa l'agente di Log Analytics, è necessario specificare l'ID dell'area di lavoro Log Analytics e la chiave dell'area di lavoro per finalizzare la connessione.

Instrumentare le macchine virtuali di Azure

L'approccio consigliato per instrumentare una macchina virtuale di Azure basata su SHIR consiste nell'usare le informazioni dettagliate sulle macchine virtuali, come descritto nell'articolo Abilitare la panoramica delle informazioni dettagliate sulle VM. Esistono diversi modi per configurare l'agente di Log Analytics quando il servizio SHIR è ospitato in una macchina virtuale di Azure. Tutte le opzioni sono descritte nell'articolo Panoramica dell'agente di Log Analytics.

Configurare l'acquisizione del registro eventi e del contatore delle prestazioni

Questo passaggio illustra come configurare sia i log del visualizzatore eventi sia i contatori delle prestazioni da inviare a Log Analytics. I passaggi descritti di seguito sono comuni indipendentemente dalla modalità di distribuzione dell'agente.

Selezionare i journal del visualizzatore eventi

Prima di tutto, è necessario raccogliere i journal del visualizzatore eventi rilevanti per SHIR, come descritto nell'articolo Raccogliere origini dati del registro eventi di Windows con l'agente di Log Analytics in Monitoraggio di Azure.

È importante notare che quando si scelgono i registri eventi tramite l'interfaccia, è normale che non siano visibili tutti i journal che possono esistere in un computer. Quindi, in questo elenco non saranno visualizzati i due journal necessari per il monitoraggio SHIR. Se si digita il nome del journal esattamente come visualizzato nella macchina virtuale locale, verrà acquisito e inviato all'area di lavoro Log Analytics.

Il nome del journal eventi da configurare è:

  • Connettori - Runtime di integrazione
  • Runtime di integrazione

Screenshot della selezione dei log pertinenti di SHIR con errori e avvisi verificati.

Importante

Se si dispone di molti host SHIR distribuiti e un numero elevato di analisi, lasciare selezionato il livello informazioni aumenterà significativamente il volume dei dati. È consigliabile mantenere solo Errore e Avviso.

Selezionare i contatori delle prestazioni

Nello stesso riquadro di configurazione è possibile fare clic su Contatori delle prestazioni di Windows per selezionare singoli contatori delle prestazioni da inviare a Log Analytics.

Importante

Tenere presente che i contatori delle prestazioni sono, per loro natura, un flusso dei dati continuo. È quindi fondamentale considerare l'impatto della raccolta dei dati sul costo totale della distribuzione di Monitoraggio di Azure/Log Analytics. A meno che non sia stato concesso un budget di inserimento dati consentito e che sia stato consentito e preventivato un inserimento dati costante, la raccolta di contatori delle prestazioni deve essere configurata solo per un periodo definito per stabilire una previsione delle prestazioni.

Nell'interfaccia, quando viene configurata per la prima volta, verrà consigliato un set di contatori suggerito. Selezionare quelli adatti al tipo di analisi delle prestazioni da eseguire. %CPU e Memoria disponibile sono in genere contatori monitorati, ma altri come consumo della larghezza di banda della rete possono essere utili negli scenari in cui il volume di dati è elevato e la larghezza di banda o il tempo di esecuzione sono vincolati.

Screenshot dell'interfaccia di selezione dei contatori nel portale di Azure.

Visualizzare i dati degli eventi e dei contatori delle prestazioni in Log Analytics

Per informazioni su come analizzare i dati di monitoraggio nell'archivio log di Monitoraggio di Azure/Log Analytics usando il linguaggio di query Kusto (KQL), vedere Query Kusto.

Le due tabelle in cui vengono salvati i dati di telemetria sono denominate rispettivamente Perf ed Event. La query seguente controlla il numero di righe per verificare se sono presenti flussi di dati. Questo conferma se la strumentazione descritta in precedenza funziona.

Query KQL di esempio

Controllare i conteggi delle righe

(
        Event 
        | extend TableName = "Event"
        | summarize count() by TableName
)     
| union
(     
        Perf
        | extend TableName = "Perf"
        | summarize count() by TableName
)

Eventi di query

Recuperare le prime 10 righe di eventi
Event
| take 10
Recuperare il numero di eventi in base alla gravità del messaggio
Event
| summarize count() by EventLevelName
Eseguire il rendering di un grafico a torta del conteggio in base alla gravità del messaggio
Event
| summarize count() by EventLevelName
| render piechart 
Recuperare tutti gli errori con una determinata stringa di testo

In questo caso cerchiamo tutti i messaggi che contengono la parola disconnesso.

Event
| where RenderedDescription has "disconnected"
Ricerca di più tabelle per una parola chiave senza conoscere lo schema

Il comando di ricerca è utile quando non si conosce la colonna che contiene le informazioni. Questa query restituisce tutte le righe delle tabelle specificate che hanno almeno una colonna contenente il termine di ricerca. In questo esempio la parola è disconnesso.

search in (Perf, Event) "disconnected"
Recuperare tutti gli eventi da un journal di log specifico

In questo esempio si restringe la query al journal di log denominato Connettori - Runtime di integrazione.

Event 
| where EventLog == "Connectors - Integration Runtime"
Usare intervalli di tempo per limitare i risultati delle query

Questa query usa la stessa query precedente, ma limita i risultati a quelli che si sono verificati 2 prima o più di recente.

Event 
| where EventLog      == "Connectors - Integration Runtime"
  and   TimeGenerated >= ago(2d)

Esecuzione di query sui dati dei contatori delle prestazioni

Recuperare le prime 10 letture del contatore delle prestazioni
Perf
| take 10
Recuperare un contatore specifico con vincoli di tempo
Perf
| where     TimeGenerated >= ago(24h)
        and ObjectName    == "Network Adapter"
        and InstanceName  == "Mellanox ConnectX-4 Lx Virtual Ethernet Adapter"
        and CounterName   == "Bytes Received/sec"

I contatori delle prestazioni sono di natura gerarchica, quindi tenere presente che nella query occorre avere predicati dove sufficienti per selezionare solo il contatore specifico necessario.

Recuperare il 95° percentile per un dato contatore suddiviso in fasce di 30 minuti delle ultime 24 ore

Questo esempio è costituito da tutti i contatori per una scheda di rete specifica.

Perf
| where     TimeGenerated >= ago(24h)
        and ObjectName    == "Network Adapter"
        and InstanceName  == "Mellanox ConnectX-4 Lx Virtual Ethernet Adapter"
| project TimeGenerated, Computer, ObjectName, InstanceName, CounterName, CounterValue
| summarize percentile(CounterValue, 95) by bin(TimeGenerated, 30m), Computer, ObjectName, InstanceName, CounterName
Usare le variabili per la riutilizzabilità del codice

In questo caso il nome dell'oggetto e il nome del contatore vengono apportati a una variabile, quindi non è necessario modificare il corpo della query KQL per modificare tali selezioni in un secondo momento.

let pObjectName  = "Memory"; // Required to select the right counter
let pCounterName = "Available MBytes"; // Required to select the right counter
Perf
| where Type == "Perf" and ObjectName == pObjectName and CounterName == pCounterName
| project TimeGenerated, Computer, CounterName, CounterValue
| order by TimeGenerated asc 
| summarize Value=max(CounterValue) by CounterName, TimeStamps=TimeGenerated