Criar um monitor de conexão usando o ARMClient
Importante
O monitor de conexão (clássico) foi preterido e não está mais disponível. Para obter mais informações, consulte Migrar do monitor de conexão (clássico) para migrar seus monitores de conexão do monitor de conexão (clássico) para o novo monitor de conexão.
Saiba como criar o Monitor de Conexão para monitorar a comunicação entre seus recursos usando o ARMClient. Ele dá suporte a implantações de nuvem híbrida e do Azure.
Antes de começar
Nos monitores de conexão criados no Monitor de Conexão, você pode adicionar máquinas locais e VMs do Azure como fontes. Esses monitores de conexão também podem monitorar a conectividade com pontos de extremidade. Os pontos de extremidade podem estar no Azure ou em qualquer outra URL ou IP.
O Monitor de Conexão inclui as seguintes entidades:
Recurso de monitor de conexão – Um recurso do Azure específico da região. Todas as entidades a seguir são propriedades de um recurso de monitor de conexão.
Ponto de extremidade – Uma origem ou destino que participa de verificações de conectividade. Exemplos de pontos de extremidade incluem VMs do Azure, agentes locais, URLs e IPs.
Configuração de teste – Uma configuração específica de protocolo para um teste. Com base no protocolo escolhido, você pode definir a porta, os limites, a frequência de teste e outros parâmetros.
Grupo de teste – O grupo que contém pontos de extremidade de origem, pontos de extremidade de destino e configurações de teste. Um monitor de conexão pode conter mais de um grupo de teste.
Teste – A combinação de um ponto de extremidade de origem, ponto de extremidade de destino e configuração de teste. Um teste é o nível mais granular em que os dados de monitoramento estão disponíveis. Os dados de monitorização incluem a percentagem de verificações que falharam e o tempo de ida e volta (RTT).
Etapas para criar um monitor de conexão usando ARMClient
Use o código a seguir para criar um monitor de conexão usando 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>
}
}
]
}
} "
Aqui está o comando de implantação:
armclient PUT $ARM/$SUB/$NW/connectionMonitors/$connectionMonitorName/?api-version=2019-07-01 $body -verbose
Descrição dos imóveis
connectionMonitorName - Nome do recurso do monitor de conexão
SUB - ID de subscrição da subscrição onde pretende criar monitor de ligação
NW - ID do recurso do Inspetor de Rede no qual o CM é criado
localização - Região na qual o monitor de conexão é criado
Pontos finais
- name – Nome exclusivo para cada ponto de extremidade
- resourceId – Para pontos de extremidade do Azure, ID de recurso refere-se à ID de recurso do Azure Resource Manager para máquinas virtuais. Para pontos de extremidade que não são do Azure, a ID do recurso refere-se à ID do recurso do Azure Resource Manager para o espaço de trabalho do Log Analytics vinculado a agentes que não são do Azure.
- address – Aplicável somente quando o ID do recurso não é especificado ou se o ID do recurso é o espaço de trabalho do Log Analytics. Se usado com o ID do recurso do Log Analytics, isso se refere ao FQDN do agente que pode ser usado para monitoramento. Se usado sem ID de recurso, pode ser a URL ou IP de qualquer ponto de extremidade público.
- filter – Para pontos de extremidade que não sejam do Azure, use filter para selecionar agentes do espaço de trabalho do Log Analytics que serão usados para monitoramento no recurso Monitor de conexão. Se os filtros não estiverem definidos, todos os agentes pertencentes ao espaço de trabalho do Log Analytics poderão ser usados para monitoramento
- type – Defina o tipo como "Endereço do agente"
- address – Defina o endereço como o FQDN do seu agente local
Grupos de Teste
- name - Nomeie seu grupo de teste.
- testConfigurations - Configurações de teste com base em quais pontos de extremidade de origem se conectam aos pontos de extremidade de destino
- fontes - Escolha entre os pontos de extremidade criados acima. Os pontos de extremidade de origem baseados no Azure precisam ter a extensão do Azure Network Watcher instalada e os pontos de extremidade de origem não baseados no Azure precisam ter o agente do Azure Log Analytics instalado. Para instalar um agente para sua origem, consulte Instalar agentes de monitoramento.
- Destinos - Escolha entre os pontos finais criados acima. Você pode monitorar a conectividade com VMs do Azure ou qualquer ponto de extremidade (um IP público, URL ou FQDN) especificando-os como destinos. Em um único grupo de teste, você pode adicionar VMs do Azure, URLs do Office 365, URLs do Dynamics 365 e pontos de extremidade personalizados.
- disable - Use este campo para desativar o monitoramento de todas as origens e destinos especificados pelo grupo de teste.
Configurações de teste
name - Nome da configuração de teste.
testFrequencySec - Especifique com que frequência as fontes farão ping nos destinos de ping no protocolo e na porta que você especificou. Você pode escolher 30 segundos, 1 minuto, 5 minutos, 15 minutos ou 30 minutos. As fontes testarão a conectividade com destinos com base no valor escolhido. Por exemplo, se você selecionar 30 segundos, as fontes verificarão a conectividade com o destino pelo menos uma vez em um período de 30 segundos.
protocol - Você pode escolher TCP, ICMP, HTTP ou HTTPS. Dependendo do protocolo, você pode fazer algumas configurações específicas do protocolo
- preferHTTPS - Especifique se deseja usar HTTPS sobre HTTP, quando a porta usada não for 80 nem 443
- port - Especifique a porta de destino de sua escolha.
- disableTraceRoute - Isso se aplica a configurações de teste cujo protocolo é TCP ou ICMP. Ele impede que as fontes descubram topologia e RTT hop-by-hop.
- método - Isso se aplica a configurações de teste cujo protocolo é HTTP. Selecione o método de solicitação HTTP - GET ou POST
- path - Especifique parâmetros de caminho para anexar à URL
- validStatusCodes - Escolha os códigos de status aplicáveis. Se o código de resposta não corresponder a essa lista, você receberá uma mensagem de diagnóstico
- requestHeaders - Especifique cadeias de caracteres de cabeçalho de solicitação personalizadas que farão com que sejam passadas para o destino
successThreshold - Você pode definir limites nos seguintes parâmetros de rede:
- checksFailedPercent - Defina a porcentagem de verificações que podem falhar quando as fontes verificam a conectividade com destinos usando os critérios especificados. Para o protocolo TCP ou ICMP, a porcentagem de verificações com falha pode ser equiparada à porcentagem de perda de pacotes. Para o protocolo HTTP, esse campo representa a porcentagem de solicitações HTTP que não receberam resposta.
- roundTripTimeMs - Defina o RTT em milissegundos para quanto tempo as fontes podem levar para se conectar ao destino durante a configuração de teste.
Limites de escala
Os monitores de conexão têm os seguintes limites de escala:
- Máximo de monitores de ligação por subscrição por região: 100
- Máximo de grupos de teste por monitor de conexão: 20
- Máximo de fontes e destinos por monitor de ligação: 100
- Configurações máximas de teste por monitor de conexão: 20 via ARMClient