Vytvoření monitorování připojení pomocí ARMClient

Důležité

Od 1. července 2021 nebudete moct přidávat nové testy v existujícím pracovním prostoru ani povolovat nový pracovní prostor v Sledování výkonu sítě. V Monitorování připojení (classic) také nebudete moct přidávat nové monitory připojení. Testy a monitorování připojení vytvořené před 1. červencem 2021 můžete dál používat. Pokud chcete minimalizovat přerušení služeb v aktuálních úlohách, proveďte před 29. únorem 2024 migraci testů ze síťového Sledování výkonu nebo migraci z Monitorování připojení (klasické) na novou Monitorování připojení v Azure Network Watcher.

Naučte se vytvářet Monitorování připojení pro monitorování komunikace mezi prostředky pomocí ARMClient. Podporuje hybridní nasazení a cloudová nasazení Azure.

Než začnete

V monitorováních připojení, která vytvoříte v Monitorování připojení, můžete jako zdroje přidat místní počítače i virtuální počítače Azure. Tato monitorování připojení mohou také monitorovat připojení ke koncovým bodům. Koncové body můžou být v Azure nebo na jakékoli jiné adrese URL nebo IP adrese.

Monitorování připojení zahrnuje následující entity:

  • Prostředek monitorování připojení – Prostředek Azure pro konkrétní oblast. Všechny následující entity jsou vlastnosti prostředku monitorování připojení.

  • Koncový bod – zdroj nebo cíl, který se účastní kontrol připojení. Příkladem koncových bodů jsou virtuální počítače Azure, místní agenti, adresy URL a IP adresy.

  • Konfigurace testu – konfigurace pro test specifická pro protokol. Na základě zvoleného protokolu můžete definovat port, prahové hodnoty, frekvenci testování a další parametry.

  • Testovací skupina – skupina, která obsahuje zdrojové koncové body, cílové koncové body a konfigurace testů. Monitorování připojení může obsahovat více než jednu testovací skupinu.

  • Test – kombinace zdrojového koncového bodu, cílového koncového bodu a konfigurace testu. Test je nejpodrobnější úroveň, na které jsou k dispozici data monitorování. Data monitorování zahrnují procento neúspěšných kontrol a dobu odezvy (RTT).

    Diagram znázorňující monitorování připojení definující vztah mezi testovacími skupinami a testy

Postup vytvoření monitorování připojení pomocí ARMClient

Pomocí následujícího kódu vytvořte monitorování připojení pomocí 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>

    }

   }

  ]

 }

} "

Tady je příkaz pro nasazení:

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

Popis vlastností

  • connectionMonitorName – název prostředku monitorování připojení.

  • SUB – ID předplatného, ve kterém chcete vytvořit monitorování připojení

  • NW – Network Watcher ID prostředku, ve kterém se vytvoří CM.

  • location – oblast, ve které se vytvoří monitorování připojení.

  • Koncové body

    • name – jedinečný název pro každý koncový bod.
    • resourceId – ID prostředku pro koncové body Azure odkazuje na ID prostředku Azure Resource Manager pro virtuální počítače. U koncových bodů mimo Azure SE ID prostředku odkazuje na ID prostředku Azure Resource Manager pro pracovní prostor služby Log Analytics propojený s agenty mimo Azure.
    • address – Platí jenom v případě, že není zadané ID prostředku nebo pokud je ID prostředku pracovní prostor služby Log Analytics. Pokud se používá s ID prostředku Log Analytics, odkazuje to na plně kvalifikovaný název domény agenta, který se dá použít k monitorování. Pokud se použije bez ID prostředku, může to být adresa URL nebo IP adresa libovolného veřejného koncového bodu.
    • filter – U koncových bodů mimo Azure pomocí filtru vyberte agenty z pracovního prostoru služby Log Analytics, kteří se použijí k monitorování v prostředku monitorování připojení. Pokud nejsou nastavené filtry, je možné k monitorování použít všechny agenty patřící do pracovního prostoru služby Log Analytics.
      • type – nastavte typ na "Adresa agenta".
      • address – Nastavte adresu jako plně kvalifikovaný název domény místního agenta.
  • Testovací skupiny

    • name – pojmenujte testovací skupinu.
    • testConfigurations – konfigurace testů na základě toho, které zdrojové koncové body se připojují k cílovým koncovým bodům.
    • sources – vyberte si z výše vytvořených koncových bodů. Zdrojové koncové body založené na Azure musí mít nainstalované rozšíření Azure Network Watcher a zdrojové koncové body, které nejsou založené na Azure, musí mít nainstalovaného agenta Azure Log Analytics. Pokud chcete nainstalovat agenta pro zdroj, přečtěte si téma Instalace agentů monitorování.
    • destinations – Vyberte si z výše vytvořených koncových bodů. Připojení k virtuálním počítačům Azure nebo jakémukoli koncovému bodu (veřejná IP adresa, adresa URL nebo plně kvalifikovaný název domény) můžete monitorovat tak, že je zadáte jako cíle. V jedné testovací skupině můžete přidat virtuální počítače Azure, Office 365 adresy URL, adresy URL Dynamics 365 a vlastní koncové body.
    • disable – pomocí tohoto pole zakážete monitorování všech zdrojů a cílů, které testovací skupina určuje.
  • Konfigurace testů

    • name – název konfigurace testu.

    • testFrequencySec – určuje, jak často budou zdroje odesílat příkazy ping na zadaný protokol a port. Můžete zvolit 30 sekund, 1 minutu, 5 minut, 15 minut nebo 30 minut. Zdroje otestují připojení k cílům na základě hodnoty, kterou zvolíte. Pokud například vyberete 30 sekund, zdroje zkontrolují připojení k cíli alespoň jednou za 30 sekund.

    • protocol – můžete zvolit PROTOKOL TCP, ICMP, HTTP nebo HTTPS. V závislosti na protokolu můžete provést některé konfigurace specifické pro protokol.

      • preferHTTPS – Určete, jestli se má používat HTTPS přes HTTP, pokud se používá port 80 ani 443.
      • port – Zadejte cílový port podle svého výběru.
      • disableTraceRoute – platí pro konfigurace testů, jejichž protokol je TCP nebo ICMP. Brání zdrojům ve zjišťování topologie a směrování rtt po směrování.
      • method – To platí pro testovací konfigurace, jejichž protokol je HTTP. Vyberte metodu požadavku HTTP – get nebo POST.
      • path – zadejte parametry cesty, které se mají připojit k adrese URL.
      • validStatusCodes – zvolte příslušné stavové kódy. Pokud kód odpovědi neodpovídá tomuto seznamu, zobrazí se diagnostická zpráva.
      • requestHeaders – Určete vlastní řetězce hlaviček požadavků, které se předají do cíle.
    • successThreshold – Můžete nastavit prahové hodnoty pro následující parametry sítě:

      • checksFailedPercent – nastavte procento kontrol, které můžou selhat, když zdroje kontrolují připojení k cílům pomocí zadaných kritérií. U protokolu TCP nebo ICMP se procento neúspěšných kontrol může rovnat procentu ztráty paketů. Pro protokol HTTP toto pole představuje procento požadavků HTTP, které neobdržely žádnou odpověď.
      • roundTripTimeMs – nastavení doby odezvy v milisekundách pro to, jak dlouho může zdrojům trvat připojení k cíli přes konfiguraci testu.

Limity škálování

Monitorování připojení má následující omezení škálování:

  • Maximální počet monitorování připojení na předplatné a oblast: 100
  • Maximální počet testovacích skupin na monitor připojení: 20
  • Maximální počet zdrojů a cílů na monitorování připojení: 100
  • Maximální počet testovacích konfigurací na monitorování připojení: 20 přes ARMClient

Další kroky