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).
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