Поделиться через


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

Внимание

Монитор подключений (классический) устарел и больше недоступен. Дополнительные сведения см. в статье Миграция из монитора подключения (классического) для переноса ваших мониторов подключения с классического монитора подключения на новый монитор подключения.

Узнайте, как использовать ARMClient для создания Монитора подключений и отслеживания взаимодействия между вашими ресурсами. Он поддерживает гибридные развертывания и развертывания в облаке Azure.

Перед началом

В мониторах подключений, создаваемых с помощью службы "Монитор подключений", в качестве источников можно добавлять локальные компьютеры и виртуальные машины Azure. Эти мониторы подключений также могут отслеживать подключения к конечным точкам. Конечные точки могут находиться в Azure или на любом другом URL- или IP-адресе.

Монитор подключения включает в себя следующие компоненты.

  • Ресурс монитора подключения — это специальный ресурс Azure для конкретного региона. Все следующие сущности являются свойствами ресурса монитора подключений.

  • Конечная точка — это источник или назначение, которые участвуют в проверке подключения. Примеры конечных точек: виртуальные машины Azure, локальные агенты, URL-адреса и IP-адрес.

  • Конфигурация теста — конфигурация, зависящая от протокола и использующаяся для тестирования. На основе выбранного протокола вы можете задать порт, пороговые значения, частоту тестов и другие параметры.

  • Группа тестирования — группа, которая содержит конечные точки источника, конечные точки назначения и конфигурации тестов. Монитор подключения может содержать более одной группы тестов.

  • Тест — комбинация конечной точки источника, конечной точки назначения и конфигурации теста. Тест — это наиболее детализированный уровень доступности данных мониторинга. Данные мониторинга включают в себя процент проверок, завершившихся сбоем, и время кругового перехода (RTT).

    Diagram showing a connection monitor, defining the relationship between test groups and testsСхема, показывающая мониторинг подключения, определяющая связь между группами тестов и самими тестами

Действия по созданию монитора подключения с помощью 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 — идентификатор ресурса Network Watcher, в котором создается 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: установите тип как "Адрес агента"
      • адрес – установите адрес как полное доменное имя (FQDN) вашего локального агента.
  • Тестовые группы

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

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

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

    • протокол — вы можете выбрать TCP, ICMP, HTTP или HTTPS. В зависимости от протокола можно настроить некоторые его параметры.

      • preferHTTPS: укажите, следует ли использовать HTTPS через HTTP, если используемый порт — ни 80, ни 443.
      • port: укажите выбранный порт назначения.
      • disableTraceRoute: для конфигураций тестов с протоколом TCP или ICMP. Он предотвращает источники от разведки топологии и последовательного определения времени кругового цикла (RTT).
      • метод — это относится к конфигурациям тестов, у которых протокол HTTP. Этот параметр позволяет выбрать метод HTTP-запроса (GET или POST).
      • path: укажите параметры пути, которые нужно добавить в URL-адрес.
      • validStatusCodes: выберите применимые коды состояния. Если код ответа не соответствует этому списку, вы получите диагностическое сообщение
      • requestHeaders: укажите настраиваемые строки заголовков запросов, которые будут передаваться в целевой адрес.
    • successThreshold: можно задать пороговые значения для указанных ниже сетевых параметров.

      • checksFailedPercent: задайте процент проверок, которые могут завершаться ошибкой, когда источники проверяют подключение к местам назначения, используя указанные критерии. Для протокола TCP или ICMP процент неудачных проверок может равняться проценту потери пакетов. Для протокола HTTP в этом поле указывается процент HTTP-запросов, которые не получили ответа.
      • roundTripTimeMs — задайте значение времени кругового обхода (в миллисекундах), показывающее, сколько времени требуется источникам для подключения к месту назначения в тестовой конфигурации.

Ограничения масштабирования

Мониторы подключений имеют следующие ограничения масштабирования:

  • Максимальное число мониторов подключения на подписку в одном регионе: 100
  • Максимальное число групп тестирования на монитор подключения: 20
  • Максимальное число источников и приёмных пунктов для каждого монитора подключения: 100
  • Максимальное число конфигураций тестов на монитор подключения: 20 через ARMClient.

Следующие шаги

  • Узнайте, как анализировать данные мониторинга и устанавливать оповещения.
  • Узнайте, как диагностировать проблемы в вашей сети.