Share via


Een verbindingsmonitor maken met behulp van de ARMClient

Belangrijk

Vanaf 1 juli 2021 kunt u geen nieuwe tests meer toevoegen aan een bestaande werkruimte of een nieuwe werkruimte inschakelen in Network Performance Monitor. U kunt ook geen nieuwe verbindingsmonitors toevoegen in Verbindingsmonitor (klassiek). U kunt de tests en verbindingsmonitors die vóór 1 juli 2021 zijn gemaakt, blijven gebruiken. Als u onderbreking van de service voor uw huidige workloads wilt minimaliseren, migreert u uw tests van Network Performance Monitor of migreert u vóór 29 februari 2024 van Verbindingsmonitor (klassiek) naar de nieuwe Verbindingsmonitor in Azure Network Watcher.

Meer informatie over het maken van Verbindingsmonitor om de communicatie tussen uw resources te bewaken met behulp van de ARMClient. Het ondersteunt hybride en Azure-cloudimplementaties.

Voordat u begint

In verbindingsmonitors die u in Verbindingsmonitor maakt, kunt u zowel on-premises machines als Azure-VM's als bronnen toevoegen. Deze verbindingsmonitors kunnen ook de connectiviteit met eindpunten bewaken. De eindpunten kunnen zich in Azure of een andere URL of IP bevinden.

Verbindingsmonitor bevat de volgende entiteiten:

  • Verbindingsmonitorresource : een regiospecifieke Azure-resource. Alle volgende entiteiten zijn eigenschappen van een verbindingsmonitorresource.

  • Eindpunt : een bron of bestemming die deelneemt aan connectiviteitscontroles. Voorbeelden van eindpunten zijn azure-VM's, on-premises agents, URL's en IP-adressen.

  • Testconfiguratie : een protocolspecifieke configuratie voor een test. Op basis van het protocol dat u hebt gekozen, kunt u de poort, drempelwaarden, testfrequentie en andere parameters definiëren.

  • Testgroep : de groep die broneindpunten, doeleindpunten en testconfiguraties bevat. Een verbindingsmonitor kan meer dan één testgroep bevatten.

  • Test : de combinatie van een broneindpunt, doeleindpunt en testconfiguratie. Een test is het meest gedetailleerde niveau waarop bewakingsgegevens beschikbaar zijn. De bewakingsgegevens omvatten het percentage controles dat is mislukt en de round-trip time (RTT).

    Diagram van een verbindingsmonitor, waarin de relatie tussen testgroepen en tests wordt gedefinieerd

Stappen voor het maken van een verbindingsmonitor met ARMClient

Gebruik de volgende code om een verbindingsmonitor te maken met behulp van 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>

    }

   }

  ]

 }

} "

Dit is de implementatieopdracht:

armclient PUT $ARM/$SUB/$NW/connectionMonitors/$connectionMonitorName/?api-version=2019-07-01 $body -verbose

Beschrijving van eigenschappen

  • connectionMonitorName - Naam van de verbindingsmonitorresource

  • SUB - Abonnements-id van het abonnement waarin u de verbindingsmonitor wilt maken

  • NW - Network Watcher resource-id waarin CM wordt gemaakt

  • location - Regio waarin de verbindingsmonitor wordt gemaakt

  • Eindpunten

    • name: unieke naam voor elk eindpunt
    • resourceId: voor Azure-eindpunten verwijst resource-id naar de resource-id van Azure Resource Manager voor virtuele machines. Voor niet-Azure-eindpunten verwijst resource-id naar de Azure Resource Manager resource-id voor de Log Analytics-werkruimte die is gekoppeld aan niet-Azure-agents.
    • adres: alleen van toepassing wanneer een van de resource-id's niet is opgegeven of als de resource-id een Log Analytics-werkruimte is. Als deze wordt gebruikt met de Log Analytics-resource-id, verwijst dit naar de FQDN van de agent die kan worden gebruikt voor bewaking. Als u zonder resource-id wordt gebruikt, kan dit de URL of het IP-adres van een openbaar eindpunt zijn.
    • filter: voor niet-Azure-eindpunten gebruikt u filter om agents te selecteren in de Log Analytics-werkruimte die worden gebruikt voor bewaking in de verbindingsmonitorresource. Als er geen filters zijn ingesteld, kunnen alle agents die behoren tot de Log Analytics-werkruimte worden gebruikt voor bewaking
      • type: stel het type in als 'Agentadres'
      • adres: adres instellen als de FQDN van uw on-premises agent
  • Testgroepen

    • name: geef de testgroep een naam.
    • testConfigurations: configuraties testen op basis van welke broneindpunten verbinding maken met doeleindpunten
    • bronnen: kies uit de hierboven gemaakte eindpunten. Broneindpunten op basis van Azure moeten de Azure Network Watcher-extensie hebben geïnstalleerd en voor niet-Azure-broneindpunten moet de Azure Log Analytics-agent zijn geïnstalleerd. Zie Bewakingsagents installeren als u een agent voor uw bron wilt installeren.
    • bestemmingen: kies uit de hierboven gemaakte eindpunten. U kunt de connectiviteit met Azure-VM's of een eindpunt (een openbaar IP-adres, URL of FQDN) bewaken door deze op te geven als bestemmingen. In één testgroep kunt u Azure-VM's, Office 365 URL's, Dynamics 365 URL's en aangepaste eindpunten toevoegen.
    • disable: gebruik dit veld om bewaking uit te schakelen voor alle bronnen en bestemmingen die door de testgroep worden opgegeven.
  • Configuraties testen

    • name: de naam van de testconfiguratie.

    • testFrequencySec: geef op hoe vaak bronnen bestemmingen pingen op het protocol en de poort die u hebt opgegeven. U kunt kiezen uit 30 seconden, 1 minuut, 5 minuten, 15 minuten of 30 minuten. Bronnen testen de connectiviteit met bestemmingen op basis van de waarde die u kiest. Als u bijvoorbeeld 30 seconden selecteert, controleren bronnen de verbinding met de bestemming ten minste eenmaal in een periode van 30 seconden.

    • protocol: u kunt TCP, ICMP, HTTP of HTTPS kiezen. Afhankelijk van het protocol kunt u enkele protocolspecifieke configuraties uitvoeren

      • preferHTTPS: geef op of HTTPS via HTTP moet worden gebruikt, wanneer de gebruikte poort niet 80 of 443 is
      • port: geef de doelpoort van uw keuze op.
      • disableTraceRoute: dit is van toepassing op testconfiguraties waarvan het protocol TCP of ICMP is. Hiermee voorkomt u dat bronnen topologie en hop-by-hop RTT detecteren.
      • methode: dit wordt toegepast op testconfiguraties waarvan het protocol HTTP is. Selecteer de HTTP-aanvraagmethode: GET of POST
      • pad: geef padparameters op die aan de URL moeten worden toegevoegd
      • validStatusCodes: kies toepasselijke statuscodes. Als de antwoordcode niet overeenkomt met deze lijst, krijgt u een diagnostisch bericht
      • requestHeaders: geef aangepaste aanvraagheadertekenreeksen op die worden doorgegeven aan de bestemming
    • successThreshold: u kunt drempelwaarden instellen voor de volgende netwerkparameters:

      • checksFailedPercent: stel het percentage controles in dat kan mislukken wanneer bronnen de connectiviteit met bestemmingen controleren met behulp van de criteria die u hebt opgegeven. Voor het TCP- of ICMP-protocol kan het percentage mislukte controles worden vergeleken met het percentage pakketverlies. Voor HTTP-protocol vertegenwoordigt dit veld het percentage HTTP-aanvragen dat geen antwoord heeft ontvangen.
      • roundTripTimeMs: stel de RTT in milliseconden in voor hoe lang het kan duren voordat bronnen verbinding maken met de bestemming via de testconfiguratie.

Schaallimieten

Verbindingsmonitors hebben de volgende schaallimieten:

  • Maximum aantal verbindingsmonitors per abonnement per regio: 100
  • Maximum aantal testgroepen per verbindingsmonitor: 20
  • Maximum aantal bronnen en bestemmingen per verbindingsmonitor: 100
  • Maximum aantal testconfiguraties per verbindingsmonitor: 20 via ARMClient

Volgende stappen