Een verbindingsmonitor maken met behulp van de ARMClient
Belangrijk
Verbindingsmonitor (klassiek) is afgeschaft en is niet meer beschikbaar. Zie Migreren van verbindingsmonitor (klassiek) om uw verbindingsmonitors te migreren van verbindingsmonitor (klassiek) naar de nieuwe verbindingsmonitor voor meer informatie.
Meer informatie over het maken van Verbindingsmonitor voor het bewaken van de communicatie tussen uw resources met behulp van de ARMClient. Het biedt ondersteuning voor 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-adres bevindt.
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 bevatten het percentage controles dat is mislukt en de retourtijd (RTT).
Stappen voor het maken van een verbindingsmonitor met BEHULP van 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 waar u verbindingsmonitor wilt maken
NW - Network Watcher-resource-id waarin CM wordt gemaakt
locatie - Regio waarin verbindingsmonitor wordt gemaakt
Eindpunten
- name : unieke naam voor elk eindpunt
- resourceId: voor Azure-eindpunten verwijst resource-id naar de Azure Resource Manager-resource-id voor virtuele machines. Voor niet-Azure-eindpunten verwijst de resource-id van Azure Resource Manager naar de Log Analytics-werkruimte die is gekoppeld aan niet-Azure-agents.
- adres: alleen van toepassing wanneer een resource-id niet is opgegeven of als de resource-id log analytics-werkruimte is. Als deze wordt gebruikt met 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 wordt gebruikt voor bewaking in de resource verbindingsmonitor. Als er geen filters zijn ingesteld, kunnen alle agents die behoren tot de Log Analytics-werkruimte worden gebruikt voor bewaking
- type : type instellen als 'Agentadres'
- adres : stel het adres in als de FQDN van uw on-premises agent
Testgroepen
- name : geef uw testgroep een naam.
- testConfigurations - Configuraties testen op basis van welke broneindpunten verbinding maken met doeleindpunten
- bronnen: kies uit eindpunten die hierboven zijn gemaakt. Op Azure gebaseerde broneindpunten moeten de Azure Network Watcher-extensie zijn geïnstalleerd en niet-Azure-broneindpunten moeten de Log Analytics-agent hebben geïnstalleerd. Zie Bewakingsagents installeren om een agent voor uw bron te installeren.
- bestemmingen: kies uit eindpunten die hierboven zijn gemaakt. U kunt de connectiviteit met Virtuele Azure-machines of elk eindpunt (een openbaar IP-, URL- of FQDN-adres) bewaken door deze op te geven als bestemmingen. In één testgroep kunt u Virtuele Azure-machines, Office 365-URL's, Dynamics 365-URL's en aangepaste eindpunten toevoegen.
- uitschakelen: gebruik dit veld om bewaking uit te schakelen voor alle bronnen en bestemmingen die door de testgroep worden opgegeven.
Configuraties testen
name : naam van de testconfiguratie.
testFrequencySec: geef op hoe vaak bronnen bestemmingen pingen op het protocol en de poort die u hebt opgegeven. U kunt 30 seconden, 1 minuut, 5 minuten, 15 minuten of 30 minuten kiezen. Bronnen testen de connectiviteit met bestemmingen op basis van de waarde die u kiest. Als u bijvoorbeeld 30 seconden selecteert, controleren bronnen ten minste één keer in een periode van 30 seconden de verbinding met de bestemming.
protocol: u kunt TCP, ICMP, HTTP of HTTPS kiezen. Afhankelijk van het protocol kunt u bepaalde protocolspecifieke configuraties uitvoeren
- preferHTTPS: geef aan of HTTPS via HTTP moet worden gebruikt wanneer de gebruikte poort niet 80 of 443 is
- poort: geef de doelpoort van uw keuze op.
- disableTraceRoute: dit is van toepassing op testconfiguraties waarvan het protocol TCP of ICMP is. Het stopt bronnen om topologie en hop-by-hop RTT te detecteren.
- methode: dit is toegepast op testconfiguraties waarvan het protocol HTTP is. Selecteer de HTTP-aanvraagmethode: GET of POST
- pad - Padparameters opgeven die moeten worden toegevoegd aan URL
- validStatusCodes - Kies toepasselijke statuscodes. Als 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 TCP- of ICMP-protocol kan het percentage mislukte controles worden gelijk aan het percentage pakketverlies. Voor het HTTP-protocol vertegenwoordigt dit veld het percentage HTTP-aanvragen dat geen antwoord heeft ontvangen.
- roundTripTimeMs : stel de RTT in milliseconden in voor hoelang bronnen verbinding kunnen maken met het doel 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
- Maximale testconfiguraties per verbindingsmonitor: 20 via ARMClient
Volgende stappen
- Meer informatie over het analyseren van bewakingsgegevens en het instellen van waarschuwingen
- Meer informatie over het diagnosticeren van problemen in uw netwerk