Создание монитора подключения с помощью ARMClient
Внимание
Монитор подключений (классический) устарел и больше недоступен. Дополнительные сведения см. в статье "Миграция из монитора подключения ( классического) для переноса мониторов подключений с монитора подключения (классического) на новый монитор подключения.
Узнайте, как использовать Монитор подключений для отслеживания взаимодействия между ресурсами. Он поддерживает гибридные развертывания и развертывания в облаке Azure.
Подготовка к работе
В мониторах подключений, создаваемых с помощью службы "Монитор подключений", в качестве источников можно добавлять локальные компьютеры и виртуальные машины Azure. Эти мониторы подключений также могут отслеживать подключения к конечным точкам. Конечные точки могут находиться в Azure или на любом другом URL- или IP-адресе.
Монитор подключения включает в себя следующие сущности.
Ресурс монитора подключения — это специальный ресурс Azure для конкретного региона. Все следующие сущности являются свойствами ресурса монитора подключений.
Конечная точка — источник или назначение, участвующие в проверках подключения. Примеры конечных точек: виртуальные машины Azure, локальные агенты, URL-адреса и IP-адрес.
Конфигурация теста — конфигурация, зависящая от протокола и использующаяся для тестирования. На основе выбранного протокола вы можете задать порт, пороговые значения, частоту тестов и другие параметры.
Группа тестирования — группа, которая содержит конечные точки источника, конечные точки назначения и конфигурации тестов. Монитор подключения может содержать более одной группы тестирования.
Тест — определенное сочетание конечной точки источника, конечной точки назначения и конфигурации теста. Тест — это наиболее детализированный уровень доступности данных мониторинга. Данные мониторинга включают в себя процент проверок, завершившихся сбоем, и время приема-передачи (RTT).
Действия по созданию монитора подключения с помощью ARMClient
Чтобы создать монитор подключения с помощью ARMClient, используйте приведенный ниже код.
$connectionMonitorName = "sampleConnectionMonitor"
$ARM = "https://management.azure.com"
$SUB = "subscriptions/<subscription id 1>;"
$NW = "resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher\_<region>"
$body =
"{
location: '<region>',
properties: {
endpoints: [{
name: 'endpoint_workspace_machine',
type: 'MMAWorkspaceMachine',
resourceId: '/subscriptions/<subscription id>/resourcegroups/<resource group>/providers/Microsoft.OperationalInsights/workspaces/sampleWorkspace',
//Example 1: Choose a machine
address : '<non-Azure machine FQDN>'
}
//Example 2: Select IP from chosen machines
address : '<non-Azure machine FQDN>
"scope": {
"include": [
{
"address": "<IP belonging to machine chosen above>"
}
]
}
}
name: 'endpoint_workspace_network',
type: 'MMAWorkspaceNetwork',
resourceId: '/subscriptions/<subscription id>/resourcegroups/<resource group>/providers/Microsoft.OperationalInsights/workspaces/sampleWorkspace',
coverage level : 'high', //Optional
//Include subnets. You can also exclude IPs from subnet to exclude from monitoring
scope: {
"include": [
{
"address": "<subnet 1 mask>" // Eg: 10.10.1.0/28
},
{
"address": "<subnet 2 mask>"
}
],
"exclude": [
{
"address" : "<ip-from-included-subnets-that-should-be-excluded>"
}
]
}
},
//Use a Azure VM as an endpoint
{
name: 'endpoint_virtualmachine',
resourceId: '/subscriptions/<subscription id>/resourceGroups/<resource group>/providers/Microsoft.Compute/virtualMachines/<vm-name>'
},
//Use an Azure VNET or Subnet as an endpoint
{
name: 'endpoint_vnet_subnet',
resourceId: '<resource id of VNET or subnet'
coverage level: 'high' //Optional
//Scope is optional.
"scope": {
"include": [
{
"address": "<subnet 1 mask>" // Eg: 10.10.1.0/28 .This subnet should match with any existing subnet in vnet
}
],
"exclude": [
{
"address": "<ip-from-included-subnets-that-should-be-excluded>" // If used with include, IP should be part of the subnet defined above. Without include, this could be any address within vnet range or any specific subnet range as a whole.
}
]
}
},
//Endpoint as a URL
{
name: 'azure portal'
address: '<URL>'
},
//Endpoint as an IP
{
name: 'ip',
address: '<IP>'
}
],
testGroups: [{
name: 'Connectivity to Azure Portal and Public IP',
testConfigurations: ['http', 'https', 'tcpEnabled', 'icmpEnabled'],
sources: ['vm1', 'workspace'],
destinations: ['azure portal', 'ip']
},
{
name: 'Connectivty from Azure VM 1 to Azure VM 2',
// Choose your protocol
testConfigurations: ['http', 'https', 'tcpDisabled', 'icmpDisabled'],
sources: ['vm1'],
destinations: ['vm2'],
disable: true
}
],
testConfigurations: [{
name: 'http',
testFrequencySec: <frequency>,
protocol: 'HTTP',
successThreshold: {
checksFailedPercent: <threshold for checks failed %>,
roundTripTimeMs: <threshold for RTT>
}
}, {
name: 'https',
testFrequencySec: <frequency>,
protocol: 'HTTP',
httpConfiguration: {
port: '<port of choice>'
preferHTTPS: true // If port chosen isn't 80 or 443
method: 'GET', //Choose GET or POST
path: '/', //Specify path for request
requestHeaders: [
{
"name": "Content-Type",
"value": "appication/json"
}
],
validStatusCodeRanges: [ "102", "200-202", "3xx" ], //Samples
},
successThreshold: {
checksFailedPercent: <choose your checks failed threshold>,
roundTripTimeMs: <choose your RTT threshold>
}
},
{
name: 'tcpEnabled',
testFrequencySec: <frequency>,
protocol: 'TCP',
tcpConfiguration: {
port: 80
},
successThreshold: {
checksFailedPercent: <choose your checks failed threshold>,
roundTripTimeMs: <choose your RTT threshold>
}
}, {
name: 'icmpEnabled',
testFrequencySec: <frequency>,
protocol: 'ICMP',
successThreshold: {
checksFailedPercent: <choose your checks failed threshold>,
roundTripTimeMs: <choose your RTT threshold>
}
}, {
name: 'icmpDisabled',
testFrequencySec: <frequency>,
protocol: 'ICMP',
icmpConfiguration: {
disableTraceRoute: true
},
successThreshold: {
checksFailedPercent: <choose your checks failed threshold>,
roundTripTimeMs: <choose your RTT threshold>
}
}, {
name: 'tcpDisabled',
testFrequencySec: <frequency>,
protocol: 'TCP',
tcpConfiguration: {
port: 80,
disableTraceRoute: true
},
successThreshold: {
checksFailedPercent: <choose your checks failed threshold>,
roundTripTimeMs: <choose your RTT threshold>
}
}
]
}
} "
Команда развертывания выглядит следующим образом:
armclient PUT $ARM/$SUB/$NW/connectionMonitors/$connectionMonitorName/?api-version=2019-07-01 $body -verbose
Описание свойств
ConnectionMonitorName: имя ресурса монитора подключения.
SUB: идентификатор подписки, в которой требуется создать монитор подключения.
NW — идентификатор ресурса Наблюдатель за сетями, в котором создается CM
расположение — регион, в котором создается монитор подключений
Конечные точки
- name : уникальное имя для каждой конечной точки.
- resourceId — для конечных точек Azure идентификатор ресурса ссылается на идентификатор ресурса Azure Resource Manager для виртуальных машин. Для конечных точек, не относящихся к Azure, идентификатором ресурса является идентификатор ресурса Azure Resource Manager для рабочей области Log Analytics, связанной с агентами, отличными от агентов Azure.
- адрес — применимо только в том случае, если идентификатор ресурса не указан или если идентификатор ресурса является рабочей областью Log Analytics. При использовании вместе с идентификатором ресурса Log Analytics это означает полное доменное имя агента, который можно использовать для мониторинга. При использовании без идентификатора ресурса это может быть URL-адрес или IP-адрес любой общедоступной конечной точки.
- filter: для конечных точек, не относящихся к Azure, с помощью фильтра можно выбрать агентов из рабочей области Log Analytics для мониторинга в ресурсе монитора подключения. Если фильтры не заданы, для мониторинга можно использовать все агенты, принадлежащие рабочей области Log Analytics.
- type: выберите вариант "Адрес агента".
- address: укажите полное доменное имя локального агента.
Тестовые группы
- name: имя группы тестов.
- testConfigurations: конфигурации тестов в зависимости от того, какие конечные точки источника подключаются к конечным точкам назначения.
- sources: выбор из числа созданных выше конечных точек. Для конечных точек на основе источника Azure необходимо установить расширение Azure Наблюдатель за сетями, а конечные точки источника, отличные от Azure, должны быть установлены агент Log Analytics Для Azure. Сведения об установке агента для источника см. в разделе Установка агентов наблюдения.
- destinations: выбор из числа созданных выше конечных точек. Вы можете наблюдать за подключением к виртуальным машинам Azure или любой конечной точке (используя общедоступный IP-адрес, URL-адрес или полное доменное имя), указав их в качестве назначений. В одной тестовой группе можно добавлять виртуальные машины Azure, URL-адреса Office 365, URL-адреса Dynamics 365 и пользовательские конечные точки.
- disable: с помощью этого поля можно отключить мониторинг для всех источников и назначений в группе тестирования.
Конфигурации тестов
name: имя конфигурации теста.
testFrequencySec: укажите, как часто источники будут проверять связь с назначениями по указанным протоколу и порту. Можно выбрать интервалы 30 секунд, 1 минуту, 5 минут, 15 минут или 30 минут. Источники проверяют возможность подключения к местам назначения на основе выбранного значения. Например, если выбрать 30 секунд, источники будут проверять подключение к назначению по крайней мере один раз в течение 30 секунд.
протокол — вы можете выбрать TCP, ICMP, HTTP или HTTPS. В зависимости от протокола можно настроить некоторые его параметры.
- preferHTTPS: укажите, следует ли использовать HTTPS через HTTP, если используемый порт — ни 80, ни 443.
- port: укажите выбранный порт назначения.
- disableTraceRoute: для конфигураций тестов с протоколом TCP или ICMP. Он останавливает источники от обнаружения топологии и хоп-хоп RTT.
- method: для конфигураций тестов с протоколом HTTP. Этот параметр позволяет выбрать метод HTTP-запроса (GET или POST).
- path: укажите параметры пути, которые нужно добавить в URL-адрес.
- validStatusCodes: выберите применимые коды состояния. Если код ответа не соответствует этому списку, вы получите диагностическое сообщение
- requestHeaders: укажите настраиваемые строки заголовков запросов, которые будут передаваться в назначение.
successThreshold: можно задать пороговые значения для указанных ниже сетевых параметров.
- checksFailedPercent: задайте процент проверок, которые могут завершаться ошибкой, когда источники проверяют подключение к местам назначения, используя указанные критерии. Для протокола TCP или ICMP процент неудачных проверок может равняться проценту потери пакетов. Для протокола HTTP в этом поле указывается процент HTTP-запросов, которые не получили ответа.
- roundTripTimeMs: задайте значение времени приема-передачи (в миллисекундах), определяющее время, в течение которого источники могут пытаться подключиться к назначению в конфигурации теста.
Ограничения масштабирования
Мониторы подключений имеют следующие ограничения масштабирования:
- Максимальное число мониторов подключения на подписку в одном регионе: 100
- Максимальное число групп тестирования на монитор подключения: 20
- Максимальное число источников и назначений на монитор подключения: 100
- Максимальное число конфигураций тестов на монитор подключения: 20 на каждый клиент ARMClient.