Como consultar logs a partir de insights de VM
Atenção
Este artigo faz referência ao CentOS, uma distribuição Linux que está se aproximando do status de Fim da Vida Útil (EOL). Por favor, considere o seu uso e planejamento de acordo. Para obter mais informações, consulte as diretrizes de Fim da Vida Útil do CentOS.
O VM insights coleta métricas de desempenho e conexão, dados de inventário de computador e processo e informações de estado de integridade e os encaminha para o espaço de trabalho do Log Analytics no Azure Monitor. Esses dados estão 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, deteção e solução de problemas de desempenho sob demanda.
Mapear registos
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 exclusivos, além dos registros que são gerados quando um processo ou computador é iniciado ou adicionado aos insights da VM. Os campos e valores na tabela VMComputer são mapeados para campos do recurso Máquina na API ServiceMap Azure Resource Manager. Os campos e valores na tabela VMProcess são mapeados para os campos do recurso Process na API ServiceMap Azure Resource Manager. O campo _ResourceId corresponde ao campo de nome no recurso correspondente do Resource Manager.
Há propriedades geradas internamente que você pode usar para identificar processos e computadores exclusivos:
- Computador: use _ResourceId para identificar exclusivamente um computador em um espaço de trabalho do Log Analytics.
- Processo: use _ResourceId para identificar exclusivamente um processo em um espaço de trabalho do Log Analytics.
Como vários registros podem existir para um processo especificado e computador em um intervalo de tempo especificado, as consultas podem retornar mais de um registro para o mesmo computador ou processo. Para incluir apenas o registro mais recente, adicione | summarize arg_max(TimeGenerated, *) by ResourceId
à consulta.
Ligações e portas
O recurso Métricas de Conexão apresenta duas novas tabelas nos logs do Azure Monitor - VMConnection e VMBoundPort. Essas tabelas fornecem informações sobre as conexões de uma máquina (entrada e saída) e as portas do servidor que estão abertas/ativas nelas. ConnectionMetrics também são expostos por meio de APIs que fornecem os meios para obter uma métrica específica durante uma janela de tempo. As conexões TCP resultantes da aceitação em um soquete de escuta são de entrada, enquanto aquelas criadas pela conexão a um determinado IP e porta são de saída. A direção de uma conexão é representada pela propriedade Direction, que pode ser definida como entrada ou saída.
Os registros nessas tabelas são gerados a partir de dados relatados pelo Agente de Dependência. Cada registo representa uma observação num intervalo de tempo de 1 minuto. A propriedade TimeGenerated indica o início do intervalo de tempo. Cada registro contém informações para identificar a respetiva entidade, ou seja, conexão ou porta, bem como métricas associadas a essa entidade. Atualmente, apenas a atividade de rede que ocorre usando TCP sobre IPv4 é relatada.
Domínios comuns e convenções
Os seguintes campos e convenções aplicam-se ao VMConnection e ao VMBoundPort:
- Computador: Nome de domínio totalmente qualificado da máquina de relatórios
- AgentId: o identificador exclusivo de uma máquina que executa o Azure Monitor Agent ou o agente do Log Analytics
- Máquina: Nome do recurso do Azure Resource Manager para a máquina exposta pelo ServiceMap. É do formato m-{GUID}, onde GUID é o mesmo GUID que AgentId
- Processo: Nome do recurso do Azure Resource Manager para o processo exposto pelo ServiceMap. É da forma p-{hex string}. O processo é único dentro de um escopo de máquina e, para gerar um ID de processo exclusivo entre máquinas, combine os campos Máquina 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 conexões de rede físicas individuais. Várias conexões de rede físicas são agrupadas em uma conexão lógica, que é refletida na respetiva tabela. Ou seja, os registros na tabela VMConnection representam um agrupamento lógico e não as conexões físicas individuais que estão sendo observadas. A conexão de rede física que compartilha o mesmo valor para os seguintes atributos durante um determinado intervalo de um minuto é agregada em um único registro lógico no VMConnection.
Property | Description |
---|---|
Direção | Direção da conexão, o valor é entrada ou saída |
Máquina | O FQDN do computador |
Processo | Identidade do processo ou grupos de processos, iniciando/aceitando a conexão |
FonteIp | Endereço IP da fonte |
DestinationIp | Endereço IP do destino |
DestinationPort | Número da porta de destino |
Protocolo | Protocolo usado para a conexão. Valores é tcp. |
Para levar em conta o impacto do agrupamento, as informações sobre o número de conexões físicas agrupadas são fornecidas nas seguintes propriedades do registro:
Property | Description |
---|---|
LigaçõesEstabelecidas | O número de conexões de rede físicas que foram estabelecidas durante a janela de tempo de relatório |
LinksEncerrado | O número de conexões de rede físicas que foram encerradas durante a janela de tempo de relatório |
LinksFailed | O número de conexões de rede físicas que falharam durante a janela de tempo de relatório. Atualmente, essas informações estão disponíveis apenas para conexões de saída. |
LinksLive | O número de conexões de rede físicas que estavam abertas no final da janela de tempo de relatório |
Métricas
Além das métricas de contagem de conexão, as informações sobre o volume de dados enviados e recebidos em uma determinada conexão lógica ou porta de rede também são incluídas nas seguintes propriedades do registro:
Property | Description |
---|---|
BytesSent | Número total de bytes que foram enviados durante a janela de tempo de relatório |
BytesRecebidos | Número total de bytes recebidos durante a janela de tempo de relatório |
Respostas | O número de respostas observadas durante a janela de tempo de relatório. |
ResponseTimeMax | O maior tempo de resposta (milissegundos) observado durante a janela de tempo de relatório. Se nenhum valor, a propriedade estará em branco. |
ResponseTimeMin | O menor tempo de resposta (milissegundos) observado durante a janela de tempo de relatório. Se nenhum valor, a propriedade estará em branco. |
ResponseTimeSum | A soma de todos os tempos de resposta (milissegundos) observados durante a janela de tempo de relatório. Se nenhum valor, a propriedade estará em branco. |
O terceiro tipo de dados que estão sendo relatados é o tempo de resposta - quanto tempo um chamador gasta esperando que uma solicitação enviada por uma conexão seja processada e respondida pelo ponto de extremidade remoto. O tempo de resposta reportado é uma estimativa do tempo de resposta real do protocolo de aplicação subjacente. É calculado usando heurística baseada na observação do fluxo de dados entre a extremidade de origem e de destino de uma conexão de rede física. Conceitualmente, é a diferença entre o momento em que o último byte de uma solicitação sai do remetente e o momento em que o último byte da resposta chega de volta a ele. Esses dois carimbos de data/hora são usados para delinear eventos de solicitação e resposta em uma determinada conexão física. A diferença entre eles representa o tempo de resposta de uma única solicitação.
Nesta primeira versão deste recurso, nosso algoritmo é uma aproximação que pode funcionar com vários graus de sucesso, dependendo do protocolo de aplicação real usado para uma determinada conexão de rede. Por exemplo, a abordagem atual funciona bem para protocolos baseados em solicitação-resposta, como HTTP(S), mas não funciona com protocolos unidirecionais ou baseados em fila de mensagens.
Aqui estão alguns pontos importantes a considerar:
- Se um processo aceitar conexões no mesmo endereço IP, mas em várias interfaces de rede, um registro separado para cada interface será relatado.
- Os registros com IP curinga não conterão nenhuma atividade. Eles são incluídos para representar o fato de que uma porta na máquina está aberta ao tráfego de entrada.
- Para reduzir a detalhamento 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 é omitido, a propriedade de registro IsWildcardBind com o endereço IP específico será definida como "True" para indicar que a porta está exposta em cada interface da máquina de relatório.
- As portas que são vinculadas somente em uma interface específica têm IsWildcardBind definido como False.
Nomenclatura e classificação
Por conveniência, o endereço IP da extremidade remota de uma conexão está incluído na propriedade RemoteIp. Para conexões de entrada, RemoteIp é o mesmo que SourceIp, enquanto para conexões de saída, é o mesmo que DestinationIp. A propriedade RemoteDnsCanonicalNames representa os nomes canônicos DNS relatados pela máquina para RemoteIp. A propriedade RemoteDnsQuestions representa as perguntas DNS relatadas pela máquina para RemoteIp. A propriedade RemoveClassification está reservada para uso futuro.
Geolocalização
O VMConnection também inclui informações de geolocalização para a extremidade remota de cada registro de conexão nas seguintes propriedades do registro:
Property | Description |
---|---|
País Remoto | O nome do país/região que hospeda o RemoteIp. Por exemplo, os Estados Unidos |
RemoteLatitude | A latitude de geolocalização. Por exemplo, 47,68 |
Longitude remota | A longitude de geolocalização. Por exemplo, -122.12 |
IP malicioso
Cada propriedade RemoteIp na tabela VMConnection é verificada em relação a um conjunto de IPs com atividade maliciosa conhecida. Se o RemoteIp for identificado como malicioso, as seguintes propriedades serão preenchidas (estão vazias, quando o IP não é considerado malicioso) nas seguintes propriedades do registo:
Property | Description |
---|---|
MaliciousIp | O endereço RemoteIp |
IndicatorThreadType | O indicador de ameaça detetado é um dos seguintes valores, Botnet, C2, CryptoMining, Darknet, DDos, MaliciousUrl, Malware, Phishing, Proxy, PUA, Watchlist. |
Description | Descrição da ameaça observada. |
TLPLevel | Nível de Protocolo de Semáforo (TLP) é um dos valores definidos, Branco, Verde, Âmbar, Vermelho. |
Confiança | Os valores são 0 – 100. |
Gravidade | Os valores são 0 – 5, onde 5 é o mais grave e 0 não é 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 pela Interflow. |
IsActive | Indica que os indicadores estão desativados com o valor True ou False . |
ReportReferenceLink | Links para relatórios relacionados a um determinado observável. Para denunciar um alerta falso ou obter mais detalhes sobre o IP malicioso, abra um caso de suporte e forneça este link. |
Informação Adicional | Fornece informações adicionais, se aplicável, sobre a ameaça observada. |
Portas
As portas em uma máquina que aceitam ativamente o tráfego de entrada ou que poderiam potencialmente aceitar tráfego, mas estão ociosas durante a janela de tempo de relatório, são gravadas na tabela VMBoundPort.
Cada registro no VMBoundPort é identificado pelos seguintes campos:
Property | Description |
---|---|
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. Exemplo, tcp ou udp (apenas tcp é suportado atualmente). |
A identidade de uma porta é derivada dos cinco campos acima e é armazenada na propriedade PortId. Essa propriedade pode ser usada para localizar rapidamente registros para uma porta específica ao longo do tempo.
Métricas
Os registros de porta incluem métricas que representam as conexões associadas a eles. Atualmente, as seguintes métricas são relatadas (os detalhes de cada métrica são descritos na seção anterior):
- BytesSent e BytesReceived
- LinksEstabelecidos, LinksTerminated, LinksLive
- ResposeTime, ResponseTimeMin, ResponseTimeMax, ResponseTimeSum
Aqui estão alguns pontos importantes a considerar:
- Se um processo aceitar conexões no mesmo endereço IP, mas em várias interfaces de rede, um registro separado para cada interface será relatado.
- Os registros com IP curinga não conterão nenhuma atividade. Eles são incluídos para representar o fato de que uma porta na máquina está aberta ao tráfego de entrada.
- Para reduzir a detalhamento 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 é omitido, a propriedade IsWildcardBind do registro com o endereço IP específico será definida como True. Isso indica que a porta está exposta em todas as interfaces da máquina de relatórios.
- As portas que são vinculadas somente em uma interface específica têm IsWildcardBind definido como False.
Registos VMComputer
Os registros com um tipo de VMComputer têm dados de inventário para servidores com o agente de dependência. Esses registros têm as propriedades na tabela a seguir:
Property | Description |
---|---|
TenantId | O identificador exclusivo do espaço de trabalho |
SourceSystem | Informações |
TimeGenerated | Carimbo de data/hora do registo (UTC) |
Computador | O FQDN do computador |
AgentId | O identificador exclusivo de uma máquina que executa o Azure Monitor Agent ou o agente do Log Analytics |
Máquina | Nome do recurso do Azure Resource Manager para a máquina exposta pelo ServiceMap. É do formato m-{GUID}, onde GUID é o mesmo GUID que AgentId. |
DisplayName | Nome a apresentar |
FullDisplayName | Nome completo para exibição |
Nome do Anfitrião | O nome da máquina sem nome de domínio |
Tempo de inicialização | O tempo de inicialização da máquina (UTC) |
TimeZone | O fuso horário normalizado |
VirtualizationState | virtual, hipervisor, físico |
Ipv4Endereços | Matriz de endereços IPv4 |
Ipv4SubnetMasks | Matriz de máscaras de sub-rede IPv4 (na mesma ordem que Ipv4Addresses). |
Ipv4DefaultGateways | Matriz de gateways IPv4 |
Ipv6Endereços | Matriz de endereços IPv6 |
MacEndereços | Matriz de endereços MAC |
DnsNames | Matriz de nomes DNS associados à máquina. |
DependencyAgentVersion | A versão do agente de dependência em execução na máquina. |
Família OperatingSystem: | Linux, Janelas |
OperatingSystemFullName | O nome completo do sistema operacional |
PhysicalMemoryMB | A memória física em megabytes |
Cpus | O número de processadores |
CpuVelocidade | A velocidade da CPU em MHz |
VirtualMachineType | Hyperv, VMware, Xen |
VirtualMachineNativeId | O ID da VM conforme atribuído pelo hipervisor |
VirtualMachineNativeName | O nome da VM |
VirtualMachineHypervisorId | O identificador exclusivo do hipervisor que hospeda a VM |
Tipo de hipervisor | hiperv |
Id do hipervisor | A ID exclusiva do hipervisor |
HostingProvider | azure |
_ResourceId | O identificador exclusivo de um recurso do Azure |
AzureSubscriptionId | Um identificador global exclusivo que identifica a sua subscrição |
AzureResourceGroup | O nome do grupo de recursos do Azure do qual a máquina é membro. |
AzureResourceName | O nome do recurso do Azure |
AzureLocalização | O local 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 VM do Azure |
AzureImagePublisher | O nome do editor da VM do Azure |
AzureImageOffering | O nome do tipo de oferta da VM do Azure |
AzureImageSku | A 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 para o serviço de nuvem |
AzureCloudServiceRoleName | Nome da função do Serviço de Nuvem |
AzureCloudServiceRoleType | Tipo de função do Serviço de Nuvem: trabalhador ou Web |
AzureCloudServiceInstanceId | ID da instância de função do Serviço de Nuvem |
AzureVmScaleSetName | O nome do conjunto de escala da máquina virtual |
AzureVmScaleSetDeployment | ID de implantação do conjunto de dimensionamento de máquina virtual |
AzureVmScaleSetResourceId | O identificador exclusivo do recurso de conjunto de escala de máquina virtual. |
AzureVmScaleSetInstanceId | O identificador exclusivo do conjunto de escala da máquina virtual |
AzureServiceFabricClusterId | O identificador exclusivo do cluster do Azure Service Fabric |
AzureServiceFabricClusterName | O nome do cluster do Azure Service Fabric |
Registos VMProcess
Os registros com um tipo de VMProcess têm dados de inventário para processos conectados a TCP em servidores com o agente de dependência. Esses registros têm as propriedades na tabela a seguir:
Property | Description |
---|---|
TenantId | O identificador exclusivo do espaço de trabalho |
SourceSystem | Informações |
TimeGenerated | Carimbo de data/hora do registo (UTC) |
Computador | O FQDN do computador |
AgentId | O identificador exclusivo de uma máquina que executa o Azure Monitor Agent ou o agente do Log Analytics |
Máquina | Nome do recurso do Azure Resource Manager para a máquina exposta pelo ServiceMap. É do formato m-{GUID}, onde GUID é o mesmo GUID que AgentId. |
Processo | O identificador exclusivo do processo do Mapa de Serviços. É na forma de p-{GUID}. |
Nome_executável | O nome do executável do processo |
DisplayName | Nome de exibição do processo |
Função | Função do processo: webserver, appServer, databaseServer, ldapServer, smbServer |
Agrupar | Nome do grupo de processos. Os processos do mesmo grupo estão logicamente relacionados, por exemplo, parte do mesmo produto ou componente do sistema. |
StartTime | A hora de início do pool de processos |
PrimeiroPid | O primeiro PID no pool de processos |
Description | A descrição do processo |
CompanyName | O nome da empresa |
Nome Interno | O nome interno |
ProductName | O nome do produto |
Versão do produto | A versão do produto |
Versão do arquivo | A versão do ficheiro |
Caminho Executável | O caminho do executável |
Linha de comando | A linha de comando |
WorkingDirectory | O diretório de trabalho |
Serviços | Uma matriz de serviços sob os quais o processo está sendo executado |
Nome de utilizador | 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 de um processo dentro do espaço de trabalho |
Exemplos de consultas de mapa
Listar todas as máquinas conhecidas
VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId
Quando a VM foi reinicializada 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, local e SKU
VMComputer | where AzureLocation != "" | summarize by Computer, AzureImageOffering, AzureLocation, AzureImageSku
Listar a capacidade de memória física de todos os computadores gerenciados
VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId | project PhysicalMemoryMB, Computer
Listar nome do computador, DNS, IP e sistema operacional
VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId | project Computer, OperatingSystemFullName, DnsNames, Ipv4Addresses
Encontre 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 (registo mais recente) por nome de recurso
search in (VMComputer) "m-4b9c93f9-bc37-46df-b43c-899ba829e07b" | summarize arg_max(TimeGenerated, *) by _ResourceId
Localizar uma máquina (registo mais recente) por endereço IP
search in (VMComputer) "10.229.243.232" | summarize arg_max(TimeGenerated, *) by _ResourceId
Listar todos os processos conhecidos em uma máquina especificada
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 exclusivas do produto curl no meu datacenter
VMProcess | where ExecutableName == "curl" | distinct ProductVersion
Criar um grupo de computadores de todos os computadores que executam o CentOS
VMComputer | where OperatingSystemFullName contains_cs "CentOS" | distinct Computer
Bytes enviados e tendências recebidas
VMConnection | summarize sum(BytesSent), sum(BytesReceived) by bin(TimeGenerated,1hr), Computer | order by Computer desc | render timechart
Quais VMs do Azure estão transmitindo mais bytes
VMConnection | join kind=fullouter(VMComputer) on $left.Computer == $right.Computer | summarize count(BytesSent) by Computer, AzureVMSize | sort by count_BytesSent desc
Tendências do status do link
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 de 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 acopladas
VMBoundPort
| where TimeGenerated >= ago(24hr)
| where Computer == 'admdemo-appsvr'
| distinct Port, ProcessName
Número de portas abertas entre máquinas
VMBoundPort
| where Ip != "127.0.0.1"
| summarize by Computer, Machine, Port, Protocol
| summarize OpenPorts=count() by Computer, Machine
| order by OpenPorts desc
Classifique os processos em seu espaço de trabalho pelo número de portas abertas
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 mais 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 de um grupo de máquinas
// 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
Registos de desempenho
Os registros com um tipo de 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 na tabela a seguir:
Property | Description |
---|---|
TenantId | Identificador exclusivo para o espaço de trabalho |
SourceSystem | Informações |
TimeGenerated | Hora em que o valor foi recolhido (UTC) |
Computador | O FQDN do computador |
Origem | vm.azm.ms |
Espaço de Nomes | Categoria do contador de desempenho |
Nome | Nome do contador de desempenho |
Val | Valor recolhido |
Etiquetas | Detalhes relacionados sobre o registro. Consulte a tabela abaixo para ver as tags usadas com diferentes tipos de registro. |
AgentId | Identificador exclusivo para cada agente do computador |
Type | InsightsMetrics |
ResourceId | ID do recurso da máquina virtual |
Os contadores de desempenho atualmente coletados na tabela InsightsMetrics estão listados na tabela a seguir:
Espaço de Nomes | Nome | Descrição | Unidade | Etiquetas |
---|---|---|---|---|
Computador | Heartbeat | Batimento cardíaco do computador | ||
Memória | DisponívelMB disponível | Bytes de memória disponíveis | 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 | UtilizaçãoPercentagem | Porcentagem de utilização do processador | Percentagem | 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 milissegundo | Milissegundos | mountId - ID de montagem do dispositivo |
LogicalDisk | WriteBytesPerSecond | Bytes de gravação de disco lógico por segundo | BytesPerSecond | mountId - ID de montagem do dispositivo |
LogicalDisk | TransferênciasPerSecond | 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 milissegundo | Milissegundos | mountId - ID de montagem do dispositivo |
LogicalDisk | ReadsPerSecond | Leituras de disco lógico por segundo | CountPerSecond | mountId - ID de montagem do dispositivo |
LogicalDisk | ReadLatencyMs | Latência de leitura de disco lógico milissegundo | Milissegundos | 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 | FreeSpacePercentagem | Percentagem de Espaço Livre em Disco Lógico | Percentagem | mountId - ID de montagem do dispositivo |
LogicalDisk | FreeSpaceMB | Bytes de espaço livre em disco lógico | 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óximos passos
Se você é novo em escrever consultas de log no Azure Monitor, revise como usar o Log Analytics no portal do Azure para escrever consultas de log.
Saiba mais sobre como escrever consultas de pesquisa.