Управление записью пакетов для виртуальных машин с помощью Azure Наблюдатель за сетями с помощью Azure CLI
Средство отслеживания пакетов Наблюдатель за сетями позволяет создавать сеансы записи для записи сетевого трафика на виртуальную машину Azure и из нее. Для сеанса записи предоставляются фильтры, которые позволяют убедиться, что записывается только требуемый трафик. Запись пакетов помогает диагностировать аномалии сети как реактивно, так и упреждающее. Его приложения выходят за рамки обнаружения аномалий, включая сбор статистики сети, получение аналитических сведений о сетевых вторжениях, отладка связи между клиентом и сервером и устранение различных других сетевых проблем. Наблюдатель за сетями отслеживания пакетов позволяет удаленно инициировать сбор пакетов, что позволяет сократить потребность в выполнении вручную на определенной виртуальной машине.
В этой статье вы узнаете, как удаленно настроить, запустить, остановить, скачать и удалить запись пакетов виртуальной машины с помощью Azure PowerShell. Сведения об управлении записями пакетов с помощью портал Azure или Azure CLI см. в статье "Управление записью пакетов для виртуальных машин" с помощью портал Azure или управления записями пакетов для виртуальных машин с помощью PowerShell.
Необходимые компоненты
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Azure Cloud Shell или Azure CLI
Действия, описанные в этой статье, выполняют команды Azure CLI интерактивно в Azure Cloud Shell. Чтобы выполнить команды в Cloud Shell, выберите Open Cloud Shell в правом верхнем углу блока кода. Выберите "Копировать ", чтобы скопировать код и вставить его в Cloud Shell, чтобы запустить его. Вы также можете запустить Cloud Shell из портал Azure.
Вы также можете установить Azure CLI локально для выполнения команд. При локальном запуске Azure CLI войдите в Azure с помощью команды az login .
Виртуальная машина со следующим исходящим TCP-подключением:
- в учетную запись хранения через порт 443
- к адресу 169.254.169.254 через порт 80;
- к адресу 168.63.129.16 через порт 8037.
Примечание.
- Azure создает экземпляр Наблюдатель за сетями в регионе виртуальной машины, если Наблюдатель за сетями не был включен для этого региона. Дополнительные сведения см. в статье "Включение или отключение Azure Наблюдатель за сетями".
- Наблюдатель за сетями сбор пакетов требует установки расширения виртуальной машины агента Наблюдатель за сетями на целевой виртуальной машине. Дополнительные сведения см. в разделе "Установка агента Наблюдатель за сетями".
- Последние два IP-адреса и порты, перечисленные в предварительных требованиях, являются общими для всех средств Наблюдатель за сетями, использующих агент Наблюдатель за сетями и иногда изменяющихся.
Если группа безопасности сети связана с сетевым интерфейсом или подсетью, в которую находится сетевой интерфейс, убедитесь, что правила существуют, чтобы разрешить исходящее подключение через предыдущие порты. Аналогичным образом убедитесь, что исходящее подключение через предыдущие порты при добавлении определяемых пользователем маршрутов в сеть.
Установка агента Наблюдатель за сетями
Шаг 1
Выполните команду az vm extension set
, чтобы установить агент сбора пакетов на гостевой виртуальной машине.
Для виртуальных машин Windows:
az vm extension set --resource-group resourceGroupName --vm-name virtualMachineName --publisher Microsoft.Azure.NetworkWatcher --name NetworkWatcherAgentWindows --version 1.4
Для виртуальных машин Linux:
az vm extension set --resource-group resourceGroupName --vm-name virtualMachineName --publisher Microsoft.Azure.NetworkWatcher --name NetworkWatcherAgentLinux --version 1.4
Шаг 2
Чтобы убедиться, что агент установлен, выполните команду vm extension show
и передайте ей имя группы ресурсов и виртуальной машины. Проверьте итоговый список, чтобы убедиться, что агент установлен.
Для виртуальных машин Windows:
az vm extension show --resource-group resourceGroupName --vm-name virtualMachineName --name NetworkWatcherAgentWindows
Для виртуальных машин Linux:
az vm extension show --resource-group resourceGroupName --vm-name virtualMachineName --name AzureNetworkWatcherExtension
Ниже приведен пример ответа после выполнения операции az vm extension show
.
{
"autoUpgradeMinorVersion": true,
"forceUpdateTag": null,
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/NetworkWatcherAgentWindows",
"instanceView": null,
"location": "westcentralus",
"name": "NetworkWatcherAgentWindows",
"protectedSettings": null,
"provisioningState": "Succeeded",
"publisher": "Microsoft.Azure.NetworkWatcher",
"resourceGroup": "{resourceGroupName}",
"settings": null,
"tags": null,
"type": "Microsoft.Compute/virtualMachines/extensions",
"typeHandlerVersion": "1.4",
"virtualMachineExtensionType": "NetworkWatcherAgentWindows"
}
Запуск записи пакета
После выполнения предыдущих шагов на виртуальной машине будет установлен агент записи пакетов.
Шаг 1
Получите учетную запись хранения. Она используется для хранения файла записи пакетов.
az storage account list
Шаг 2
На этом этапе вы готовы создать операцию сбора пакетов. Сначала рассмотрим параметры, которые можно настроить. Фильтры — это один из таких параметров, которые можно использовать для ограничения объема данных, сохраняемых при сборе пакетов. В следующем примере настраивается сбор пакетов с несколькими фильтрами. Первые три фильтра собирают исходящий TCP-трафик только с локального IP-адреса 10.0.0.3 на порты назначения 20, 80 и 443. Последний фильтр собирает только трафик, передаваемый по протоколу UDP.
az network watcher packet-capture create --resource-group {resourceGroupName} --vm {vmName} --name packetCaptureName --storage-account {storageAccountName} --filters "[{\"protocol\":\"TCP\", \"remoteIPAddress\":\"1.1.1.1-255.255.255.255\",\"localIPAddress\":\"10.0.0.3\", \"remotePort\":\"20\"},{\"protocol\":\"TCP\", \"remoteIPAddress\":\"1.1.1.1-255.255.255.255\",\"localIPAddress\":\"10.0.0.3\", \"remotePort\":\"80\"},{\"protocol\":\"TCP\", \"remoteIPAddress\":\"1.1.1.1-255.255.255.255\",\"localIPAddress\":\"10.0.0.3\", \"remotePort\":\"443\"},{\"protocol\":\"UDP\"}]"
Ниже приведен пример ожидаемого результата выполнения команды az network watcher packet-capture create
.
{
"bytesToCapturePerPacket": 0,
"etag": "W/\"b8cf3528-2e14-45cb-a7f3-5712ffb687ac\"",
"filters": [
{
"localIpAddress": "10.0.0.3",
"localPort": "",
"protocol": "TCP",
"remoteIpAddress": "1.1.1.1-255.255.255.255",
"remotePort": "20"
},
{
"localIpAddress": "10.0.0.3",
"localPort": "",
"protocol": "TCP",
"remoteIpAddress": "1.1.1.1-255.255.255.255",
"remotePort": "80"
},
{
"localIpAddress": "10.0.0.3",
"localPort": "",
"protocol": "TCP",
"remoteIpAddress": "1.1.1.1-255.255.255.255",
"remotePort": "443"
},
{
"localIpAddress": "",
"localPort": "",
"protocol": "UDP",
"remoteIpAddress": "",
"remotePort": ""
}
],
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_westcentralus/pa
cketCaptures/packetCaptureName",
"name": "packetCaptureName",
"provisioningState": "Succeeded",
"resourceGroup": "NetworkWatcherRG",
"storageLocation": {
"filePath": null,
"storageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/gwteststorage123abc",
"storagePath": "https://gwteststorage123abc.blob.core.windows.net/network-watcher-logs/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/{resourceGroupName}/p
roviders/microsoft.compute/virtualmachines/{vmName}/2017/05/25/packetcapture_16_22_34_630.cap"
},
"target": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}",
"timeLimitInSeconds": 18000,
"totalBytesPerSession": 1073741824
}
Получение записи пакета
При выполнении команды az network watcher packet-capture show-status
вы получаете сведения о состоянии выполняющегося или завершенного сбора пакетов.
az network watcher packet-capture show-status --name packetCaptureName --location {networkWatcherLocation}
Ниже приведен пример выходных данных команды az network watcher packet-capture show-status
. Следующий пример можно получить, когда для остановки указано значение Stopped, а для параметра StopReason задано значение TimeExceeded.
{
"additionalProperties": {
"status": "Succeeded"
},
"captureStartTime": "2016-12-06T17:20:01.5671279Z",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_westcentralus/packetCaptures/packetCaptureName",
"name": "packetCaptureName",
"packetCaptureError": [],
"packetCaptureStatus": "Stopped",
"stopReason": "TimeExceeded"
}
Прекращение записи пакета
Если выполнить команду az network watcher packet-capture stop
во время сбора пакетов, он будет остановлен.
az network watcher packet-capture stop --name packetCaptureName --location westcentralus
Примечание.
При выполнении во время текущего сеанса сбора или в имеющемся остановленном сеансе команда не возвратит ответ.
Удаление записи пакета
az network watcher packet-capture delete --name packetCaptureName --location westcentralus
Примечание.
При удалении записи пакета файл в учетной записи хранения не удаляется.
Скачивание записи пакета
После завершения сеанса записи пакета файл записи можно передать в хранилище BLOB-объектов или в локальный файл на виртуальной машине. Место хранения записи пакетов определяется при создании сеанса. Удобное средство для доступа к этим файлам записи, сохраненным в учетной записи хранения, — обозреватель службы хранилища Microsoft Azure, который можно скачать по адресу https://storageexplorer.com/
При указании учетной записи хранения файлы записи пакетов сохраняются в ней по следующему адресу:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{VMName}/{year}/{month}/{day}/packetCapture_{creationTime}.cap
Связанный контент
- Дополнительные сведения об автоматизации записи пакетов с помощью оповещений на виртуальной машине см. в статье, посвященной созданию записи пакетов, активируемой с использованием оповещений.
- Чтобы определить, разрешен ли определенный входящий или исходящий трафик на виртуальной машине, см. статью о диагностике проблем фильтрации трафика виртуальной машины.