Запрашивание журналов из аналитики виртуальных машин
Внимание
Эта статья ссылается на CentOS, дистрибутив Linux, который приближается к состоянию конца жизни (EOL). Пожалуйста, рассмотрите возможность использования и планирования соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.
Аналитика виртуальных машин собирает метрики производительности и подключений, данные инвентаризации компьютеров и процессов, а также сведения о работоспособности и перенаправляет их в рабочую область Log Analytics в службе Azure Monitor. Данные доступны для запроса в Azure Monitor. Эти данные используются в различных сценариях, таких как планирование миграции, анализ емкости, обнаружение и устранение проблем с производительностью по требованию.
Сопоставление записей
Внимание
Если виртуальная машина использует аналитику виртуальных машин с агентом Azure Monitor, необходимо включить процессы и зависимости для создания этих таблиц.
Для каждого уникального компьютера и процесса создается одна запись в час. Кроме того, записи создаются во время запуска компьютера или процесса, а также при добавлении в аналитику виртуальных машин. Поля и значения таблицы VMComputer сопоставляются с полями ресурса компьютера в API Azure Resource Manager ServiceMap. Поля и значения в таблице VMProcess сопоставляют поля ресурса process в API Azure Resource Manager ServiceMap. Поле _ResourceId соответствует полю имени в соответствующем ресурсе Resource Manager.
На основе созданных в системе свойств можно определить уникальные компьютеры или процессы:
- Компьютер: используйте _ResourceId для уникальной идентификации компьютера в рабочей области Log Analytics.
- Процесс. Используйте _ResourceId для уникальной идентификации процесса в рабочей области Log Analytics.
Так как для указанных процесса и компьютера в заданном диапазоне времени могут существовать несколько записей, то запросы могут возвращать несколько записей для одного и того же компьютера или процесса. Чтобы включить только самую последнюю запись, добавьте | summarize arg_max(TimeGenerated, *) by ResourceId
к запросу.
Подключения и порты
Функция метрик подключения вводит две новые таблицы в Azure Monitor — VMConnection и VMBoundPort. В этих таблицах содержатся сведения о подключениях для компьютера (входящего и исходящего трафика) и открытых или активных на них портов сервера. Кроме того, доступ к метрикам подключений можно предоставить с помощью API-интерфейсов, включающих средства для получения определенной метрики в пределах временного окна. Подключения TCP, созданные в результате принятия данных на сокете прослушивания, являются входящими, а подключения, созданные в результате подключения к заданному IP-адресу и порту, считаются исходящими. Направление подключения указано в свойстве Direction (Направление), которое может иметь значение inbound (Входящее) или outbound (Исходящее).
Записи в этих таблицах создаются на основе данных, полученных программой Dependency Agent. Каждая запись соответствует наблюдению, выполняемому 1 раз в минуту. Свойство TimeGenerated указывает начало интервала времени. Каждая запись содержит сведения для определения соответствующего объекта, то есть подключения или порта, а также метрики, связанные с этим объектом. На данный момент система собирает данные, касающиеся только действий в сети, связанных с протоколом TCP/IPv4.
Общие поля и соглашения
Следующие поля и соглашения применяются как к VMConnection, так и к VMBoundPort:
- Компьютер: полное доменное имя соответствующего компьютера
- AgentId: уникальный идентификатор для компьютера под управлением агента Azure Monitor или агента Log Analytics
- Компьютер: имя ресурса Azure Resource Manager для компьютера, предоставляемое ServiceMap. Это форма m-{GUID}, где GUID совпадает с GUID , что и AgentId.
- Процесс: имя ресурса Azure Resource Manager для процесса, предоставляемое ServiceMap. Это форма p-{шестнадцатеричная строка}. Процесс уникален в пределах области компьютера и создает уникальный идентификатор процесса на нескольких компьютерах, объединяя поля "Компьютер" и "Процесс".
- ProcessName: имя исполняемого файла соответствующего процесса.
- Все IP-адреса являются строками в каноническом формате IPv4, например 13.107.3.160
Для управления затратами и сложностью записи подключений не представляют отдельных физических сетевых подключений. Система группирует несколько физических сетевых подключений в логическое подключение, которое затем отображается в соответствующей таблице. Это означает, что запись в таблице VMConnection представляет логическую группу, а не отдельные отслеживаемые физические подключения. Физические сетевые подключения, для которых используется одно и то же общее значение для указанных ниже атрибутов в течение заданного одноминутного интервала, агрегированы в одну логическую запись в таблице VMConnection.
Свойство | Description |
---|---|
Направление | Направление подключения. Возможные значения: inbound (Входящее) или outbound (Исходящее). |
Компьютер | Полное доменное имя компьютера |
Обработка | Удостоверение процесса или группы процессов, создающей или принимающей подключение. |
SourceIp | IP-адрес источника. |
DestinationIp | IP-адрес назначения. |
Порт назначения | Номер порта назначения. |
Протокол | Протокол, используемый для подключения. Значение: tcp. |
Чтобы учесть влияние группирования, в указанных ниже свойствах записи приведены сведения о количестве сгруппированных физических подключений.
Свойство | Description |
---|---|
LinksEstablished | Количество физических сетевых подключений, созданных в течение отчетного периода. |
LinksTerminated | Количество физических сетевых подключений, разорванных в течение отчетного периода. |
LinksFailed | Количество физических сетевых подключений, которые не удалось создать во время отчетного периода. На данный момент эта информация доступна только для исходящих подключений. |
LinksLive | Количество открытых физических сетевых подключений на конец отчетного периода. |
Метрики
В дополнение к метрикам количества подключений в указанных ниже свойствах записи содержатся сведения об объемах отправленных и принятых данных для заданного логического подключения или порта.
Свойство | Description |
---|---|
BytesSent | Общее количество байтов, отправленных в течение отчетного периода. |
BytesReceived | Общее количество байтов, принятых в течение отчетного периода. |
Отклики | Количество откликов, наблюдаемых в течение отчетного периода. |
ResponseTimeMax | Наибольшее время отклика (в миллисекундах), наблюдаемое во время отчетного периода. Если значение не указано, свойство будет пустым. |
ResponseTimeMin | Наименьшее время отклика (в миллисекундах), наблюдаемое во время отчетного периода. Если значение не указано, свойство будет пустым. |
ResponseTimeSum | Сумма всех значений времени отклика (в миллисекундах), наблюдаемых во время отчетного периода. Если значение не указано, свойство будет пустым. |
Третий тип собираемых данных — время отклика. Это время, в течение которого вызывающая сторона ожидает обработки запроса, отправленного через подключение, и отклика на него от удаленной конечной точки. Полученное время отклика — это оценочное значение истинного времени отклика базового протокола приложений. Он вычисляется с помощью эвристики на основе наблюдения за потоком данных между источником и назначением физического сетевого подключения. Концептуально это разница между временем последнего байта запроса покидает отправителя и время, когда последний байт ответа возвращается к нему. Эти две метки времени используются для регистрации событий запроса и отклика для заданного физического подключения. Разность этих значений представляет собой время отклика для одного запроса.
В первом выпуске данной функции мы используем алгоритм аппроксимации, который может работать с разными степенями успешности, которые зависят от того, какой протокол фактически используется для заданного сетевого подключения. Например, текущий подход хорошо подходит для протоколов на основе ответа на запросы, таких как HTTP(S), но не работает с односторонними протоколами на основе очереди сообщений.
Необходимо учитывать указанные ниже важные моменты.
- Если процесс принимает подключения на один IP-адрес, но через несколько сетевых интерфейсов, то для каждого интерфейса будет создана отдельная запись.
- В записях с диапазонами IP-адресов не будет никаких сведений о действиях. Они включены для представления того, что порт на компьютере открыт для входящего трафика.
- Чтобы уменьшить детализацию и объем данных, записи с диким ip-адресом карта будут опущены при наличии соответствующей записи (для одного процесса, порта и протокола) с определенным IP-адресом. Если запись с диапазоном IP-адресов пропущена, свойству IsWildcardBind записи с определенным IP-адресом будет присвоено значение True (Истина), указывающее, что порт доступен через любой интерфейс соответствующего компьютера.
- В портах, которые связаны только в определенном интерфейсе, свойству IsWildcardBind присвоено значение False (Ложь).
Именование и классификация
Для удобства IP-адрес удаленной стороны подключения включается в свойство RemoteIp. Для входящих подключений RemoteIp совпадает с SourceIp, а для исходящих подключений это то же самое, что и НазначениеIp. Свойство RemoteDnsCanonicalNames представляет канонические имена DNS, переданные компьютером для свойства RemoteIp. Свойство RemoteDnsQuestions представляет вопросы DNS, переданные компьютером для RemoteIp. Свойство RemoveClassification зарезервировано для использования в будущем.
Геолокация
VMConnection для каждой записи подключения содержит указанные ниже свойства со сведениями о географическом положении для удаленной стороны.
Свойство | Description |
---|---|
RemoteCountry | Название страны или региона, в котором размещено свойство RemoteIp. Пример: United States (США). |
RemoteLatitude | Широта географического положения. Пример: 47,68. |
RemoteLongitude | Долгота географического положения. Пример: –122,12. |
Вредоносный IP-адрес
Система проверяет, не внесен ли адрес, указанный в свойстве RemoteIp в таблице VMConnection, в список IP-адресов, связанных с вредоносными действиями. Если RemoteIp определяется как вредоносные следующие свойства будут заполнены (они пусты, если IP-адрес не считается вредоносным) в следующих свойствах записи:
Свойство | Description |
---|---|
MaliciousIp | Адрес, указанный в свойстве RemoteIp. |
IndicatorThreadType | Обнаруженный индикатор угроз является одним из следующих значений: Botnet, C2, CryptoMining, Darknet, DDos, MaliciousUrl, Malware, Phishing, Proxy, PUA, Watchlist. |
Description | Описания наблюдаемой угрозы. |
TLPLevel | Уровень протокола Traffic Light (TLP) является одним из определенных значений: White, Green, Amber, Red. |
Достоверность | Значения: 0–100. |
Важность | Значения : 0 – 5, где 5 является самым тяжелым и 0 не является серьезным вообще. Значение по умолчанию — 3. |
FirstReportedDateTime | Впервые поставщик сообщил об этом индикаторе. |
LastReportedDateTime | В последний раз индикатор был просмотрен Interflow. |
IsActive | Указывает, что индикаторы деактивированы со значением True или False. |
ReportReferenceLink | Ссылки на отчеты, связанные с данным наблюдаемым. Чтобы сообщить о ложном оповещении или получить дополнительные сведения о вредоносном IP-адресе, откройте случай поддержки и укажите эту ссылку. |
AdditionalInformation | Предоставляет дополнительную информацию, если применимо, о наблюдаемой угрозе. |
Порты
Порты на компьютере, активно принимающие входящий трафик или с возможностью принимать трафик, но бездействующие в течение периода времени создания отчетов, записываются в таблицу VMBoundPort.
Каждая запись в VMBoundPort определяется следующими полями:
Свойство | Description |
---|---|
Обработать | Удостоверение процесса (или групп процессов), с которым связан порт. |
IP-адрес | IP-адрес порта (может быть диапазоном IP-адресов, 0.0.0.0) |
Порт | Номер порта |
Протокол | Протокол. Например, TCP или UDP (в настоящее время поддерживается только TCP). |
Удостоверение, которое является портом, берется из пяти полей и хранится в свойстве PortId. Это свойство можно использовать для быстрого поиска записей по определенному порту по времени.
Метрики
Записи портов содержат метрики, представляющие связанные с ними подключения. В настоящее время выводятся следующие метрики (сведения о каждой метрике описаны в предыдущем разделе):
- BytesSent и BytesReceived
- LinksEstablished, LinksTerminated, LinksLive
- ResposeTime, ResponseTimeMin, ResponseTimeMax, ResponseTimeSum
Необходимо учитывать указанные ниже важные моменты.
- Если процесс принимает подключения на один IP-адрес, но через несколько сетевых интерфейсов, то для каждого интерфейса будет создана отдельная запись.
- В записях с диапазонами IP-адресов не будет никаких сведений о действиях. Они включены для представления того, что порт на компьютере открыт для входящего трафика.
- Чтобы уменьшить детализацию и объем данных, записи с диким ip-адресом карта будут опущены при наличии соответствующей записи (для одного процесса, порта и протокола) с определенным IP-адресом. Если запись с диапазоном IP-адресов пропущена, свойству IsWildcardBind для записи с конкретным IP-адресом будет присвоено значение True (Иcтина). Это означает, что порт предоставляется через каждый интерфейс соответствующего компьютера.
- В портах, которые связаны только в определенном интерфейсе, свойству IsWildcardBind присвоено значение False (Ложь).
Записи VMComputer
В записях типа VMComputer содержатся данные инвентаризации для серверов с программой Dependency Agent. У этих записей есть свойства, приведенные в таблице ниже.
Свойство | Description |
---|---|
TenantId | Уникальный идентификатор для рабочей области |
SourceSystem | Статистика |
TimeGenerated | Метка времени записи (время в формате UTC) |
Компьютер | Полное доменное имя компьютера |
AgentId | Уникальный идентификатор для компьютера под управлением агента Azure Monitor или агента Log Analytics |
Компьютер | Имя ресурса Azure Resource Manager для компьютера, предоставляемое ServiceMap. Это форма m-{GUID}, где GUID совпадает с GUID , что и AgentId. |
DisplayName | Показать имя |
FullDisplayName | Полное отображаемое имя |
HostName | Имя компьютера без доменного имени |
BootTime | Время загрузки компьютера (в формате UTC) |
Часовой пояс | Нормализованный часовой пояс |
VirtualizationState | Виртуальные, гипервизор, физические |
Ipv4Addresses | Массив IPv4-адресов |
Ipv4SubnetMasks | Массив масок подсети IPv4 (в том же порядке, что и Ipv4Addresses). |
Ipv4DefaultGateways | Массив шлюзов IPv4 |
Ipv6Addresses | Массив IPv6-адресов |
MacAddresses | Массив MAC-адресов |
DnsNames | Массив DNS-имен, связанных с компьютером. |
DependencyAgentVersion | Версия агента зависимостей, выполняющегося на компьютере. |
OperatingSystemFamily | Linux, Windows |
OperatingSystemFullName | Полное имя операционной системы |
PhysicalMemoryMB | Объем физической памяти в мегабайтах |
Количество ЦП | Число процессоров |
CpuSpeed | Скорость ЦП в МГц |
VirtualMachineType | hyperv, vmware, xen |
VirtualMachineNativeId | Идентификатор виртуальной машины, назначенный ее гипервизором |
VirtualMachineNativeName | Имя виртуальной машины |
VirtualMachineHypervisorId | Уникальный идентификатор гипервизора, в котором размещается виртуальная машина |
HypervisorType | hyperv |
HypervisorId | Уникальный идентификатор гипервизора |
HostingProvider | azure |
_ResourceId | Уникальный идентификатор для ресурса Azure |
AzureSubscriptionId | Глобальный уникальный идентификатор, определяющий вашу подписку |
AzureResourceGroup | Это имя группы ресурсов, в которую входит нужная виртуальная машина. |
AzureResourceName | Имя ресурса Azure |
AzureLocation | Расположение ресурса Azure |
AzureUpdateDomain | Имя домена обновления Azure |
AzureFaultDomain | Имя домена сбоя Azure |
AzureVmId | Уникальный идентификатор виртуальной машины Azure |
AzureSize | Размер виртуальной машины Azure |
AzureImagePublisher | Имя издателя виртуальной машины Azure |
AzureImageOffering | Имя типа предложения виртуальной машины Azure |
AzureImageSku | SKU образа виртуальной машины Azure |
AzureImageVersion | Версия образа виртуальной машины Azure |
AzureCloudServiceName | Имя облачной службы Azure |
AzureCloudServiceDeployment | Идентификатор развертывания для облачной службы |
AzureCloudServiceRoleName | Имя роли облачной службы |
AzureCloudServiceRoleType | Тип роли облачной службы: Рабочая роль или Интернет |
AzureCloudServiceInstanceId | Идентификатор экземпляра роли облачной службы |
AzureVmScaleSetName | Имя масштабируемого набора виртуальных машин |
AzureVmScaleSetDeployment | Идентификатор развертывания масштабируемого набора виртуальных машин |
AzureVmScaleSetResourceId | Уникальный идентификатор ресурса масштабируемого набора виртуальных машин. |
AzureVmScaleSetInstanceId | Уникальный идентификатор масштабируемого набора виртуальных машин |
AzureServiceFabricClusterId | Уникальный идентификатор кластера Azure Service Fabric |
AzureServiceFabricClusterName | Имя кластера Azure Service Fabric |
Записи VMProcess
В записях типа VMProcess содержатся данные инвентаризации для подключенных по протоколу TCP процессов на серверах с программой Dependency Agent. У этих записей есть свойства, приведенные в таблице ниже.
Свойство | Description |
---|---|
TenantId | Уникальный идентификатор для рабочей области |
SourceSystem | Статистика |
TimeGenerated | Метка времени записи (время в формате UTC) |
Компьютер | Полное доменное имя компьютера |
AgentId | Уникальный идентификатор для компьютера под управлением агента Azure Monitor или агента Log Analytics |
Компьютер | Имя ресурса Azure Resource Manager для компьютера, предоставляемое ServiceMap. Это форма m-{GUID}, где GUID совпадает с GUID , что и AgentId. |
Обработка | Уникальный идентификатор процесса Сопоставления служб. Он находится в виде P-{GUID}. |
ExecutableName | Имя исполняемого файла процесса |
DisplayName | Отображаемое имя процесса |
Роль | Роль процесса: webserverappServer, databaseServer, ldapServer, smbServer |
Групповой | Имя группы процессов. Процессы в одной группе логически связаны, например, частью одного и того же продукта или компонента системы. |
Время начала | Время запуска пула процессов |
FirstPid | Первый идентификатор процесса в пуле процессов |
Description | Описание процесса |
CompanyName | Название организации |
InternalName | Внутреннее имя |
НаименованиеПродукта | Имя продукта |
ProductVersion | Версия продукта |
FileVersion | Версия файла |
ExecutablePath | Путь к исполняемому файлу |
CommandLine | Командная строка |
WorkingDirectory | Рабочий каталог |
Службы | Массив служб, в котором выполняется процесс |
UserName | Учетная запись, с которой выполняется процесс |
UserDomain | Домен, в котором выполняется процесс |
_ResourceId | Уникальный идентификатор для процесса в рабочей области |
Запросы к карте примеров
Список всех известных компьютеров
VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId
Время последней перезагрузки виртуальной машины
let Today = now(); VMComputer | extend DaysSinceBoot = Today - BootTime | summarize by Computer, DaysSinceBoot, BootTime | sort by BootTime asc
Сводка по виртуальным машинам Azure с информацией об образе, расположении и номере SKU
VMComputer | where AzureLocation != "" | summarize by Computer, AzureImageOffering, AzureLocation, AzureImageSku
Вывод сведений об объеме физической памяти для всех управляемых компьютеров
VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId | project PhysicalMemoryMB, Computer
Список сведений об имени компьютера, DNS-имени, IP-адресе и ОС
VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId | project Computer, OperatingSystemFullName, DnsNames, Ipv4Addresses
Поиск всех процессов с "sql" в командной строке
VMProcess | where CommandLine contains_cs "sql" | summarize arg_max(TimeGenerated, *) by _ResourceId
Поиск компьютера (самой последней записи) по имени ресурса
search in (VMComputer) "m-4b9c93f9-bc37-46df-b43c-899ba829e07b" | summarize arg_max(TimeGenerated, *) by _ResourceId
Поиск компьютера (самой последней записи) по IP-адресу
search in (VMComputer) "10.229.243.232" | summarize arg_max(TimeGenerated, *) by _ResourceId
Вывод списка всех известных процессов на определенном компьютере
VMProcess | where Machine == "m-559dbcd8-3130-454d-8d1d-f624e57961bc" | summarize arg_max(TimeGenerated, *) by _ResourceId
Вывод списка всех компьютеров, на которых выполняется SQL Server
VMComputer | where AzureResourceName in ((search in (VMProcess) "*sql*" | distinct Machine)) | distinct Computer
Вывод списка всех уникальных версий продукта cURL в центре обработки данных
VMProcess | where ExecutableName == "curl" | distinct ProductVersion
Создание группы, объединяющей все компьютеры, на которых выполняется CentOS
VMComputer | where OperatingSystemFullName contains_cs "CentOS" | distinct Computer
Тренды объема отправленных и полученных данных в байтах
VMConnection | summarize sum(BytesSent), sum(BytesReceived) by bin(TimeGenerated,1hr), Computer | order by Computer desc | render timechart
Виртуальные машины Azure, передающие наибольшее количество байтов
VMConnection | join kind=fullouter(VMComputer) on $left.Computer == $right.Computer | summarize count(BytesSent) by Computer, AzureVMSize | sort by count_BytesSent desc
Тренды состояния канала
VMConnection | where TimeGenerated >= ago(24hr) | where Computer == "acme-demo" | summarize dcount(LinksEstablished), dcount(LinksLive), dcount(LinksFailed), dcount(LinksTerminated) by bin(TimeGenerated, 1h) | render timechart
Тренд сбоев подключения
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
Привязанные порты
VMBoundPort
| where TimeGenerated >= ago(24hr)
| where Computer == 'admdemo-appsvr'
| distinct Port, ProcessName
Число открытых портов на компьютерах
VMBoundPort
| where Ip != "127.0.0.1"
| summarize by Computer, Machine, Port, Protocol
| summarize OpenPorts=count() by Computer, Machine
| order by OpenPorts desc
Оценка процессов в рабочей области по количеству открытых портов
VMBoundPort
| where Ip != "127.0.0.1"
| summarize by ProcessName, Port, Protocol
| summarize OpenPorts=count() by ProcessName
| order by OpenPorts desc
Статистическое поведение для каждого порта
Затем этот запрос можно использовать для оценки портов по активности, например портов с наибольшим входящим и исходящим трафиком или портов с наибольшим количеством подключений
//
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
Создание сводки исходящих подключений для группы компьютеров
// 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
Записи производительности
Записи с типом InsightsMetrics содержат данные о производительности из гостевой операционной системы виртуальной машины. Эти записи собираются в 60 секунд и имеют свойства в следующей таблице:
Свойство | Description |
---|---|
TenantId | Уникальный идентификатор для рабочей области |
SourceSystem | Статистика |
TimeGenerated | Время получения значения (в формате UTC) |
Компьютер | Полное доменное имя компьютера |
Источник | vm.azm.ms |
Пространство имен | Категория счетчика производительности |
Имя. | Имя счетчика производительности. |
Val | Собранное значение |
Теги | Связанные сведения о записи. Теги, используемые с различными типами записей, см. в таблице ниже. |
AgentId | Уникальный идентификатор для агента каждого компьютера |
Тип | Аналитика Метрики |
ResourceId | Идентификатор ресурса виртуальной машины |
Счетчики производительности, собранные в таблицу InsightsMetrics, перечислены ниже:
Пространство имен | Имя | Описание | Ед. изм. | Теги |
---|---|---|---|---|
Компьютер | Пульс | Пульс компьютера | ||
Память | AvailableMB | Доступные байты в памяти | Мегабайты | memorySizeMB — общий объем памяти |
Network | WriteBytesPerSecond | Запись по сети в байтах в секунду | BytesPerSecond | NetworkDeviceId — идентификатор устройства bytes — всего отправленных байтов |
Network | ReadBytesPerSecond | Чтение по сети в байтах в секунду | BytesPerSecond | networkDeviceId — идентификатор устройства bytes — всего получено байт |
Процессор | UtilizationPercentage | Загрузка процессора в процентах | Процент | totalCpus — общее количество ЦП |
LogicalDisk | WritesPerSecond | Скорость записи на логический диск в секунду | Число/с | mountId — идентификатор подключения устройства |
LogicalDisk | WriteLatencyMs | Задержка записи на логический диск в миллисекундах | MilliSeconds | mountId — идентификатор подключения устройства |
LogicalDisk | WriteBytesPerSecond | Скорость записи на логический диск в байтах в секунду | BytesPerSecond | mountId — идентификатор подключения устройства |
LogicalDisk | TransfersPerSecond | Передача логического диска в секунду | Число/с | mountId — идентификатор подключения устройства |
LogicalDisk | TransferLatencyMs | Задержка передачи на логический диск в миллисекундах | MilliSeconds | mountId — идентификатор подключения устройства |
LogicalDisk | ReadsPerSecond | Чтение с логического диска в секунду | Число/с | mountId — идентификатор подключения устройства |
LogicalDisk | ReadLatencyMs | Задержка чтения с логического диска в миллисекундах | MilliSeconds | mountId — идентификатор подключения устройства |
LogicalDisk | ReadBytesPerSecond | Чтение с логического диска в байтах в секунду | BytesPerSecond | mountId — идентификатор подключения устройства |
LogicalDisk | FreeSpacePercentage | Процент свободного пространства на логическом диске | Процент | mountId — идентификатор подключения устройства |
LogicalDisk | FreeSpaceMB | Свободное пространство на логическом диске в байтах | Мегабайты | mountId — идентификатор подключения устройства diskSizeMB — общий размер диска |
LogicalDisk | BytesPerSecond | Скорость обмена с логическим диском в байтах в секунду | BytesPerSecond | mountId — идентификатор подключения устройства |
Следующие шаги
Если вы не знакомы с написанием запросов к журналам в Azure Monitor, ознакомьтесь с тем, как использовать Log Analytics в портал Azure для записи запросов к журналам.
Узнайте больше о том, как создавать поисковые запросы.