Создание монитора подключения с помощью ARMClient

Важно!

Начиная с 1 июля 2021 г. вы не сможете добавлять новые тесты в существующую рабочую область или включать новую рабочую область в сетевой Монитор производительности. Вы также не сможете добавлять новые мониторы подключений в Монитор подключений (классическая модель). Вы можете продолжать использовать тесты и мониторы соединений, созданные до 1 июля 2021. Чтобы предотвратить прерывание предоставления служб для ваших текущих рабочих нагрузок, необходимо выполнить перенос тестов с Монитора производительности сети либо перейти с Монитора подключений (классический формат) на новый Монитор подключений, включенный в Наблюдатель за сетями Azure, до 29 февраля 2024 г.

Узнайте, как использовать Монитор подключений для отслеживания взаимодействия между ресурсами. Он поддерживает гибридные развертывания и развертывания в облаке 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: идентификатор ресурса Наблюдателя за сетями, в котором будет создан монитор подключения.

  • Location: регион, в котором создается монитор подключения.

  • Конечные точки

    • name : уникальное имя для каждой конечной точки.
    • resourceId — для конечных точек Azure идентификатор ресурса — это идентификатор ресурса Resource Manager Azure для виртуальных машин. Для конечных точек, не относящихся к Azure, идентификатором ресурса является идентификатор ресурса Azure Resource Manager для рабочей области Log Analytics, связанной с агентами, отличными от агентов Azure.
    • address — применимо только в том случае, если идентификатор ресурса не указан или если идентификатор ресурса — рабочая область Log Analytics. При использовании вместе с идентификатором ресурса Log Analytics это означает полное доменное имя агента, который можно использовать для мониторинга. При использовании без идентификатора ресурса это может быть URL-адрес или IP-адрес любой общедоступной конечной точки.
    • filter: для конечных точек, не относящихся к Azure, с помощью фильтра можно выбрать агентов из рабочей области Log Analytics для мониторинга в ресурсе монитора подключения. Если фильтры не заданы, для мониторинга можно использовать все агенты, принадлежащие рабочей области Log Analytics.
      • type: выберите вариант "Адрес агента".
      • address: укажите полное доменное имя локального агента.
  • Тестовые группы

    • name: имя группы тестов.
    • testConfigurations: конфигурации тестов в зависимости от того, какие конечные точки источника подключаются к конечным точкам назначения.
    • sources: выбор из числа созданных выше конечных точек. Для конечных точек источника на основе Azure необходимо установить расширение Azure Наблюдатель за сетями, а для конечных точек источника, отличных от Azure, должен быть установлен агент Azure Log Analytics. Сведения об установке агента для источника см. в разделе Установка агентов наблюдения.
    • destinations: выбор из числа созданных выше конечных точек. Вы можете наблюдать за подключением к виртуальным машинам Azure или любой конечной точке (используя общедоступный IP-адрес, URL-адрес или полное доменное имя), указав их в качестве назначений. В одной тестовой группе можно добавлять виртуальные машины Azure, URL-адреса Office 365, URL-адреса Dynamics 365 и пользовательские конечные точки.
    • disable: с помощью этого поля можно отключить мониторинг для всех источников и назначений в группе тестирования.
  • Конфигурации тестов

    • name: имя конфигурации теста.

    • testFrequencySec: укажите, как часто источники будут проверять связь с назначениями по указанным протоколу и порту. Можно выбрать интервалы 30 секунд, 1 минуту, 5 минут, 15 минут или 30 минут. Источники проверяют возможность подключения к местам назначения на основе выбранного значения. Например, если выбрать 30 секунд, источники будут проверять подключение к назначению по крайней мере один раз в течение 30 секунд.

    • protocol: можно выбрать 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.

Дальнейшие действия