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:
- 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 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.
- 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
Tendenze di byte inviati e ricevuti
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
Tendenze dello stato del collegamento
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
Se non si ha familiarità con la scrittura di query di log in Monitoraggio di Azure, vedere come usare Log Analytics nel portale di Azure per scrivere query di log.
Leggere le informazioni su come scrivere query di ricerca.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per