Vytvoření monitorování připojení pomocí ARMClient
Důležité
Monitorování připojení (klasické) je zastaralé a už není k dispozici. Další informace najdete v tématu Migrace z monitorování připojení (Classic) pro migraci monitorování připojení z monitorování připojení (classic) na nový monitor připojení.
Naučte se vytvářet Monitorování připojení pro monitorování komunikace mezi prostředky pomocí ARMClient. Podporuje hybridní 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. Tyto monitorování připojení můžou také monitorovat připojení ke koncovým bodům. Koncové body můžou být v Azure nebo v 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 specifický 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í. Mezi příklady koncových bodů patří virtuální počítače Azure, místní agenti, adresy URL a IP adresy.
Konfigurace testu – konfigurace specifická pro protokol pro test. Na základě zvoleného protokolu můžete definovat port, prahové hodnoty, frekvenci testů 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 testovací konfigurace Test je nejpodrobnější úroveň, na které jsou k dispozici data monitorování. Data monitorování zahrnují procento kontrol, které selhaly, 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 – ID prostředku služby Network Watcher, ve kterém se vytvoří CM
location - Region in which connection monitor is created
Koncové body
- name – Jedinečný název pro každý koncový bod
- resourceId – PRO koncové body Azure odkazuje ID prostředku Azure Resource Manageru pro virtuální počítače. V případě koncových bodů mimo Azure odkazuje ID prostředku Azure Resource Manageru pro pracovní prostor služby Log Analytics propojeného s agenty mimo Azure.
- address – Platí pouze v případě, že není zadané ID prostředku nebo pokud je ID prostředku pracovním prostorem 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žívá bez ID prostředku, může se jednat o adresu URL nebo IP adresu libovolného veřejného koncového bodu.
- filter – Pro koncové body mimo Azure použijte filtr k výběru agentů z pracovního prostoru služby Log Analytics, který se použije k monitorování v prostředku monitorování připojení. Pokud filtry nejsou nastavené, můžou se k monitorování použít všichni agenti patřící do pracovního prostoru služby Log Analytics.
- type – Nastavit typ jako "Adresa agenta"
- address – Nastavení adresy jako plně kvalifikovaného názvu 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 mimo Azure musí mít nainstalovaného agentaAzure Log Analytics. Pokud chcete nainstalovat agenta pro váš zdroj, přečtěte si téma Instalace agentů monitorování.
- cíle – Vyberte si z výše vytvořených koncových bodů. Připojení k virtuálním počítačům Azure nebo libovolnému koncovému bodu (veřejnou IP adresu, adresu URL nebo plně kvalifikovaný název domény) můžete monitorovat tak, že je zadáte jako cíle. Do jedné testovací skupiny můžete přidat virtuální počítače Azure, adresy URL Office 365, adresy URL Dynamics 365 a vlastní koncové body.
- disable – Pomocí tohoto pole můžete zakázat monitorování pro všechny zdroje a cíle, které určuje testovací skupina.
Konfigurace testů
name – název konfigurace testu.
testFrequencySec – Určete, jak často zdroje budou cíli ping na zadaném protokolu a portu. 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ě vámi zvolené hodnoty. Pokud například vyberete 30 sekund, zdroje zkontrolují připojení k cíli alespoň jednou během 30sekundového období.
protokol – 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á protokol HTTPS používat přes PROTOKOL HTTP, pokud použitý port není 80 ani 443.
- port – Zadejte cílový port podle vašeho výběru.
- disableTraceRoute – To platí pro testovací konfigurace, jejichž protokol je TCP nebo ICMP. Zastaví zdroje od zjišťování topologie a průběžného směrování RTT.
- metoda – tato metoda se používá pro testovací konfigurace, jejichž protokol je HTTP. Vyberte metodu požadavku HTTP – get nebo POST.
- path – Zadání parametrů cesty pro připojení k adrese URL
- validStatusCodes – Zvolte platné stavové kódy. Pokud kód odpovědi neodpovídá tomuto seznamu, zobrazí se diagnostická zpráva.
- requestHeaders – Zadejte vlastní řetězce hlavičky požadavku, které se předají do cíle.
successThreshold – Prahové hodnoty můžete nastavit na následujících parametrech 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 je možné procento neúspěšných kontrol shodovat s procentem ztráty paketů. Pro protokol HTTP představuje toto pole procento požadavků HTTP, které neobdržely žádnou odpověď.
- roundTripTimeMs – Nastavte RTT v milisekundách, jak dlouho se zdroje můžou přes testovací konfiguraci připojit k cíli.
Omezení škálování
Monitorování připojení mají následující omezení škálování:
- Maximální počet monitorování připojení na předplatné na 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 konfigurací testů na monitorování připojení: 20 přes ARMClient