Procedimiento para consultar registros desde VM Insights
Precaución
En este artículo se hace referencia a CentOS, una distribución de Linux con un estado de finalización del servicio (EOL). Tenga en cuenta su uso y planeación en consecuencia. Para más información, consulte la Guía de fin de ciclo de vida de CentOS.
VM Insights recopila métricas de rendimiento y conexión, datos de inventario de proceso y equipo, e información sobre el estado, y reenvía estos datos al área de trabajo de Log Analytics en Azure Monitor. Estos datos están disponibles para consulta en Azure Monitor. Estos datos se pueden aplicar a escenarios que incluyen la planeación de la migración, el análisis de la capacidad, la detección y la solución de problemas de rendimiento a petición.
Registros de asignación
Importante
Si la máquina virtual usa VM Insights con el agente de Azure Monitor, deberá tener habilitados los procesos y las dependencias para que se creen estas tablas.
Se genera un registro por hora para cada equipo y proceso únicos, además de los registros generados cuando un proceso o equipo se inicia o se agrega a VM Insights. Los campos y valores de la tabla VMComputer se asignan a los campos del recurso Máquina en la API de Azure Resource Manager de ServiceMap. Los campos y valores de la tabla VMProcess se asignan a los campos del recurso de proceso en la API de Azure Resource Manager de ServiceMap. El campo _ResourceId coincide con el campo de nombre en el recurso de Resource Manager correspondiente.
Hay propiedades generadas internamente que puede usar para identificar los equipos y procesos únicos:
- Equipo: Use _ResourceId para identificar de forma exclusiva un equipo dentro de un área de trabajo de Log Analytics.
- Proceso: Use _ResourceId para identificar de forma exclusiva un proceso dentro de un área de trabajo de Log Analytics.
Puesto que pueden existir varios registros para un proceso y equipo especificados en un intervalo de tiempo concreto, las consultas pueden devolver más de un registro para el mismo proceso o equipo. Para incluir solo el registro más reciente, agregue | summarize arg_max(TimeGenerated, *) by ResourceId
a la consulta.
Conexiones y puertos
La característica de métricas de conexión presenta dos nuevas tablas en los registros de Azure Monitor: VMConnection y VMBoundPort. Estas tablas proporcionan información sobre las conexiones de una máquina (entrantes y salientes) y los puertos del servidor que están abiertos o activos en estas. Las métricas de conexión también se exponen a través de API que proporcionan los medios para obtener una métrica específica durante un período de tiempo. Las conexiones TCP resultantes de aceptar en un socket de escucha son de entrada, mientras que las creadas al conectarse a un puerto y una IP concretos son de salida. La dirección de una conexión se representa mediante la propiedad Direction, que se puede definir como inbound u outbound.
Los registros de estas tablas se generan a partir de los datos que notifica Dependency Agent. Cada registro representa una observación en un intervalo de tiempo de un minuto. La propiedad TimeGenerated indica el inicio del intervalo de tiempo. Cada registro contiene información para identificar la entidad correspondiente; es decir, conexión o puerto, así como las métricas asociadas con esa entidad. Actualmente, solo se notifica la actividad de red que tiene lugar mediante TCP a través de IPv4.
Campos y convenciones comunes
Los campos y las convenciones siguientes se aplican a VMConnection y VMBoundPort:
- Equipo: nombre de dominio completo de la máquina que genera el informe.
- AgentId: el identificador único de una máquina que ejecuta el agente de Azure Monitor o el agente de Log Analytics
- Máquina: nombre del recurso de Azure Resource Manager para la máquina expuesta por ServiceMap. Tiene el formato m-{GUID}, donde GUID es el mismo GUID que AgentId
- Proceso: nombre del recurso de Azure Resource Manager para el proceso expuesto por ServiceMap. Tiene el formato p-{hex string}. El proceso es único dentro de un ámbito de la máquina y, para generar un identificador de proceso único entre máquinas, combina los valores de los campos Máquina y Proceso.
- ProcessName: nombre del archivo ejecutable del proceso de informes.
- Todas las direcciones IP son cadenas en formato canónico IPv4, como 13.107.3.160.
Para administrar el costo y la complejidad, los registros de conexión no representan conexiones de red físicas individuales. Varias conexiones de red físicas se agrupan en una conexión lógica, que, a continuación, se refleja en la tabla correspondiente. Lo que significa que los registros de la tabla VMConnection representan una agrupación lógica, y no las conexiones físicas individuales que se observan. Las conexiones de red físicas que comparten el mismo valor para los siguientes atributos durante un intervalo determinado de un minuto se agregan en un registro lógico único en VMConnection.
Propiedad | Descripción |
---|---|
Dirección | Dirección de la conexión; el valor es inbound u outbound |
Máquina | FQDN del equipo |
Proceso | Identidad de proceso o grupos de procesos; iniciar/aceptar la conexión |
SourceIp | Dirección IP de origen |
DestinationIp | Dirección IP de destino. |
DestinationPort | Número de puerto de destino |
Protocolo | Protocolo utilizado para la conexión. Los valores son tcp. |
Para tener en cuenta el impacto de la agrupación, se proporciona información sobre el número de conexiones físicas agrupadas en las siguientes propiedades del registro:
Propiedad | Descripción |
---|---|
LinksEstablished | Número de conexiones de red físicas que se han establecido durante el período de tiempo de generación de informes |
LinksTerminated | Número de conexiones de red físicas que han finalizado durante el período de tiempo de generación de informes |
LinksFailed | Número de conexiones de red físicas que han generado errores durante el período de tiempo de generación de informes Actualmente, esta información está disponible solo para las conexiones salientes. |
LinksLive | Número de conexiones de red físicas que estaban abiertas al final del período de tiempo de generación de informes |
Métricas
Además de las métricas de recuento de conexión, también se incluye información sobre el volumen de datos enviado y recibido en una conexión lógica o puerto de red concreto en las siguientes propiedades del registro:
Propiedad | Descripción |
---|---|
BytesSent | Número total de bytes enviados durante el período de tiempo de generación de informes |
BytesReceived | Número total de bytes recibidos durante el período de tiempo de generación de informes |
Respuestas | Número de respuestas observado durante el período de tiempo de generación de informes. |
ResponseTimeMax | Mayor tiempo de respuesta (milisegundos) observado durante el período de tiempo de generación de informes. Si no hay ningún valor, la propiedad está en blanco. |
ResponseTimeMin | Menor tiempo de respuesta (milisegundos) observado durante el período de tiempo de generación de informes. Si no hay ningún valor, la propiedad está en blanco. |
ResponseTimeMin | Suma de todos los tiempos de respuesta (milisegundos) observados durante el período de tiempo de generación de informes. Si no hay ningún valor, la propiedad está en blanco. |
El tercer tipo de datos que se va a notificar es el tiempo de respuesta: ¿cuánto tiempo pasa el autor de la llamada esperando que una solicitud enviada a través de una conexión se procese y reciba respuesta del punto de conexión remoto? El tiempo de respuesta notificado es una estimación del tiempo de respuesta real del protocolo de aplicación subyacente. Se calcula mediante heurística basada en la observación del flujo de datos entre el origen y el destino final de una conexión de red física. Conceptualmente, es la diferencia entre el momento en que el remitente deja el último byte de una solicitud y el momento en que regresa el último byte de la respuesta. Estas dos marcas de tiempo se utilizan para delinear los eventos de solicitud y respuesta de una conexión física concreta. La diferencia entre ellas representa el tiempo de respuesta de una única solicitud.
En esta primera versión de esta característica, el algoritmo es una aproximación que puede funcionar con cierto grado de éxito según el protocolo de aplicación real usado para una conexión de red concreta. Por ejemplo, el enfoque actual funciona bien para protocolos basados en solicitudes y respuestas, como HTTP(S), pero no funciona con protocolos unidireccionales ni basados en colas de mensajes.
A continuación se incluyen puntos importantes que debe tener en cuenta:
- Si un proceso acepta conexiones en la misma dirección IP, pero a través de varias interfaces de red, se notificará un registro independiente para cada interfaz.
- Los registros con IP comodín no contendrán ninguna actividad. Se incluyen para representar el hecho de que un puerto del equipo está abierto al tráfico de entrada.
- Para reducir el nivel de detalle y el volumen de datos, los registros con dirección IP de carácter comodín se omitirán cuando haya un registro coincidente (para el mismo proceso, puerto y protocolo) con una dirección IP específica. Cuando un registro de dirección IP comodín se omite, la propiedad del registro IsWildcardBind con la dirección IP específica se definirá como "True" para indicar que el puerto se expone a través de cada interfaz de la máquina de generación de informes.
- Los puertos que están enlazados solo en una interfaz específica tienen IsWildcardBind definido como False.
Nomenclatura y clasificación
Para mayor comodidad, la dirección IP del extremo remoto de una conexión se incluye en la propiedad RemoteIp. Para las conexiones entrantes, RemoteIp coincide con SourceIp, mientras que para las conexiones salientes, es lo mismo que DestinationIp. La propiedad RemoteDnsCanonicalNames representa los nombres canónicos DNS que notifica la máquina para RemoteIp. La propiedad RemoteDnsQuestions representa las preguntas DNS que notifica la máquina para RemoteIp. La propiedad RemoveClassification está reservada para usarse en el futuro.
Geolocalización
VMConnection también incluye información de ubicación geográfica para el extremo remoto de cada registro de conexión en las siguientes propiedades del registro:
Propiedad | Descripción |
---|---|
RemoteCountry | Nombre del país o región que hospeda la dirección IP de RemoteIp. Por ejemplo: Estados Unidos |
RemoteLatitude | Latitud de geolocalización. Por ejemplo, 47.68 |
RemoteLongitude | Longitud de geolocalización. Por ejemplo, -122.12 |
Direcciones IP malintencionadas
Todas las propiedades de RemoteIp de la tabla VMConnection se comparan con un conjunto de direcciones IP con actividad malintencionada conocida. Si RemoteIp se identifica como malintencionado, se completarán las siguientes propiedades (si la IP no se considera malintencionada, están vacías) en las siguientes propiedades del registro:
Propiedad | Descripción |
---|---|
MaliciousIP | Dirección RemoteIp |
IndicatorThreadType | El indicador de amenazas detectado es uno de los siguientes valores: Botnet, C2, CryptoMining, Darknet, DDos , MaliciousUrl, Malware, Phishing, Proxy, PUA, Watchlist. |
Descripción | Descripción de la amenaza observada. |
TLPLevel | Nivel de protocolo de semáforo (TLP) es uno de los valores definidos: blanco, verde, ámbar, rojo. |
Confianza | Los valores válidos se encuentran entre 0 y 100. |
severity | Los valores se encuentran entre 0 y 5, donde 5 donde 5 es el de mayor severidad y 0 indica sin severidad. El valor predeterminado es 3. |
FirstReportedDateTime | La primera vez que el proveedor informó sobre el indicador. |
LastReportedDateTime | La última vez que Interflow ha visto el indicador. |
IsActive | Indica que los indicadores se desactivan con el valor True o False. |
ReportReferenceLink | Vincula a informes relacionados con un objeto observable especificado. Para notificar una alerta falsa o obtener más detalles sobre la dirección IP malintencionada, abra un caso de soporte técnico y proporcione este vínculo. |
AdditionalInformation | Proporciona información adicional, si procede, sobre la amenaza observada. |
Puertos
En una máquina, los puertos que aceptan activamente el tráfico entrante o que pueden aceptar tráfico potencialmente, pero que están inactivas durante el período de tiempo de informes, se escriben en la tabla VMBoundPort.
Todos los registros de VMBoundPort se identifican mediante los campos siguientes:
Propiedad | Descripción |
---|---|
Proceso | Identidad del proceso (o grupos de procesos) a la que está asociado el puerto. |
Ip | Dirección IP del puerto (puede ser la dirección IP comodín, 0.0.0.0). |
Port | Número del puerto. |
Protocolo | Protocolo. Ejemplo, tcp o udp (solo se admite tcp actualmente). |
Identidad de la que se deriva un puerto de los cinco campos anteriores. Se almacena en la propiedad PortId. Esta propiedad se puede usar para buscar rápidamente los registros de un puerto específico a través del tiempo.
Métricas
Los registros de puerto incluyen métricas que representen las conexiones asociadas. Actualmente, se notifican las métricas siguientes (los detalles de cada métrica se describen en la sección anterior):
- BytesSent y BytesReceived
- LinksEstablished, LinksTerminated y LinksLive
- ResposeTime, ResponseTimeMin, ResponseTimeMax y ResponseTimeSum
A continuación se incluyen puntos importantes que debe tener en cuenta:
- Si un proceso acepta conexiones en la misma dirección IP, pero a través de varias interfaces de red, se notificará un registro independiente para cada interfaz.
- Los registros con IP comodín no contendrán ninguna actividad. Se incluyen para representar el hecho de que un puerto del equipo está abierto al tráfico de entrada.
- Para reducir el nivel de detalle y el volumen de datos, los registros con dirección IP de carácter comodín se omitirán cuando haya un registro coincidente (para el mismo proceso, puerto y protocolo) con una dirección IP específica. Si un registro de dirección IP comodín se omite, la propiedad IsWildcardBind del registro con la dirección IP específica se establecerá en True. Esto indica que el puerto se expone a través de todas las interfaces de la máquina del informe.
- Los puertos que están enlazados solo en una interfaz específica tienen IsWildcardBind definido como False.
Registros de VMComputer
Los registros con un tipo de VMComputer tienen datos de inventario para servidores con Dependency Agent. Estos registros tienen las propiedades de la tabla siguiente:
Propiedad | Descripción |
---|---|
TenantId | Identificador único del área de trabajo |
SourceSystem | Insights |
TimeGenerated | Marca de tiempo del registro (UTC) |
Computer | FQDN del equipo |
AgentId | El identificador único de una máquina que ejecuta el agente de Azure Monitor o el agente de Log Analytics |
Máquina | nombre del recurso de Azure Resource Manager para la máquina expuesta por ServiceMap. Tiene el formato m-{GUID}, donde GUID es el mismo GUID que AgentId. |
Nombre para mostrar | Nombre para mostrar |
FullDisplayName | Nombre para mostrar del plan |
HostName | Nombre de la máquina sin el nombre de dominio |
BootTime | Hora de arranque de la máquina (UTC) |
TimeZone | La zona horaria normalizada |
VirtualizationState | virtual, hypervisor, physical |
Ipv4Addresses | Matriz de direcciones IPv4 |
Ipv4SubnetMasks | Matriz de máscaras de subred IPv4 (en el mismo orden que Ipv4Addresses) |
Ipv4DefaultGateways | Matriz de puertas de enlace IPv4 |
Ipv6Addresses | Matriz de direcciones IPv6 |
MacAddresses | Matriz de direcciones MAC |
DnsNames | Matriz de nombres DNS asociados a la máquina |
DependencyAgentVersion | Versión del agente de Dependency Agent que se ejecuta en la máquina |
OperatingSystemFamily | Linux, Windows |
OperatingSystemFullName | Nombre completo del sistema operativo |
PhysicalMemoryMB | Memoria física en MB |
Cpus | Número de procesadores |
CpuSpeed | Velocidad de la CPU en MHz |
VirtualMachineType | hyperv, vmware, xen |
VirtualMachineNativeId | Identificador de máquina virtual asignado por su hipervisor |
VirtualMachineNativeName | Nombre de la máquina virtual |
VirtualMachineHypervisorId | Identificador único del hipervisor que hospeda la máquina virtual |
HypervisorType | hyperv |
HypervisorId | Identificador único del hipervisor |
HostingProvider | azure |
_ResourceId | Identificador único de un recurso de Azure |
AzureSubscriptionId | Identificador único global que identifica la suscripción |
AzureResourceGroup | Nombre del grupo de recursos de Azure del que es miembro la máquina |
AzureResourceName | Nombre del recurso de Azure |
AzureLocation | Ubicación del grupo de recursos de Azure |
AzureUpdateDomain | Nombre del dominio de actualización de Azure |
AzureFaultDomain | Nombre del dominio de error de Azure |
AzureVmId | Identificador único de la máquina virtual de Azure |
AzureSize | Tamaño de la máquina virtual de Azure |
AzureImagePublisher | Nombre del publicador de máquinas virtuales de Azure |
AzureImageOffering | Nombre del tipo de oferta de máquina virtual de Azure |
AzureImageSku | SKU de la imagen de máquina virtual de Azure |
AzureImageVersion | Versión de la imagen de máquina virtual de Azure |
AzureCloudServiceName | Nombre del servicio en la nube de Azure |
AzureCloudServiceDeployment | Identificador de implementación del servicio en la nube |
AzureCloudServiceRoleName | Nombre del rol del servicio en la nube |
AzureCloudServiceRoleType | Tipo de rol del servicio en la nube: worker o web |
AzureCloudServiceInstanceId | Identificador de instancia del rol del servicio en la nube |
AzureVmScaleSetName | Nombre de conjunto de escalado de máquinas virtuales |
AzureVmScaleSetDeployment | Identificador de la implementación del conjunto de escalado de máquinas virtuales |
AzureVmScaleSetResourceId | Identificador único del recurso del conjunto de escalado de máquinas virtuales |
AzureVmScaleSetInstanceId | Identificador único del conjunto de escalado de máquinas virtuales |
AzureServiceFabricClusterId | Identificador único del clúster de Azure Service Fabric |
AzureServiceFabricClusterName | Nombre del clúster de Azure Service Fabric |
Registro de VMProcess
Los registros con un tipo VMProcess tienen datos de inventario para procesos conectados mediante TCP en servidores con Dependency Agent. Estos registros tienen las propiedades de la tabla siguiente:
Propiedad | Descripción |
---|---|
TenantId | Identificador único del área de trabajo |
SourceSystem | Insights |
TimeGenerated | Marca de tiempo del registro (UTC) |
Computer | FQDN del equipo |
AgentId | El identificador único de una máquina que ejecuta el agente de Azure Monitor o el agente de Log Analytics |
Máquina | nombre del recurso de Azure Resource Manager para la máquina expuesta por ServiceMap. Tiene el formato m-{GUID}, donde GUID es el mismo GUID que AgentId. |
Proceso | Identificador único del proceso de Service Map. Tiene el formato p-{GUID}. |
ExecutableName | Nombre del archivo ejecutable del proceso |
DisplayName | Nombre para mostrar del proceso |
Role | Rol de proceso: webserver, appServer, databaseServer, ldapServer, smbServer |
Grupo | Nombre del grupo de procesos Los procesos del mismo grupo están relacionados de manera lógica; por ejemplo, parte del mismo producto o componente del sistema. |
StartTime | Hora de inicio del grupo de procesos |
FirstPid | Primer PID del grupo de procesos |
Descripción | Descripción del proceso |
CompanyName | Nombre de la compañía |
InternalName | Nombre interno |
ProductName | Nombre del producto |
ProductVersion | Versión del producto |
FileVersion | Versión del archivo |
ExecutablePath _s | Ruta de acceso del archivo ejecutable |
CommandLine | Línea de comandos |
WorkingDirectory | Directorio de trabajo |
Servicios | Matriz de servicios en la que se ejecuta el proceso |
UserName | Cuenta en la que se está ejecutando el proceso |
UserDomain | Dominio en el que se está ejecutando el proceso |
_ResourceId | Identificador único de un proceso en el área de trabajo |
Consultas de mapa de ejemplo
Enumerar todas las máquinas conocidas
VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId
Cuando se reinicie la VM por última vez
let Today = now(); VMComputer | extend DaysSinceBoot = Today - BootTime | summarize by Computer, DaysSinceBoot, BootTime | sort by BootTime asc
Resumen de las VM de Azure por imagen, ubicación y SKU
VMComputer | where AzureLocation != "" | summarize by Computer, AzureImageOffering, AzureLocation, AzureImageSku
Enumeración de la capacidad de memoria física de todos los equipos administrados
VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId | project PhysicalMemoryMB, Computer
Enumeración del nombre de equipo, DNS, IP y SO
VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId | project Computer, OperatingSystemFullName, DnsNames, Ipv4Addresses
Buscar todos los procesos con "sql" en la línea de comandos
VMProcess | where CommandLine contains_cs "sql" | summarize arg_max(TimeGenerated, *) by _ResourceId
Buscar una máquina (registro más reciente) por el nombre de recurso
search in (VMComputer) "m-4b9c93f9-bc37-46df-b43c-899ba829e07b" | summarize arg_max(TimeGenerated, *) by _ResourceId
Buscar un equipo (registro más reciente) por dirección IP
search in (VMComputer) "10.229.243.232" | summarize arg_max(TimeGenerated, *) by _ResourceId
Enumerar todos los procesos conocidos en un equipo determinado
VMProcess | where Machine == "m-559dbcd8-3130-454d-8d1d-f624e57961bc" | summarize arg_max(TimeGenerated, *) by _ResourceId
Enumerar todos los equipos que ejecutan SQL Server
VMComputer | where AzureResourceName in ((search in (VMProcess) "*sql*" | distinct Machine)) | distinct Computer
Enumerar todas las versiones de producto únicas de curl en mi centro de datos
VMProcess | where ExecutableName == "curl" | distinct ProductVersion
Crear un grupo de equipos de todos los equipos con CentOS
VMComputer | where OperatingSystemFullName contains_cs "CentOS" | distinct Computer
Tendencias de bytes enviados y recibidos
VMConnection | summarize sum(BytesSent), sum(BytesReceived) by bin(TimeGenerated,1hr), Computer | order by Computer desc | render timechart
VM de Azure que transmiten más bytes
VMConnection | join kind=fullouter(VMComputer) on $left.Computer == $right.Computer | summarize count(BytesSent) by Computer, AzureVMSize | sort by count_BytesSent desc
Tendencias del estado del vínculo
VMConnection | where TimeGenerated >= ago(24hr) | where Computer == "acme-demo" | summarize dcount(LinksEstablished), dcount(LinksLive), dcount(LinksFailed), dcount(LinksTerminated) by bin(TimeGenerated, 1h) | render timechart
Tendencia de errores de conexión
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
Puertos enlazados
VMBoundPort
| where TimeGenerated >= ago(24hr)
| where Computer == 'admdemo-appsvr'
| distinct Port, ProcessName
Número de puertos abiertos en las 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
Puntuación de procesos en el área de trabajo por el número de puertos que tienen abiertos
VMBoundPort
| where Ip != "127.0.0.1"
| summarize by ProcessName, Port, Protocol
| summarize OpenPorts=count() by ProcessName
| order by OpenPorts desc
Comportamiento agregado de cada puerto
A continuación, esta consulta se puede usar para puntuar los puertos por actividad (por ejemplo, puertos con más tráfico entrante y saliente o puertos con más conexiones).
//
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 las conexiones salientes desde un 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
Registros de rendimiento
Los registros con un tipo de InsightsMetrics tienen datos de rendimiento del sistema operativo invitado de la máquina virtual. Estos registros se recopilan a intervalos de 60 segundos y tienen las propiedades de la tabla siguiente:
Propiedad | Descripción |
---|---|
TenantId | Identificador único del área de trabajo |
SourceSystem | Insights |
TimeGenerated | Hora en que se recopiló el valor (UTC) |
Computer | FQDN del equipo |
Origen | vm.azm.ms |
Espacio de nombres | Categoría del contador de rendimiento |
Nombre | Nombre del contador de rendimiento. |
Val | Valor recopilado |
Etiquetas | Detalles relacionados sobre el registro. Vea la tabla siguiente para consultar las etiquetas utilizadas con diferentes tipos de registros. |
AgentId | Identificador único de cada agente del equipo |
Tipo | InsightsMetrics |
ResourceId | Identificador de recurso de la máquina virtual |
Los contadores de rendimiento recopilados actualmente en la tabla InsightsMetrics se enumeran en la tabla siguiente:
Espacio de nombres | Nombre | Descripción | Unidad | Etiquetas |
---|---|---|---|---|
Computer | Latido | Latido de equipo | ||
Memoria | AvailableMB | Bytes disponibles en la memoria | Megabytes | memorySizeMB: tamaño total de la memoria |
Red | WriteBytesPerSecond | Bytes de escritura de red por segundo | BytesPerSecond | NetworkDeviceId: identificador del dispositivo bytes: total de bytes enviados |
Red | ReadBytesPerSecond | Bytes de lectura de red por segundo | BytesPerSecond | networkDeviceId: identificador del dispositivo bytes: total de bytes recibidos |
Procesador | UtilizationPercentage | Porcentaje de uso del procesador | Percent | totalCpus: CPU totales |
LogicalDisk | WritesPerSecond | Escrituras en el disco lógico por segundo | CountPerSecond | mountId: identificador de montaje del dispositivo |
LogicalDisk | WriteLatencyMs | Latencia de escritura en el disco lógico en milisegundos | MilliSeconds | mountId: identificador de montaje del dispositivo |
LogicalDisk | WriteBytesPerSecond | Bytes de escritura en el disco lógico por segundo | BytesPerSecond | mountId: identificador de montaje del dispositivo |
LogicalDisk | TransfersPerSecond | Transferencias del disco lógico por segundo | CountPerSecond | mountId: identificador de montaje del dispositivo |
LogicalDisk | TransferLatencyMs | Latencia de transferencia del disco lógico en milisegundos | MilliSeconds | mountId: identificador de montaje del dispositivo |
LogicalDisk | ReadsPerSecond | Lecturas del disco lógico por segundo | CountPerSecond | mountId: identificador de montaje del dispositivo |
LogicalDisk | ReadLatencyMs | Latencia de lectura del disco lógico en milisegundos | MilliSeconds | mountId: identificador de montaje del dispositivo |
LogicalDisk | ReadBytesPerSecond | Bytes de lectura de disco lógico por segundo | BytesPerSecond | mountId: identificador de montaje del dispositivo |
LogicalDisk | FreeSpacePercentage | Porcentaje de espacio disponible en disco lógico | Percent | mountId: identificador de montaje del dispositivo |
LogicalDisk | FreeSpaceMB | Bytes de espacio disponible en el disco lógico | Megabytes | mountId: identificador de montaje del dispositivo diskSizeMB: tamaño total del disco |
LogicalDisk | BytesPerSecond | Bytes del disco lógico por segundo | BytesPerSecond | mountId: identificador de montaje del dispositivo |
Pasos siguientes
Si es la primera vez que escribe consultas de registro en Azure Monitor, consulte el tema cómo usar Log Analytics en Azure Portal para escribir consultas de registro.
Información acerca de la escritura de consultas de búsqueda.