Como consultar logs de insights da VM
Cuidado
Este artigo faz referência ao CentOS, uma distribuição Linux que está em status de fim do serviço (EOL). Considere seu uso e planejamento adequadamente. Para obter mais informações, confira as Diretrizes de Fim do Suporte do CentOS.
Os insights da VM coletam métricas de desempenho e conexão, de dados de inventário do processo e do computador, de informações do estado de integridade e os encaminha para o workspace do Log Analytics no Azure Monitor. Esses dados ficam disponíveis para consulta no Azure Monitor. Você pode aplicar esses dados a cenários que incluem planejamento de migração, análise de capacidade, descoberta e solução de problemas de desempenho sob demanda.
Registros do mapa
Importante
Se sua máquina virtual estiver usando insights de VM com o agente do Azure Monitor, você deverá ter processos e dependências habilitados para que essas tabelas sejam criadas.
Um registro é gerado por hora para cada computador e processo exclusivo, além dos registros que são gerados quando um processo ou computador inicia ou é adicionado aos insights de VM. Os campos e valores na tabela VMComputer mapeiam para os campos do recurso Computador na API de ServiceMap do Azure Resource Manager. Os campos e valores na tabela VMProcess mapeiam para os campos do recurso Processo na API de ServiceMap do Azure Resource Manager. O campo _ResourceId corresponde ao campo de nome no recurso correspondente do Gerenciador de Recursos.
Há propriedades geradas internamente que você pode usar para identificar computadores e processos exclusivos:
- Computador: use ResourceId para identificar um computador com exclusividade em um workspace do Log Analytics.
- Processo: use ResourceId para identificar um processo com exclusividade em um workspace do Log Analytics.
Como vários registros podem existir para um processo e computador específicos em um intervalo de tempo específico, as consultas podem retornar mais de um registro para o mesmo computador ou processo. Para incluir somente o registro mais recente, adicione | summarize arg_max(TimeGenerated, *) by ResourceId
à consulta.
Conexões e portas
O recurso Métricas de Conexão apresenta duas novas tabelas em logs do Azure Monitor: VMConnection e VMBoundPort. Essas tabelas fornecem informações sobre as conexões de um computador (entrada e saída) e as portas do servidor que estão abertas/ativas nas mesmas. As Métricas de Conexão também são expostas através de APIs que fornecem meios para obter uma métrica específica durante um intervalo de tempo. As conexões TCP resultantes de aceitar um soquete de escuta são de entrada, ao passo que aquelas criadas pela conexão a uma porta e um IP especificados são de saída. A direção de uma conexão é representada pela propriedade Direction, o que pode ser definida para entrada ou saída.
Os registros nessas tabelas são gerados com base em dados relatados pelo Dependency Agent. Cada registro representa uma observação durante o intervalo de tempo de um minuto. A propriedade TimeGenerated indica o início do intervalo de tempo. Cada registro contém informações para identificar a respectiva entidade, ou seja, conexão ou porta, bem como as métricas associadas àquela entidade. Atualmente, apenas as atividades de rede que usam TCP via IPv4 são relatadas.
Campos e convenções comuns
Os seguintes campos e convenções se aplicam a VMConnection e VMBoundPort:
- Computador: nome de domínio totalmente qualificado do computador de relatórios
- AgentId: o identificador exclusivo para um computador que executa o Agente do Azure Monitor ou o agente do Log Analytics
- Computador: nome do recurso do Azure Resource Manager para o computador exposto pelo ServiceMap. O formato é m-{GUID}, onde GUID é o mesmo GUID do AgentId
- Processo: nome do recurso do Azure Resource Manager para o processo exposto pelo ServiceMap. O formato é p-{hex string}. O processo é exclusivo em um escopo de computador e para gerar uma ID de processo exclusiva entre computadores, combine os campos Computador e Processo.
- ProcessName: nome executável do processo de relatório.
- Todos os endereços IP são cadeias de caracteres no formato canônico IPv4, por exemplo, 13.107.3.160
Para gerenciar o custo e a complexidade, os registros de conexão não representam as conexões de rede física individuais. Várias conexões de rede física são agrupadas em uma conexão lógica, o que é refletido na respectiva tabela. Ou seja, os registros na tabela VMConnection representam um agrupamento lógico, não as conexões físicas individuais sendo observadas. As conexões de rede física que compartilham o mesmo valor para os atributos a seguir durante o intervalo especificado de um minuto são agregadas em um único registro lógico em VMConnection.
Propriedade | Descrição |
---|---|
Direção | Direção da conexão, o valor é entrada ou saída |
Computador | O FQDN do computador |
Processo | Identidade do processo ou grupos de processos, iniciando/aceitando a conexão |
SourceIp | Endereço IP da origem |
DestinationIp | Endereço IP do destino |
DestinationPort | Número da porta de destino |
Protocolo | Protocolo usado para a conexão. O valor é tcp. |
Para levar em conta o impacto do agrupamento, são fornecidas informações sobre o número de conexões físicas agrupadas nas seguintes propriedades do registro:
Propriedade | Descrição |
---|---|
LinksEstablished | O número de conexões de rede física que foram estabelecidas durante o intervalo de tempo de geração de relatórios |
LinksTerminated | O número de conexões de rede física que foram terminadas durante o intervalo de tempo de geração de relatórios |
LinksFailed | O número de conexões de rede física que falharam durante o intervalo de tempo de geração de relatórios. Essa informação está disponível atualmente apenas para as conexões de saída. |
LinksLive | O número de conexões de rede física que estavam abertas no final do intervalo de tempo de geração de relatórios |
Métricas
Além das métricas de contagem de conexões, as informações sobre o volume de dados enviados e recebidos em determinada conexão lógica ou porta de rede também estão incluídas nas seguintes propriedades do registro:
Propriedade | Descrição |
---|---|
BytesSent | Número total de bytes enviados durante o intervalo de tempo de geração de relatórios |
BytesReceived | Número total de bytes recebidos durante o intervalo de tempo de geração de relatórios |
Respostas | O número de respostas observadas durante o intervalo de tempo de geração de relatórios. |
ResponseTimeMax | O maior tempo de resposta (milissegundos) observado durante o intervalo de tempo de geração de relatórios. Se não houve valor, a propriedade ficará em branco. |
ResponseTimeMin | O menor tempo de resposta (milissegundos) observado durante o intervalo de tempo de geração de relatórios. Se não houve valor, a propriedade ficará em branco. |
ResponseTimeSum | A soma de todos os tempos de resposta (milissegundos) observados durante o intervalo de tempo de geração de relatórios. Se não houve valor, a propriedade ficará em branco. |
O terceiro tipo de dados relatado é o tempo de resposta: quanto tempo quem chama fica aguardando uma solicitação enviada em uma conexão para ser processada e respondida pelo ponto de extremidade remoto. O tempo de resposta relatado é uma estimativa do tempo real de resposta do protocolo do aplicativo subjacente. É calculado usando uma heurística baseada na observação do fluxo de dados entre a origem e a extremidade de destino de uma conexão de rede física. Conceitualmente, trata-se da diferença entre a hora em que o último byte de uma solicitação deixa o emissor e a hora em que o último byte da resposta volta para ele. Esses dois carimbos de data/hora são usados para delinear os eventos de solicitação e resposta em determinada conexão física. A diferença entre eles representa o tempo de resposta de uma única solicitação.
Na primeira versão do recurso, nosso algoritmo é uma aproximação que pode funcionar com vários graus de sucesso, dependendo do protocolo do aplicativo real usado em determinada conexão de rede. Por exemplo, a abordagem atual funciona bem para os protocolos baseados em solicitação-resposta, como o HTTP(S), mas não funciona com protocolos unidirecionais ou baseados em filas de mensagens.
Aqui estão alguns pontos importantes a considerar:
- Se um processo aceita conexões no mesmo endereço IP, mas em várias interfaces de rede, é relatado um registro separado para cada interface.
- Os registros com IP curinga não conterão nenhuma atividade. Eles são incluídos para representar o fato de que uma porta no computador está aberta para o tráfego de entrada.
- Para reduzir o nível de detalhes e o volume de dados, os registros com IP curinga serão omitidos quando houver um registro correspondente (para o mesmo processo, porta e protocolo) com um endereço IP específico. Quando um registro IP curinga for omitido, a propriedade de registro IsWildcardBind com o endereço IP específico será definida para "True" para indicar que a porta está exposta em cada interface do computador que gera os relatórios.
- As portas associadas somente a uma interface específica tem IsWildcardBind definida como False.
Nomenclatura e Classificação
Para sua conveniência, o endereço IP da extremidade remota de uma conexão é incluído na propriedade RemoteIp. No caso das conexões de entrada, o RemoteIp é igual ao SourceIp; já para conexões de saída, é igual ao DestinationIp. A propriedade RemoteDnsCanonicalNames representa os nomes DNS aceitos relatados pelo computador para RemoteIp. A propriedade RemoteDnsQuestions representa as perguntas DNS relatadas pelo computador para RemoteIp. A propriedade RemoveClassification está reservada para uso futuro.
Geolocalização
VMConnection também inclui informações de localização geográfica para a extremidade remota de cada registro de conexão nas seguintes propriedades do registro:
Propriedade | Descrição |
---|---|
RemoteCountry | O nome do país/da região que hospeda o RemoteIp. Por exemplo: Estados Unidos |
RemoteLatitude | A latitude da localização geográfica. Por exemplo: 47,68 |
RemoteLongitude | A longitude da localização geográfica. Por exemplo: -122,12 |
IP malicioso
Todas as propriedades RemoteIp na tabela VMConnection são verificadas em um conjunto de IPs com atividades maliciosas conhecidas. Se o RemoteIp for identificado como mal-intencionado, as propriedades a seguir serão preenchidas nas seguintes propriedades do registro (ficam em branco quando o IP não é considerado mal-intencionado):
Propriedade | Descrição |
---|---|
MaliciousIP | Endereço de RemoteIp |
IndicatorThreadType | O indicador de ameaça detectado é um dos seguintes valores, Botnet, C2, CryptoMining, Darknet, DDos, MaliciousUrl, Malware, Phishing, Proxy, PUA, Watchlist. |
Descrição | Descrição da ameaça observada. |
TLPLevel | O TLP (Traffic Light Protocol) é um dos valores definidos, Branco, Verde, Âmbar, Vermelho. |
Confiança | Os valores são 0 – 100. |
Severidade | Os valores são 0 – 5, onde 5 é o mais grave e 0 não é nada grave. O valor padrão é 3. |
FirstReportedDateTime | A primeira vez que o provedor relatou o indicador. |
LastReportedDateTime | A última vez que o indicador foi visto pelo Interflow. |
IsActive | Indica que os indicadores estão desativados com o valor Verdadeiro ou Falso. |
ReportReferenceLink | Links para relatórios relacionados a um dado observável. Para relatar um alerta falso ou obter mais detalhes sobre o IP mal-intencionado, abra um caso de suporte e forneça este link. |
AdditionalInformation | Fornece informações adicionais, se aplicáveis, sobre a ameaça observada. |
Portas
As portas em um computador que aceitam ativamente o tráfego de entrada ou que potencialmente podem aceitar o tráfego, mas estão ociosas durante a janela de tempo de relatório, são escritas na tabela VMBoundPort.
Cada registro na VMBoundPort é identificado pelos seguintes campos:
Propriedade | Descrição |
---|---|
Processo | Identidade do processo (ou grupos de processos) ao qual a porta está associada. |
Ip | Endereço IP da porta (pode ser IP curinga, 0.0.0.0) |
Porta | O número da porta |
Protocolo | O protocolo. Por exemplo, tcp ou udp (somente tcp tem suporte no momento). |
A identidade de uma porta é derivada dos cinco campos acima e é armazenada na propriedade PortId. Essa propriedade pode ser usada para encontrar rapidamente registros de uma porta específica ao longo do tempo.
Métricas
Os registros de porta incluem métricas que representam as conexões associadas a elas. Atualmente, as seguintes métricas são relatadas (os detalhes de cada métrica estão descritos na seção anterior):
- BytesSent e BytesReceived
- LinksEstablished, LinksTerminated, LinksLive
- ResposeTime, ResponseTimeMin, ResponseTimeMax, ResponseTimeSum
Aqui estão alguns pontos importantes a considerar:
- Se um processo aceita conexões no mesmo endereço IP, mas em várias interfaces de rede, é relatado um registro separado para cada interface.
- Os registros com IP curinga não conterão nenhuma atividade. Eles são incluídos para representar o fato de que uma porta no computador está aberta para o tráfego de entrada.
- Para reduzir o nível de detalhes e o volume de dados, os registros com IP curinga serão omitidos quando houver um registro correspondente (para o mesmo processo, porta e protocolo) com um endereço IP específico. Quando um registro IP curinga for omitido, a propriedade IsWildcardBind para o registro com o endereço IP específico será definida como True. Isso indica que a porta é exposta em cada interface do computador de relatório.
- As portas associadas somente a uma interface específica tem IsWildcardBind definida como False.
Registros VMComputer
Os registros com um tipo de VMComputer têm dados de inventário para servidores com o Dependency Agent. Esses registros têm as propriedades descritas na tabela a seguir:
Propriedade | Descrição |
---|---|
TenantId | O identificador exclusivo para o workspace |
SourceSystem | Insights |
TimeGenerated | Carimbo de data/hora do registro (UTC) |
Computador | O FQDN do computador |
AgentId | O identificador exclusivo para um computador que executa o Agente do Azure Monitor ou o agente do Log Analytics |
Computador | Nome do recurso do Azure Resource Manager para o computador exposto pelo ServiceMap. O formato é m-{GUID}, onde GUID é o mesmo GUID do AgentId. |
DisplayName | Nome de exibição |
FullDisplayName | Nome de exibição completo |
HostName | O nome do computador sem o nome de domínio |
BootTime | A hora de inicialização do computador (UTC) |
TimeZone | O fuso horário normalizado |
VirtualizationState | virtual, hipervisor, físico |
Ipv4Addresses | Matriz de endereços IPv4 |
Ipv4SubnetMasks | Matriz de máscaras de sub-rede IPv4 (na mesma ordem que Ipv4Addresses). |
Ipv4DefaultGateways | Matriz de gateways IPv4 |
Ipv6Addresses | Matriz de endereços IPv6 |
MacAddresses | Matriz de endereços MAC |
DnsNames | Matriz de nomes DNS associados ao computador. |
DependencyAgentVersion | A versão do Dependency Agent em execução no computador. |
OperatingSystemFamily | Linux, Windows |
OperatingSystemFullName | O nome completo do sistema operacional |
PhysicalMemoryMB | A memória física em megabytes |
Cpus | O número de processadores |
CpuSpeed | A velocidade da CPU em MHz |
VirtualMachineType | hyperv, vmware, xen |
VirtualMachineNativeId | A ID da VM conforme atribuída pelo seu hipervisor |
VirtualMachineNativeName | O nome da VM |
VirtualMachineHypervisorId | O identificador exclusivo do hipervisor que hospeda a VM |
HypervisorType | hyperv |
HypervisorId | A ID exclusiva do hipervisor |
HostingProvider | azure |
_ResourceId | O identificador exclusivo de um recurso do Azure |
AzureSubscriptionId | Um identificador global exclusivo que identifica sua assinatura |
AzureResourceGroup | O nome do grupo de recursos do Azure de que o computador é membro. |
AzureResourceName | O nome do recurso do Azure |
AzureLocation | A localização do recurso do Azure |
AzureUpdateDomain | O nome do domínio de atualização do Azure |
AzureFaultDomain | O nome do domínio de falha do Azure |
AzureVmId | O identificador exclusivo da máquina virtual do Azure |
AzureSize | O tamanho da máquina virtual do Azure |
AzureImagePublisher | O nome do distribuidor da VM do Azure |
AzureImageOffering | O nome do tipo de oferta da VM do Azure |
AzureImageSku | O SKU da imagem da VM do Azure |
AzureImageVersion | A versão da imagem da VM do Azure |
AzureCloudServiceName | O nome do serviço de nuvem do Azure |
AzureCloudServiceDeployment | ID de implantação do Serviço de Nuvem |
AzureCloudServiceRoleName | Nome da função do Serviço de Nuvem |
AzureCloudServiceRoleType | Tipo de função do Serviço de Nuvem: trabalho ou Web |
AzureCloudServiceInstanceId | ID da instância de função do Serviço de Nuvem |
AzureVmScaleSetName | O nome do conjunto de dimensionamento de máquinas virtuais |
AzureVmScaleSetDeployment | ID de implantação do conjunto de dimensionamento de máquinas virtuais |
AzureVmScaleSetResourceId | O identificador exclusivo do recurso do conjunto de dimensionamento de máquinas virtuais. |
AzureVmScaleSetInstanceId | O identificador exclusivo do conjunto de dimensionamento de máquinas virtuais |
AzureServiceFabricClusterId | O identificador exclusivo do cluster do Azure Service Fabric |
AzureServiceFabricClusterName | O nome do cluster do Azure Service Fabric |
Registros de VMProcess
Os registros com um tipo de VMProcess têm dados de inventário para processos conectados com TCP em servidores com o Dependency Agent. Esses registros têm as propriedades descritas na tabela a seguir:
Propriedade | Descrição |
---|---|
TenantId | O identificador exclusivo para o workspace |
SourceSystem | Insights |
TimeGenerated | Carimbo de data/hora do registro (UTC) |
Computador | O FQDN do computador |
AgentId | O identificador exclusivo para um computador que executa o Agente do Azure Monitor ou o agente do Log Analytics |
Computador | Nome do recurso do Azure Resource Manager para o computador exposto pelo ServiceMap. O formato é m-{GUID}, onde GUID é o mesmo GUID do AgentId. |
Processo | O identificador exclusivo do processo do Mapa do Serviço. O formato é p-{GUID}. |
ExecutableName | O nome do processo executável |
DisplayName | Nome de exibição do processo |
Função | Função de processo: webserver, appServer, databaseServer, ldapServer, smbServer |
Grupo | Nome do grupo do processo. Os processos no mesmo grupo estão logicamente relacionados, por exemplo, fazem parte do mesmo produto ou componente do sistema. |
StartTime | O tempo de início do pool de processos |
FirstPid | O primeiro PID no pool de processos |
Descrição | A descrição do processo |
CompanyName | O nome da empresa |
InternalName | O nome interno |
ProductName | O nome do produto |
ProductVersion | A versão do produto |
FileVersion | A versão do arquivo |
ExecutablePath | O caminho do executável |
CommandLine | A linha de comando |
WorkingDirectory | O diretório de trabalho |
Serviços | Uma matriz de serviços sob a qual o processo está sendo executado |
UserName | A conta sob a qual o processo está sendo executado |
UserDomain | O domínio sob o qual o processo está sendo executado |
_ResourceId | O identificador exclusivo para um processo dentro do workspace |
Exemplo de consultas de mapa
Lista todas as máquinas conhecidas
VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId
Quando a VM foi reiniciada pela última vez
let Today = now(); VMComputer | extend DaysSinceBoot = Today - BootTime | summarize by Computer, DaysSinceBoot, BootTime | sort by BootTime asc
Resumo das VMs do Azure por imagem, localização e SKU
VMComputer | where AzureLocation != "" | summarize by Computer, AzureImageOffering, AzureLocation, AzureImageSku
Lista a capacidade de memória física de todos os computadores gerenciados
VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId | project PhysicalMemoryMB, Computer
Listar o nome, DNS, IP e sistema operacional do computador
VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId | project Computer, OperatingSystemFullName, DnsNames, Ipv4Addresses
Localizar todos os processos com "sql" na linha de comando
VMProcess | where CommandLine contains_cs "sql" | summarize arg_max(TimeGenerated, *) by _ResourceId
Localizar uma máquina (registro mais recente) por nome de recurso
search in (VMComputer) "m-4b9c93f9-bc37-46df-b43c-899ba829e07b" | summarize arg_max(TimeGenerated, *) by _ResourceId
Localizar um computador (registro mais recente) pelo endereço IP
search in (VMComputer) "10.229.243.232" | summarize arg_max(TimeGenerated, *) by _ResourceId
Listar todos os processos conhecidos em um computador especificado
VMProcess | where Machine == "m-559dbcd8-3130-454d-8d1d-f624e57961bc" | summarize arg_max(TimeGenerated, *) by _ResourceId
Listar todos os computadores que executam o SQL Server
VMComputer | where AzureResourceName in ((search in (VMProcess) "*sql*" | distinct Machine)) | distinct Computer
Listar todas as versões de produtos exclusivas de curl no meu datacenter
VMProcess | where ExecutableName == "curl" | distinct ProductVersion
Criar um grupo de computadores de todos os computadores executando CentOS
VMComputer | where OperatingSystemFullName contains_cs "CentOS" | distinct Computer
Os bytes enviaram e receberam tendências
VMConnection | summarize sum(BytesSent), sum(BytesReceived) by bin(TimeGenerated,1hr), Computer | order by Computer desc | render timechart
Quais VMs do Azure transmitem a maioria dos bytes
VMConnection | join kind=fullouter(VMComputer) on $left.Computer == $right.Computer | summarize count(BytesSent) by Computer, AzureVMSize | sort by count_BytesSent desc
Vincular tendências de status
VMConnection | where TimeGenerated >= ago(24hr) | where Computer == "acme-demo" | summarize dcount(LinksEstablished), dcount(LinksLive), dcount(LinksFailed), dcount(LinksTerminated) by bin(TimeGenerated, 1h) | render timechart
Tendência com falhas de conexão
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
Portas vinculadas
VMBoundPort
| where TimeGenerated >= ago(24hr)
| where Computer == 'admdemo-appsvr'
| distinct Port, ProcessName
Número de portas abertas nos computadores
VMBoundPort
| where Ip != "127.0.0.1"
| summarize by Computer, Machine, Port, Protocol
| summarize OpenPorts=count() by Computer, Machine
| order by OpenPorts desc
Pontuar processos em seu workspace pelo número de portas que eles abriram
VMBoundPort
| where Ip != "127.0.0.1"
| summarize by ProcessName, Port, Protocol
| summarize OpenPorts=count() by ProcessName
| order by OpenPorts desc
Comportamento agregado para cada porta
Essa consulta pode ser usada para pontuar portas por atividade, por exemplo, portas com mais tráfego de entrada/saída, portas com a maioria das conexões
//
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
Resumir as conexões de saída a partir de um grupo de computadores
// 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
Registros de desempenho
Os registros com um tipo InsightsMetrics têm dados de desempenho do sistema operacional convidado da máquina virtual. Esses registros são coletados em intervalos de 60 segundos e têm as propriedades da seguinte tabela:
Propriedade | Descrição |
---|---|
TenantId | Identificador exclusivo para o workspace |
SourceSystem | Insights |
TimeGenerated | Hora em que o valor foi coletado (UTC) |
Computador | O FQDN do computador |
Origem | vm.azm.ms |
Namespace | Categoria do contador de desempenho |
Nome | Nome do contador de desempenho |
Val | Valor coletado |
Marcações | Detalhes relacionados sobre o registro. Confira a tabela abaixo para ver as marcas usadas com diferentes tipos de registro. |
AgentId | Identificador exclusivo para o agente de cada computador |
Tipo | InsightsMetrics |
ResourceId | ID de recurso da máquina virtual |
Os contadores de desempenho atualmente coletados na tabela InsightsMetrics estão listados na seguinte tabela:
Namespace | Nome | Descrição | Unidade | Marcações |
---|---|---|---|---|
Computador | Pulsação | Pulsação do Computador | ||
Memória | AvailableMB | Memória Disponível, em bytes | Megabytes | memorySizeMB – tamanho total da memória |
Rede | WriteBytesPerSecond | Bytes de Gravação de Rede por Segundo | BytesPerSecond | NetworkDeviceId – ID do dispositivo bytes – total de bytes enviados |
Rede | ReadBytesPerSecond | Bytes de Leitura de Rede por Segundo | BytesPerSecond | networkDeviceId – ID do dispositivo bytes – total de bytes recebidos |
Processador | UtilizationPercentage | Percentual de utilização do processador | Porcentagem | totalCpus – total de CPUs |
LogicalDisk | WritesPerSecond | Gravações de disco lógico por segundo | CountPerSecond | mountId – ID de montagem do dispositivo |
LogicalDisk | WriteLatencyMs | Latência de gravação de disco lógico em milissegundo | MilliSeconds | mountId – ID de montagem do dispositivo |
LogicalDisk | WriteBytesPerSecond | Bytes de gravação do disco lógico por segundo | BytesPerSecond | mountId – ID de montagem do dispositivo |
LogicalDisk | TransfersPerSecond | Transferências de disco lógico por segundo | CountPerSecond | mountId – ID de montagem do dispositivo |
LogicalDisk | TransferLatencyMs | Latência de transferência de disco lógico em milissegundo | MilliSeconds | mountId – ID de montagem do dispositivo |
LogicalDisk | ReadsPerSecond | Leituras de disco lógico por segundo | CountPerSecond | mountId – ID de montagem do dispositivo |
LogicalDisk | ReadLatencyMs | Milissegundo de latência de leitura de disco lógico | MilliSeconds | mountId – ID de montagem do dispositivo |
LogicalDisk | ReadBytesPerSecond | Bytes de leitura de disco lógico por segundo | BytesPerSecond | mountId – ID de montagem do dispositivo |
LogicalDisk | FreeSpacePercentage | Percentual de espaço livre do disco lógico | Porcentagem | mountId – ID de montagem do dispositivo |
LogicalDisk | FreeSpaceMB | Espaço livre em disco lógico em bytes | Megabytes | mountId – ID de montagem do dispositivo diskSizeMB – tamanho total do disco |
LogicalDisk | BytesPerSecond | Bytes de disco lógico por segundo | BytesPerSecond | mountId – ID de montagem do dispositivo |
Próximas etapas
Se faz pouco tempo que você começou a escrever consultas de log no Azure Monitor, leia como usar o Log Analytics no portal do Azure para escrever consultas de log.
Saiba mais sobre como escrever consultas de pesquisa.