Come eseguire query sui log dalle informazioni dettagliate sulle macchine virtuali

Attenzione

Questo articolo fa riferimento a CentOS, una distribuzione Linux vicina allo stato end of life (EOL). Prendere in considerazione l'uso e la pianificazione di conseguenza. Per altre informazioni, vedere le linee guida per la fine della vita di CentOS.

Le informazioni dettagliate sulle macchine virtuali raccolgono metriche di prestazioni e connessione, dati di inventario del computer ed elaborano i dati di inventario e le informazioni sullo stato di integrità e le inoltrano all'area di lavoro Log Analytics in Monitoraggio di Azure. Questi dati sono disponibili per le query in Monitoraggio di Azure. Questi dati possono essere applicati a diversi scenari, tra cui la pianificazione della migrazione, l'analisi della capacità, l'individuazione e la risoluzione dei problemi di prestazioni on demand.

Mappare i record

Importante

Se la macchina virtuale usa informazioni dettagliate sulle macchine virtuali con l'agente di Monitoraggio di Azure, è necessario avere processi e dipendenze abilitati per la creazione di queste tabelle.

Un record viene generato ogni ora per ogni computer e processo univoco, oltre ai record generati quando un processo o un computer viene avviato o aggiunto alle informazioni dettagliate della macchina virtuale. I campi e i valori nella tabella VMComputer vengono mappati ai campi della risorsa Computer nell'API ServiceMap di Azure Resource Manager. I campi e i valori nella tabella VMProcess sono mappati ai campi della risorsa Processo nell'API Di Azure Resource Manager serviceMap. Il campo _ResourceId corrisponde al campo nome nella risorsa di Resource Manager corrispondente.

Sono disponibili proprietà generate internamente che è possibile usare per identificare processi e computer univoci:

  • Computer: usare _ResourceId per identificare in modo univoco un computer all'interno di un'area di lavoro Log Analytics.
  • Processo: usare _ResourceId per identificare in modo univoco un processo all'interno di un'area di lavoro Log Analytics.

Poiché possono essere presenti vari record per un determinato processo o computer in un intervallo di tempo specificato, le query possono restituire più di un record per lo stesso computer o processo. Per includere solo il record più recente, aggiungere | summarize arg_max(TimeGenerated, *) by ResourceId alla query.

Connessione e porte

La funzionalità Connessione ion Metrics introduce due nuove tabelle nei log di Monitoraggio di Azure: VM Connessione ion e VMBoundPort. Queste tabelle forniscono informazioni sulle connessioni per un computer (in ingresso e in uscita) e sulle porte server aperte/attive. Connessione ionMetrics vengono esposti anche tramite API che forniscono i mezzi per ottenere una metrica specifica durante un intervallo di tempo. Le connessioni TCP risultanti dall'accettazione su un socket di ascolto sono in ingresso, mentre quelle create connettendosi a un indirizzo IP e una porta specificati sono in uscita. La direzione di una connessione è rappresentata dalla proprietà Direction, che può essere impostata su inbound o outbound.

I record in queste tabelle vengono generati dai dati segnalati da Dependency Agent. Ogni record rappresenta un'osservazione in un intervallo di tempo di 1 minuto. La proprietà TimeGenerated indica l'inizio dell'intervallo di tempo. Ogni record contiene informazioni per identificare l'entità corrispondente, ovvero la connessione o la porta, oltre che le metriche associate a tale entità. Attualmente, viene segnalata solo l'attività di rete che si verifica tramite TCP su IPv4.

Campi e convenzioni comuni

I campi e le convenzioni seguenti si applicano sia alla macchina virtuale Connessione ion che a VMBoundPort:

  • Computer: nome di dominio completo del computer di report
  • AgentId: identificatore univoco per un computer che esegue l'agente di Monitoraggio di Azure o l'agente di Log Analytics
  • Computer: nome della risorsa di Azure Resource Manager per il computer esposto da ServiceMap. Si tratta del formato m-{GUID}, dove GUID è lo stesso GUID di AgentId
  • Processo: nome della risorsa di Azure Resource Manager per il processo esposto da ServiceMap. È del formato p-{stringa esadecimale}. Il processo è univoco all'interno di un ambito computer e per generare un ID processo univoco tra i computer, combinare i campi Computer e Processo.
  • ProcessName: nome eseguibile del processo di creazione report.
  • Tutti gli indirizzi IP sono stringhe in formato canonico IPv4, ad esempio 13.107.3.160

Per gestire i costi e la complessità, i record di connessione non rappresentano le singole connessioni di rete fisiche. Più connessioni di rete fisiche vengono raggruppate in una connessione logica, che viene quindi riflessa nella rispettiva tabella. Ciò significa che i record nella tabella VMConnection rappresentano un raggruppamento logico e non le singole connessioni fisiche osservate. Le connessioni di rete fisiche che condividono lo stesso valore per gli attributi seguenti durante uno specifico intervallo di un minuto vengono aggregate in un singolo record logico in VMConnection.

Proprietà Descrizione
Direzione Direzione della connessione. Il valore è inbound o outbound
Computer FQDN del computer
Processo Identità del processo o dei gruppi di processi che avviano/accettano la connessione
SourceIp Indirizzo IP dell'origine
DestinationIp Indirizzo IP della destinazione
DestinationPort Numero di porta della destinazione
Protocollo Protocollo usato per la connessione. Il valore è tcp.

Per rendere conto dell'impatto del raggruppamento, nelle proprietà del record seguenti vengono fornite informazioni sul numero di connessioni fisiche raggruppate:

Proprietà Descrizione
LinksEstablished Numero di connessioni di rete fisiche che sono state stabilite durante l'intervallo di tempo di creazione del report
LinksTerminated Numero di connessioni di rete fisiche che sono state terminate durante l'intervallo di tempo di creazione del report
LinksFailed Numero di connessioni di rete fisiche che hanno avuto esito negativo durante l'intervallo di tempo di creazione del report. Queste informazioni sono attualmente disponibili solo per le connessioni in uscita.
LinksLive Numero di connessioni di rete fisiche aperte alla fine dell'intervallo di tempo di creazione del report

Metrica

Oltre alle metriche relative al numero di connessioni, nelle proprietà del record seguenti vengono fornite anche informazioni sul volume dei dati inviati e ricevuti in una determinata connessione logica o porta di rete:

Proprietà Descrizione
BytesSent Numero totale di byte che sono stati inviati durante l'intervallo di tempo di creazione del report
BytesReceived Numero totale di byte che sono stati ricevuti durante l'intervallo di tempo di creazione del report
Risposte Numero totale di risposte osservate durante l'intervallo di tempo di creazione del report.
ResponseTimeMax Tempo di risposta più lungo (millisecondi) osservato durante l'intervallo di tempo di creazione del report. In assenza di valore, la proprietà è vuota.
ResponseTimeMin Tempo di risposta più breve (millisecondi) osservato durante l'intervallo di tempo di creazione del report. In assenza di valore, la proprietà è vuota.
ResponseTimeSum Somma di tutti i tempi di risposta (millisecondi) osservati durante l'intervallo di tempo di creazione del report. In assenza di valore, la proprietà è vuota.

Il terzo tipo di dati segnalati è il tempo di risposta, ovvero il tempo di attesa, da parre di un chiamante, affinché una richiesta inviata tramite una connessione venga elaborata dall'endpoint remoto e venga fornita una risposta. Il tempo di risposta segnalato è una stima del tempo di risposta effettivo del protocollo dell'applicazione sottostante. Viene calcolato usando euristica in base all'osservazione del flusso di dati tra la fine dell'origine e la destinazione di una connessione di rete fisica. Concettualmente, è la differenza tra l'ora in cui l'ultimo byte di una richiesta lascia il mittente e l'ora in cui arriva l'ultimo byte della risposta. Questi due timestamp vengono usati per delineare gli eventi di richiesta e di risposta in una determinata connessione fisica. La differenza tra di essi rappresenta il tempo di risposta di una singola richiesta.

In questa prima versione di questa funzionalità, l'algoritmo è un'approssimazione che potrebbe funzionare con un diverso livello di precisione a seconda del protocollo dell'applicazione effettivo usato per una connessione di rete specifica. Ad esempio, l'approccio corrente funziona bene per i protocolli basati su richiesta-risposta, ad esempio HTTP(S), ma non funziona con protocolli unidirezionale o basato su code di messaggi.

Ecco alcuni punti importanti da considerare:

  1. Se un processo accetta le connessioni sullo stesso indirizzo IP ma su più interfacce di rete, verrà segnalato un record distinto per ogni interfaccia.
  2. I record con IP con caratteri jolly non contengono attività. Sono inclusi per rappresentare il fatto che una porta nel computer è aperta al traffico in ingresso.
  3. Per ridurre il livello di dettaglio e il volume di dati, i record con IP con caratteri jolly verranno omessi quando è presente un record corrispondente (per lo stesso processo, porta e protocollo) con un indirizzo IP specifico. Quando un record di IP con caratteri jolly viene omesso, la proprietà IsWildcardBind del record con l'indirizzo IP specifico viene impostata su "True" per indicare che la porta è esposta in ogni interfaccia del computer che esegue la segnalazione.
  4. Le porte associate solo su un'interfaccia specifica hanno IsWildcardBind impostato su False.

Denominazione e classificazione

Per praticità, l'indirizzo IP dell'estremità remota di una connessione è incluso nella proprietà RemoteIp. Per le connessioni in ingresso, RemoteIp è uguale a SourceIp, mentre per le connessioni in uscita corrisponde a DestinationIp. La proprietà RemoteDnsCanonicalNames rappresenta i nomi canonici DNS segnalati dal computer per RemoteIp. La proprietà RemoteDnsQuestions rappresenta le domande DNS segnalate dal computer per RemoteIp. La proprietà RemoveClassification è riservata per un uso futuro.

Georilevazione

VMConnection include anche informazioni di georilevazione per l'estremità remota di ogni record di connessione nelle proprietà del record seguenti:

Proprietà Descrizione
RemoteCountry Nome del paese o dell'area geografica che ospita RemoteIp. Ad esempio, Stati Uniti
RemoteLatitude Latitudine della georilevazione. Ad esempio, 47.68
RemoteLongitude Longitudine della georilevazione. Ad esempio, -122.12

Indirizzi IP dannosi

Ogni proprietà RemoteIp nella tabella VMConnection viene confrontata con un set di indirizzi IP con attività dannosa nota. Se RemoteIp viene identificato come dannoso, le proprietà seguenti verranno popolate (sono vuote, quando l'INDIRIZZO IP non è considerato dannoso) nelle proprietà seguenti del record:

Proprietà Descrizione
MaliciousIp Indirizzo RemoteIp
IndicatorThreadType L'indicatore di minaccia rilevato è uno dei valori seguenti, Botnet, C2, CryptoMining, Darknet, DDos , MaliciousUrl, Malware, Phishing, Proxy, PUA, Watchlist.
Descrizione Descrizione della minaccia osservata.
TLPLevel Il livello del protocollo di segnalazione del traffico è uno dei valori definiti: Bianco, Verde, Ambra, Rosso.
Attendibilità I valori sono 0 - 100.
Gravità I valori sono 0 - 5, dove 5 è il più grave e 0 non è affatto grave. Il valore predefinito è 3.
FirstReportedDateTime La prima volta che il provider ha segnalato l'indicatore.
LastReportedDateTime L'ultima volta in cui l'indicatore è stato visualizzato da Interflow.
IsActive Indica che gli indicatori vengono disattivati con il valore True o False.
ReportReferenceLink Offre collegamenti ai report relativi a un oggetto osservabile specificato. Per segnalare un falso avviso o ottenere altri dettagli sull'INDIRIZZO IP dannoso, aprire un caso di supporto e specificare questo collegamento.
AdditionalInformation Offre informazioni aggiuntive, se disponibili, sulla minaccia osservata.

Porti

Le porte in un computer che accettano attivamente il traffico in ingresso o che potrebbero accettare traffico, ma sono inattive durante l'intervallo di tempo di creazione di report, vengono scritte nella tabella VMBoundPort.

Ogni record in VMBoundPort viene identificato dai campi seguenti:

Proprietà Descrizione
Processo Identità del processo (o gruppi di processi) a cui è associata la porta.
IP Indirizzo IP della porta (può essere ip con caratteri jolly, 0.0.0.0)
Port Numero porta
Protocollo Protocollo. Esempio, tcp o udp (è attualmente supportato solo tcp ).

L'identità di una porta deriva dai cinque campi precedenti e viene archiviata nella proprietà PortId. Questa proprietà può essere usata per trovare rapidamente i record per una porta specifica nel tempo.

Metrica

I record delle porte includono metriche che rappresentano le connessioni associate. Attualmente, vengono segnalate le metriche seguenti (i dettagli per ogni metrica sono descritti nella sezione precedente):

  • ByteSent e byteReceived
  • LinksEstablished, LinksTerminated, LinksLive
  • ResposeTime, ResponseTimeMin, ResponseTimeMax, ResponseTimeSum

Ecco alcuni punti importanti da considerare:

  • Se un processo accetta le connessioni sullo stesso indirizzo IP ma su più interfacce di rete, verrà segnalato un record distinto per ogni interfaccia.
  • I record con IP con caratteri jolly non contengono attività. Sono inclusi per rappresentare il fatto che una porta nel computer è aperta al traffico in ingresso.
  • Per ridurre il livello di dettaglio e il volume di dati, i record con IP con caratteri jolly verranno omessi quando è presente un record corrispondente (per lo stesso processo, porta e protocollo) con un indirizzo IP specifico. Quando viene omesso un record IP con caratteri jolly, la proprietà IsWildcardBind per il record con l'indirizzo IP specifico verrà impostata su True. Ciò indica che la porta viene esposta su ogni interfaccia del computer di report.
  • Le porte associate solo su un'interfaccia specifica hanno IsWildcardBind impostato su False.

Record vmComputer

I record con un tipo di VMComputer hanno dati di inventario per i server con Dependency Agent. Questi record includono le proprietà elencate nella tabella seguente:

Proprietà Descrizione
TenantId Identificatore univoco per l'area di lavoro
SourceSystem Insights
TimeGenerated Timestamp del record (UTC)
Computer FQDN del computer
AgentId Identificatore univoco per un computer che esegue l'agente di Monitoraggio di Azure o l'agente di Log Analytics
Computer Nome della risorsa di Azure Resource Manager per il computer esposto da ServiceMap. Si tratta del formato m-{GUID}, dove GUID è lo stesso GUID di AgentId.
DisplayName Nome visualizzato
FullDisplayName Nome visualizzato completo
HostName Nome del computer senza nome di dominio
BootTime Ora di avvio del computer (UTC)
TimeZone Fuso orario normalizzato
VirtualizationState virtual, hypervisor, physical
Ipv4Addresses Matrice di indirizzi IPv4
Ipv4SubnetMasks Matrice di subnet mask IPv4 (nello stesso ordine di Ipv4Addresses).
Ipv4DefaultGateways Matrice di gateway IPv4
Ipv6Addresses Matrice di indirizzi IPv6
MacAddresses Matrice di indirizzi MAC
DnsNames Matrice di nomi DNS associati al computer.
DependencyAgentVersion Versione dell'agente di dipendenza in esecuzione nel computer.
OperatingSystemFamily Linux, Windows
OperatingSystemFullName Nome completo del sistema operativo
PhysicalMemoryMB Memoria fisica in megabyte
Cpu Numero di processori
CpuSpeed Velocità della CPU in MHz
VirtualMachineType hyperv, vmware, xen
VirtualMachineNativeId ID della macchina virtuale assegnato dal relativo hypervisor
VirtualMachineNativeName Nome della macchina virtuale
VirtualMachineHypervisorId Identificatore univoco dell'hypervisor che ospita la macchina virtuale
HypervisorType hyperv
HypervisorId ID univoco dell'hypervisor
HostingProvider azure
_ResourceId Identificatore univoco per una risorsa di Azure
AzureSubscriptionId Identificatore univoco globale che identifica la sottoscrizione
AzureResourceGroup Il nome del gruppo di risorse di Azure di cui è membro il computer.
AzureResourceName Nome della risorsa di Azure
AzureLocation Posizione della risorsa di Azure
AzureUpdateDomain Nome del dominio di aggiornamento di Azure
AzureFaultDomain Nome del dominio di errore di Azure
AzureVmId Identificatore univoco della macchina virtuale di Azure
AzureSize Dimensioni della macchina virtuale di Azure
AzureImagePublisher Nome dell'editore di macchine virtuali di Azure
AzureImageOffering Nome del tipo di offerta della macchina virtuale di Azure
AzureImageSku SKU dell'immagine della macchina virtuale di Azure
AzureImageVersion Versione dell'immagine della macchina virtuale di Azure
AzureCloudServiceName Nome del servizio cloud di Azure
AzureCloudServiceDeployment ID distribuzione per il servizio cloud
AzureCloudServiceRoleName Nome del ruolo del servizio cloud
AzureCloudServiceRoleType Tipo di ruolo Servizio cloud: ruolo di lavoro o Web
AzureCloudServiceInstanceId ID istanza del ruolo del servizio cloud
AzureVmScaleSetName Nome del set di scalabilità di macchine virtuali
AzureVmScaleSetDeployment ID distribuzione del set di scalabilità di macchine virtuali
AzureVmScaleSetResourceId Identificatore univoco della risorsa del set di scalabilità di macchine virtuali.
AzureVmScaleSetInstanceId Identificatore univoco del set di scalabilità di macchine virtuali
AzureServiceFabricClusterId Identificatore univoco del cluster di Azure Service Fabric
AzureServiceFabricClusterName Nome del cluster di Azure Service Fabric

Record VMProcess

I record con un tipo di VMProcess includono dati di inventario per i processi connessi a TCP nei server con Dependency Agent. Questi record includono le proprietà elencate nella tabella seguente:

Proprietà Descrizione
TenantId Identificatore univoco per l'area di lavoro
SourceSystem Insights
TimeGenerated Timestamp del record (UTC)
Computer FQDN del computer
AgentId Identificatore univoco per un computer che esegue l'agente di Monitoraggio di Azure o l'agente di Log Analytics
Computer Nome della risorsa di Azure Resource Manager per il computer esposto da ServiceMap. Si tratta del formato m-{GUID}, dove GUID è lo stesso GUID di AgentId.
Processo Identificatore univoco del processo di Mapping dei servizi. È sotto forma di p-{GUID}.
ExecutableName Nome dell'eseguibile del processo
DisplayName Nome visualizzato processo
Ruolo Ruolo processo: webserver, appServer, databaseServer, ldapServer, smbServer
Raggruppa Nome del gruppo di processi. I processi nello stesso gruppo sono correlati logicamente, ad esempio parte dello stesso prodotto o componente di sistema.
StartTime Ora di inizio del pool del processo
FirstPid Primo PID nel pool del processo
Descrizione Descrizione del processo
CompanyName Nome dell'azienda
InternalName Nome interno
ProductName Nome del prodotto
ProductVersion Versione del prodotto
FileVersion Versione del file
ExecutablePath Percorso del file eseguibile
CommandLine Riga di comando
WorkingDirectory La directory di lavoro
Servizi Matrice di servizi in cui viene eseguito il processo
UserName Account con cui è in esecuzione il processo
UserDomain Dominio in cui è in esecuzione il processo
_ResourceId Identificatore univoco per il processo nell'area di lavoro

Query di mapping di esempio

Visualizzare tutti i computer noti

VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId

Data dell'ultimo riavvio della macchina virtuale

let Today = now(); VMComputer | extend DaysSinceBoot = Today - BootTime | summarize by Computer, DaysSinceBoot, BootTime | sort by BootTime asc

Riepilogo delle macchine virtuali di Azure per immagine, posizione e SKU

VMComputer | where AzureLocation != "" | summarize by Computer, AzureImageOffering, AzureLocation, AzureImageSku

Elencare la capacità di memoria fisica di tutti i computer gestiti

VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId | project PhysicalMemoryMB, Computer

Elencare nome computer, DNS, IP e sistema operativo

VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId | project Computer, OperatingSystemFullName, DnsNames, Ipv4Addresses

Trovare tutti i processi con "sql" nella riga di comando

VMProcess | where CommandLine contains_cs "sql" | summarize arg_max(TimeGenerated, *) by _ResourceId

Trovare un computer (record più recente) in base al nome di risorsa

search in (VMComputer) "m-4b9c93f9-bc37-46df-b43c-899ba829e07b" | summarize arg_max(TimeGenerated, *) by _ResourceId

Trovare un computer, ovvero il record più recente, in base all’indirizzo IP

search in (VMComputer) "10.229.243.232" | summarize arg_max(TimeGenerated, *) by _ResourceId

Elencare tutti i processi noti su un computer specifico

VMProcess | where Machine == "m-559dbcd8-3130-454d-8d1d-f624e57961bc" | summarize arg_max(TimeGenerated, *) by _ResourceId

Elencare tutti i computer che eseguono SQL Server

VMComputer | where AzureResourceName in ((search in (VMProcess) "*sql*" | distinct Machine)) | distinct Computer

Elencare tutte le versioni di prodotto univoche di curl nel data center

VMProcess | where ExecutableName == "curl" | distinct ProductVersion

Creare un gruppo di tutti i computer che eseguono CentOS

VMComputer | where OperatingSystemFullName contains_cs "CentOS" | distinct Computer
VMConnection | summarize sum(BytesSent), sum(BytesReceived) by bin(TimeGenerated,1hr), Computer | order by Computer desc | render timechart

Macchine virtuali di Azure che trasmettono il maggior numero di byte

VMConnection | join kind=fullouter(VMComputer) on $left.Computer == $right.Computer | summarize count(BytesSent) by Computer, AzureVMSize | sort by count_BytesSent desc
VMConnection | where TimeGenerated >= ago(24hr) | where Computer == "acme-demo" | summarize dcount(LinksEstablished), dcount(LinksLive), dcount(LinksFailed), dcount(LinksTerminated) by bin(TimeGenerated, 1h) | render timechart

Tendenza degli errori di connessione

VMConnection | where Computer == "acme-demo" | extend bythehour = datetime_part("hour", TimeGenerated) | project bythehour, LinksFailed | summarize failCount = count() by bythehour | sort by bythehour asc | render timechart

Porte associate

VMBoundPort
| where TimeGenerated >= ago(24hr)
| where Computer == 'admdemo-appsvr'
| distinct Port, ProcessName

Numero di porte aperte tra computer

VMBoundPort
| where Ip != "127.0.0.1"
| summarize by Computer, Machine, Port, Protocol
| summarize OpenPorts=count() by Computer, Machine
| order by OpenPorts desc

Assegnare un punteggio ai processi nell'area di lavoro in base al numero di porte aperte

VMBoundPort
| where Ip != "127.0.0.1"
| summarize by ProcessName, Port, Protocol
| summarize OpenPorts=count() by ProcessName
| order by OpenPorts desc

Comportamento aggregato per ogni porta

Questa query può quindi essere usata per assegnare punteggi alle porte in base all'attività, ad esempio le porte con la maggior parte del traffico in ingresso/in uscita, le porte con la maggior parte delle connessioni

// 
VMBoundPort
| where Ip != "127.0.0.1"
| summarize BytesSent=sum(BytesSent), BytesReceived=sum(BytesReceived), LinksEstablished=sum(LinksEstablished), LinksTerminated=sum(LinksTerminated), arg_max(TimeGenerated, LinksLive) by Machine, Computer, ProcessName, Ip, Port, IsWildcardBind
| project-away TimeGenerated
| order by Machine, Computer, Port, Ip, ProcessName

Riepilogare le connessioni in uscita da un gruppo di computer

// the machines of interest
let machines = datatable(m: string) ["m-82412a7a-6a32-45a9-a8d6-538354224a25"];
// map of ip to monitored machine in the environment
let ips=materialize(VMComputer
| summarize ips=makeset(todynamic(Ipv4Addresses)) by MonitoredMachine=AzureResourceName
| mvexpand ips to typeof(string));
// all connections to/from the machines of interest
let out=materialize(VMConnection
| where Machine in (machines)
| summarize arg_max(TimeGenerated, *) by ConnectionId);
// connections to localhost augmented with RemoteMachine
let local=out
| where RemoteIp startswith "127."
| project ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine=Machine;
// connections not to localhost augmented with RemoteMachine
let remote=materialize(out
| where RemoteIp !startswith "127."
| join kind=leftouter (ips) on $left.RemoteIp == $right.ips
| summarize by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine=MonitoredMachine);
// the remote machines to/from which we have connections
let remoteMachines = remote | summarize by RemoteMachine;
// all augmented connections
(local)
| union (remote)
//Take all outbound records but only inbound records that come from either //unmonitored machines or monitored machines not in the set for which we are computing dependencies.
| where Direction == 'outbound' or (Direction == 'inbound' and RemoteMachine !in (machines))
| summarize by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine
// identify the remote port
| extend RemotePort=iff(Direction == 'outbound', DestinationPort, 0)
// construct the join key we'll use to find a matching port
| extend JoinKey=strcat_delim(':', RemoteMachine, RemoteIp, RemotePort, Protocol)
// find a matching port
| join kind=leftouter (VMBoundPort 
| where Machine in (remoteMachines) 
| summarize arg_max(TimeGenerated, *) by PortId 
| extend JoinKey=strcat_delim(':', Machine, Ip, Port, Protocol)) on JoinKey
// aggregate the remote information
| summarize Remote=makeset(iff(isempty(RemoteMachine), todynamic('{}'), pack('Machine', RemoteMachine, 'Process', Process1, 'ProcessName', ProcessName1))) by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol

Record delle prestazioni

I record con un tipo di InsightsMetrics hanno dati sulle prestazioni del sistema operativo guest della macchina virtuale. Questi record vengono raccolti a intervalli di 60 secondi e hanno le proprietà nella tabella seguente:

Proprietà Descrizione
TenantId Identificatore univoco per l'area di lavoro
SourceSystem Insights
TimeGenerated Ora in cui è stato raccolto il valore (UTC)
Computer FQDN del computer
Origine vm.azm.ms
Spazio dei nomi Categoria del contatore delle prestazioni
Nome Nome del contatore delle prestazioni.
Val Valore raccolto
Tag Dettagli correlati sul record. Vedere la tabella seguente per i tag usati con tipi di record diversi.
AgentId Identificatore univoco per l'agente di ogni computer
Type InsightsMetrics
ResourceId ID risorsa della macchina virtuale

I contatori delle prestazioni attualmente raccolti nella tabella InsightsMetrics sono elencati nella tabella seguente:

Spazio dei nomi Nome Descrizione Unità Tag
Computer Heartbeat Computer Heartbeat
Memoria AvailableMB Byte disponibili per la memoria Megabyte memorySizeMB - Dimensioni totali della memoria
Rete WriteBytesPerSecond Byte di scrittura di rete al secondo Byte al secondo NetworkDeviceId - ID del dispositivo
byte - Totale byte inviati
Rete ReadBytesPerSecond Byte letti dalla rete al secondo Byte al secondo networkDeviceId - ID del dispositivo
byte : totale byte ricevuti
Processore UtilizationPercentage Percentuale di utilizzo processore Percentuale totalCpus - CPU totali
LogicalDisk WritesPerSecond Scritture su disco logico al secondo Conteggio al secondo mountId - ID di montaggio del dispositivo
LogicalDisk WriteLatencyMs Latenza scrittura disco logico Millisecondo Millisecondi mountId - ID di montaggio del dispositivo
LogicalDisk WriteBytesPerSecond Byte di scrittura disco logico al secondo Byte al secondo mountId - ID di montaggio del dispositivo
LogicalDisk TransfersPerSecond Trasferimenti di dischi logici al secondo Conteggio al secondo mountId - ID di montaggio del dispositivo
LogicalDisk TransferLatencyMs Millisecondo di latenza di trasferimento del disco logico Millisecondi mountId - ID di montaggio del dispositivo
LogicalDisk ReadsPerSecond Letture disco logico al secondo Conteggio al secondo mountId - ID di montaggio del dispositivo
LogicalDisk ReadLatencyMs Millisecondo di latenza lettura disco logico Millisecondi mountId - ID di montaggio del dispositivo
LogicalDisk ReadBytesPerSecond Byte letti dal disco logico al secondo Byte al secondo mountId - ID di montaggio del dispositivo
LogicalDisk FreeSpacePercentage Percentuale spazio disponibile su disco logico Percentuale mountId - ID di montaggio del dispositivo
LogicalDisk FreeSpaceMB Byte spazio disponibile su disco logico Megabyte mountId - ID di montaggio del dispositivo
diskSizeMB - Dimensioni totali del disco
LogicalDisk Byte al secondo Byte disco logico al secondo Byte al secondo mountId - ID di montaggio del dispositivo

Passaggi successivi