Monitorar o balanceador de carga

Quando você tem aplicativos e processos de negócios críticos que dependem de recursos do Azure, recomendamos monitorar a disponibilidade, o desempenho e a operação desses recursos.

Este artigo descreve os dados de monitoramento gerados pelo Load Balancer. O Load Balancer 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 Monitoramento de recursos do Azure com o Azure Monitor.

Insights do balanceador de carga

Alguns serviços no Azure têm um painel de monitoramento predefinido com foco especial no portal do Azure que fornece um ponto de partida para monitorar seu serviço. Esses painéis especiais são chamados de "insights".

Os insights do Load Balancer fornecem:

  • Exibição de dependência funcional
  • Dashboard de métricas
  • Guia Visão Geral
  • Guia Disponibilidade de Front-end e Back-end
  • Guia Taxa de Transferência de Dados
  • Distribuição de Fluxo
  • Monitores de Conexão
  • Definições de métrica

Para obter mais informações sobre os insights do Load Balancer, confira Usar os Insights para monitorar e configurar o seu Azure Load Balancer

Dados de monitoramento

O Load Balancer coleta os mesmos tipos de dados de monitoramento que outros recursos do Azure descritos em Dados de monitoramento dos recursos do Azure.

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

O Load Balancer fornece ouros dados de monitoramento por meio de:

Coleta e roteamento

As métricas de plataforma e o Log de atividades são coletados e armazenados automaticamente, mas podem ser roteados para outras localizações usando uma configuração de diagnóstico.

Os Logs de recursos não são coletados e armazenados até você criar uma configuração de diagnóstico e roteá-los para uma ou mais localizações.

Criação de 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 diretrizes gerais, consulte Criar configuração de diagnóstico para coletar logs e métricas de plataforma no Azure.

Ao criar uma configuração de diagnóstico, você especifica quais categorias de logs coletar. A categoria do Load Balancer é AllMetrics

Portal

  1. Entre no portal do Azure.

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

  3. Selecione Balanceadores de carga nos resultados da pesquisa.

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

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

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

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

    Configuração Valor
    Nome da configuração de diagnóstico Insira um nome para a configuraçã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 a Assinatura e o Workspace do Log Analytics.
    • Arquivar em uma conta de armazenamento
      • Selecione a Assinatura e a Conta de Armazenamento.
    • Transmitir por streaming para um hub de eventos
      • Selecione a Assinatura, Namespace do hub de eventos, Nome do hub de eventos (opcional) e Nome de política do hub de eventos
  9. Selecione Save.

PowerShell

Entre no Azure PowerShell:

Connect-AzAccount 

Workspace do Log Analytics

Para enviar logs de recursos para um workspace do Log Analytics, insira esses comandos. Substitua os valores entre colchetes por 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 esses comandos. Substitua os valores entre colchetes por 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 do hub de eventos, insira esses comandos. Substitua os valores entre colchetes por 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

Workspace do Log Analytics

Para enviar logs de recursos para um workspace do Log Analytics, insira esses comandos. Substitua os valores entre colchetes por 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 esses comandos. Substitua os valores entre colchetes por 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 do hub de eventos, insira esses comandos. Substitua os valores entre colchetes por 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 os logs que você pode coletar são discutidos nas seções a seguir.

Analisando as métricas

Você pode analisar as métricas do Load Balancer com métricas de outros serviços do Azure por meio do Metrics Explorer. Para isso, abra Métricas no menu Azure Monitor. Consulte Análise de métricas com o explorador de métricas do Azure Monitor para obter detalhes sobre como usar essa ferramenta.

Para ver uma lista das métricas de plataforma coletadas para o Load Balancer, confira Monitoramento de métricas de referência de dados do Load Balancer

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

Análise de logs

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

O Log de atividades é um tipo de log de plataforma que fornece insights sobre eventos no nível da assinatura. Você pode exibi-lo de modo independente ou roteá-lo para os Logs do Azure Monitor, nos quais você pode fazer consultas muito mais complexas usando o Log Analytics.

Para obter uma lista das tabelas usadas pelos Logs do Azure Monitor e que podem ser consultadas pelo Log Analytics, confira Monitoramento da referência de dados do Load Balancer

Analisando o tráfego do Load Balancer com logs de fluxo NSG

Logs de fluxo NSG é um recurso do Observador de Rede do Azure que permite que você registre informações sobre o tráfego IP fluindo por meio de um grupo de segurança de rede. Os dados do fluxo são enviados para o Armazenamento do Azure, no qual você pode acessá-los e exportá-los para qualquer ferramenta de visualização, solução de SIEM (gerenciamento de eventos e informações de segurança) ou IDS (sistema de detecção de intrusões) de sua escolha.

Os logs de fluxo NSG podem ser usados para analisar o tráfego que flui pelo balanceador de carga. Observe que os logs de fluxo NSG não contêm o endereço IP de front-end dos balanceadores de carga. Para analisar o tráfego que flui para um balanceador de carga, os logs de fluxo 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 você proativamente quando condições importantes são encontradas nos dados de monitoramento. Eles permitem que você identifique e resolva problemas no seu sistema antes que os clientes os percebam. Você pode definir alertas em métricas, logs e log de atividades. Os diferentes tipos de alertas têm benefícios e desvantagens

Se você estiver criando ou executando um aplicativo executado no Load Balancer, o Azure Monitor Application Insights oferecerá outros tipos de alertas.

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

Tipo de alerta Condição Descrição
Regra de balanceamento de carga indisponível devido a VMs indisponíveis Se a divisão de disponibilidade do caminho de dados por endereço IP de Front-end e Porta de Front-end (todos os valores conhecidos e futuros) for igual a zero e, em um alerta secundário, se o status da investigação de integridade for igual a zero, alertas serão disparados Esses alertas ajudam a determinar se a disponibilidade do caminho de dados de qualquer regra de balanceamento de carga configurada não está fornecendo tráfego porque todas as VMs no pool de back-end associado estão sendo investigadas pela investigação de integridade configurada. Leia o guia de solução de problemas do balanceador de carga para investigar a possível causa raiz.
Disponibilidade da VM significativamente baixa Se o status da investigação de integridade dividido por IP de back-end e porta de back-end for igual ao percentual investigado definido pelo usuário do tamanho total do pool (ou seja, 25% investigados), um alerta será disparado Esse alerta determina se há menos VMs que o número necessário disponível para atender ao tráfego
Falha nas conexões de saída com o ponto de extremidade da Internet Se a Contagem de Conexões SNAT filtrada para o Estado da Conexão = Falha for maior que zero, um alarme é disparado Esse alerta é acionado quando as portas SNAT são esgotadas, e as VMs não estão iniciando conexões de saída.
Abordar o esgotamento de SNAT Se as Portas SNAT usadas forem maiores que o número definido pelo usuário, um alarme é disparado Esse alerta requer uma configuração de saída estática em que o mesmo número de portas sempre é alocado. Depois o alarme é acionado quando uma porcentagem das portas alocadas é usada.

Próximas etapas