Monitorando o balanceador de carga

Quando tem aplicações críticas e processos de negócio que dependem dos recursos do Azure, deverá querer monitorizar esses recursos quanto à disponibilidade, ao desempenho e à operação.

Este artigo descreve os dados de monitoramento gerados pelo Load Balancer. O Balanceador de Carga usa o Azure Monitor. Se você não estiver familiarizado com os recursos do Azure Monitor comuns a todos os serviços do Azure que o usam, leia Monitorando recursos do Azure com o Azure Monitor.

Informações do balanceador de carga

Alguns serviços no Azure têm um painel de monitoramento pré-criado focado especial no portal do Azure que fornece um ponto de partida para monitorar seu serviço. Estes dashboards especiais são chamados de "informações".

Os insights do Load Balancer fornecem:

  • Modo de exibição de dependência funcional
  • Painel de métricas
  • Separador Descrição Geral
  • Guia Disponibilidade de Frontend e Backend
  • Guia Taxa de transferência de dados
  • Distribuição de Fluxos
  • Monitores de Ligação
  • Definições de Métricas

Para obter mais informações sobre insights do Balanceador de Carga, consulte Usando o Insights para monitorar e configurar seu Balanceador de Carga do Azure

Monitorizar dados

O Balanceador de Carga coleta os mesmos tipos de dados de monitoramento que outros recursos do Azure descritos em Monitoramento de dados de recursos do Azure.

Consulte Monitoramento da referência de dados do Balanceador de Carga para obter informações detalhadas sobre as métricas e métricas de logs criadas pelo Load Balancer.

O Load Balancer fornece outros dados de monitoramento através de:

Recolha e encaminhamento

As métricas de plataforma e o Registo de atividades são recolhidos e armazenados automaticamente, mas podem ser encaminhados para outras localizações através de uma definição de diagnóstico.

Os Registos de Recursos não são recolhidos e armazenados até que crie uma definição de diagnóstico e os encaminhe para uma ou mais localizações.

Criando uma configuração de diagnóstico

Você pode criar uma configuração de diagnóstico usando o portal do Azure, o PowerShell ou a CLI do Azure.

Para obter orientações gerais, consulte Criar configuração de diagnóstico para coletar logs e métricas da plataforma no Azure.

Ao criar uma definição de diagnóstico, especifica as categorias de registos que devem ser recolhidas. A categoria para Load Balancer é AllMetrics

Portal

  1. Inicie sessão no portal do Azure.

  2. Na caixa de pesquisa na parte superior do portal, digite Balanceador de carga.

  3. Selecione Balanceadores de carga nos resultados da pesquisa.

  4. Selecione o seu balanceador de carga. Para este exemplo, myLoadBalancer é usado.

  5. Na seção Monitoramento de myLoadBalancer, selecione Configurações de diagnóstico.

  6. Em Configurações de diagnóstico, selecione + Adicionar configuração de diagnóstico.

  7. Insira ou selecione as seguintes informações na configuração de diagnóstico.

    Definição Value
    Nome da definição de diagnóstico Introduza um nome para a definição de diagnóstico.
    Detalhes da categoria
    Métrica Selecione AllMetrics.
  8. Selecione os detalhes do destino. Algumas das opções de destinos são:

    • Enviar para o Log Analytics
      • Selecione o espaço de trabalho Assinatura e Análise de Log.
    • Arquivar em uma conta de armazenamento
      • Selecione a Assinatura e a Conta de armazenamento.
    • Transmitir em fluxo para um hub de eventos
      • Selecione a Assinatura, o namespace do hub de eventos, o nome do hub de eventos (opcional) e o nome da política do hub de eventos
  9. Selecione Guardar.

PowerShell

Entre no Azure PowerShell:

Connect-AzAccount 

Espaço de trabalho de análise de log

Para enviar logs de recursos para um espaço de trabalho do Log Analytics, insira estes comandos. Substitua os valores entre colchetes pelos seus valores:

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
    
## Place the workspace in a variable. ##
$wspara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-log-analytics-workspace-name>
}
$ws = Get-AzOperationalInsightsWorkspace @wspara
    
## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.id `
    -Name <your-diagnostic-setting-name> `
    -Enabled $true `
    -MetricCategory 'AllMetrics' `
    -WorkspaceId $ws.ResourceId

Conta de armazenamento

Para enviar logs de recursos para uma conta de armazenamento, insira estes comandos. Substitua os valores entre colchetes pelos seus valores:

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
    
## Place the storage account in a variable. ##
$storpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-storage-account-name>
}
$storage = Get-AzStorageAccount @storpara
    
## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.id `
    -Name <your-diagnostic-setting-name> `
    -StorageAccountId $storage.id `
    -Enabled $true `
    -MetricCategory 'AllMetrics'

Hub de eventos

Para enviar logs de recursos para um namespace de hub de eventos, insira estes comandos. Substitua os valores entre colchetes pelos seus valores:

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
    
## Place the event hub in a variable. ##
$hubpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-event-hub-name>
}
$eventhub = Get-AzEventHubNamespace @hubpara

## Place the event hub authorization rule in a variable. ##    
$hubrule = @{
    ResourceGroupName = 'myResourceGroup'
    Namespace = 'myeventhub8675'
}
$eventhubrule = Get-AzEventHubAuthorizationRule @hubrule

## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.Id `
    -Name 'myDiagSetting-event'`
    -EventHubName $eventhub.Name `
    -EventHubAuthorizationRuleId $eventhubrule.Id `
    -Enabled $true `
    -MetricCategory 'AllMetrics'

CLI do Azure

Entre na CLI do Azure:

az login

Espaço de trabalho de análise de log

Para enviar logs de recursos para um espaço de trabalho do Log Analytics, insira estes comandos. Substitua os valores entre colchetes pelos seus valores:

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

wsid=$(az monitor log-analytics workspace show \
    --resource-group <your-resource-group> \
    --workspace-name <your-log-analytics-workspace-name> \
    --query id \
    --output tsv)
    
az monitor diagnostic-settings create \
    --name <your-diagnostic-setting-name> \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --workspace $wsid

Conta de armazenamento

Para enviar logs de recursos para uma conta de armazenamento, insira estes comandos. Substitua os valores entre colchetes pelos seus valores:

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

storid=$(az storage account show \
        --name <your-storage-account-name> \
        --resource-group <your-resource-group> \
        --query id \
        --output tsv)
    
az monitor diagnostic-settings create \
    --name <your-diagnostic-setting-name> \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --storage-account $storid

Hub de eventos

Para enviar logs de recursos para um namespace de hub de eventos, insira estes comandos. Substitua os valores entre colchetes pelos seus valores:

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

az monitor diagnostic-settings create \
    --name myDiagSetting-event \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --event-hub-rule /subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group>/providers/Microsoft.EventHub/namespaces/<your-event-hub-namespace>/authorizationrules/RootManageSharedAccessKey

As métricas e logs que você pode coletar são discutidos nas seções a seguir.

Análise de métricas

Você pode analisar métricas para o Balanceador de Carga com métricas de outros serviços do Azure usando o explorador de métricas abrindo Métricas no menu Azure Monitor . Consulte Analisar métricas com o explorador de métricas do Azure Monitor para obter detalhes sobre como usar essa ferramenta.

Para obter uma lista das métricas da plataforma coletadas para o Load Balancer, consulte Monitorando métricas de referência de dados do Load Balancer

Para referência, você pode ver uma lista de todas as métricas de recursos com suporte no Azure Monitor.

Analisando logs

Os dados nos Logs do Azure Monitor são armazenados em tabelas onde cada tabela tem seu próprio conjunto de propriedades exclusivas.

O log de atividades é um tipo de log de plataforma que fornece informações sobre eventos no nível de assinatura. Pode vê-lo de forma independente ou encaminhá-lo para os Registos do Azure Monitor, onde pode fazer consultas muito mais complexas com o Log Analytics.

Para obter uma lista das tabelas usadas pelos Logs do Azure Monitor e consultáveis pelo Log Analytics, consulte Monitorando a referência de dados do Balanceador de Carga

Analisando o tráfego do balanceador de carga com logs de fluxo NSG

Os logs de fluxo NSG são um recurso do Azure Network Watcher que permite registrar informações sobre o tráfego IP que flui através de um grupo de segurança de rede. Os dados de fluxo são enviados para o Armazenamento do Azure, de onde você pode acessá-los e exportá-los para qualquer ferramenta de visualização, solução de gerenciamento de eventos e informações de segurança (SIEM) ou sistema de deteção de intrusão (IDS) de sua escolha.

Os logs de fluxo do NSG podem ser usados para analisar o tráfego que flui através do balanceador de carga. Observe que os logs de fluxo NSG não contêm o endereço IP frontend dos balanceadores de carga. Para analisar o tráfego que flui para um balanceador de carga, os logs de fluxo do NSG precisariam ser filtrados pelos endereços IP privados dos membros do pool de back-end do balanceador de carga.

Alertas

Os alertas do Azure Monitor notificam proativamente quando as condições importantes são encontradas nos dados de monitorização. Permitem-lhe identificar e resolver problemas no seu sistema antes que os seus clientes reparem neles. Você pode definir alertas em métricas, logs e no registro de atividades. Diferentes tipos de alertas têm vantagens e desvantagens

Se você estiver criando ou executando um aplicativo executado no Balanceador de Carga, o Azure Monitor Application Insights oferece outros tipos de alertas.

A tabela a seguir lista regras de alerta comuns e recomendadas para o Load Balancer.

Tipo de alerta Condição Description
Regra de balanceamento de carga indisponível devido a VMs indisponíveis Se a disponibilidade do caminho de dados dividida por endereço IP Frontend e Porta Frontend (todos os valores conhecidos e futuros) for igual a zero e, em um alerta secundário, se o status da sonda de integridade for igual a zero, os alertas de disparo Esses alertas ajudam a determinar se a disponibilidade do caminho de dados para quaisquer regras de balanceamento de carga configuradas não está atendendo ao tráfego devido a todas as VMs no pool de back-end associado serem investigadas pela sonda de integridade configurada. Consulte o guia de solução de problemas do balanceador de carga para investigar a possível causa raiz.
Disponibilidade de VM significativamente baixa Se o status da sonda de integridade dividido por IP de back-end e porta de back-end for igual à porcentagem de sondagem definida pelo usuário do tamanho total do pool (ou seja, 25% são sondados), o alerta de incêndio Este alerta determina se há menos VMs do que o necessário disponíveis para servir o tráfego
Falha nas conexões de saída com o ponto de extremidade da Internet Se a Contagem de Conexão SNAT filtrada para o Estado da Conexão = Falha for maior que zero, o alerta de incêndio Esse alerta é acionado quando as portas SNAT estão esgotadas e as VMs não conseguem iniciar conexões de saída.
Aproximando-se da exaustão do SNAT Se Portas SNAT usadas for maior do que o número definido pelo usuário, o alerta de disparo Este alerta requer uma configuração de saída estática onde o mesmo número de portas é sempre alocado. Em seguida, ele é acionado quando uma porcentagem das portas alocadas é usada.

Próximos passos