Geração de registro e monitoramento de balanceamento de carga TCP/UDP interno

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Veja neste documento como configurar e usar o Cloud Logging e o Cloud Monitoring para o balanceamento de carga TCP/UDP interno.

Geração de registros

Os registros fornecem informações úteis para solucionar problemas e monitorar o balanceador de carga de passagem do Google Cloud. Os registros são agregados por conexão e exportados quase em tempo real. Os registros são gerados para cada fluxo de TCP e UDP de cada instância com balanceamento de carga para o tráfego de entrada e saída. Para mais informações sobre os campos fornecidos na entrada de registro, consulte Campos de registro.

Não há cobranças extras pelo uso de registros. Dependendo da maneira como você ingere registros, são aplicados os preços padrão ao Cloud Logging, BigQuery ou Pub/Sub. A ativação de registros não afeta o desempenho do balanceador de carga.

Vantagens

Veja os benefícios de usar a geração de registros:

Monitoramento interno de tráfego do balanceador de carga TCP/UDP

A geração de registros por conexão fornece insights sobre como cada conexão é roteada para os back-ends de exibição.

Solução de problemas da rede

É possível usar registros internos do balanceador de carga TCP/UDP para a solução de problemas. Para mais informações, consulte Resolver problemas de balanceador de carga TCP/UDP interno.

Exemplo de formato de registro para fluxos de VM para VM

O diagrama a seguir mostra o tráfego de entrada e saída de um cliente interno (192.168.1.2), o balanceador de carga TCP/UDP interno (10.240.0.200) e a instância de back-end (10.240.0.3).

Fluxos de serviços de VM de back-end interno para cliente.
Fluxos de entrada e saída em fluxos de VM para VM.

Os registros do balanceador de carga TCP/UDP interno para conexões do cliente com a instância de back-end são formatados da seguinte maneira:

  • connection.clientIp: 192.168.1.2
  • connection.serverIp: 10.240.0.200
  • bytesSent: 1256
  • bytesReceived: 4521

Coleta e amostragem de registros

O Google Cloud analisa pacotes de saída e de entrada nas VMs de back-end do balanceador de carga. Os pacotes amostrados são processados para gerar registros.

Nem todos os pacotes são de amostra. O Google Cloud analisa um subconjunto variável de pacotes, dependendo da quantidade de tráfego no host físico. A taxa de amostragem mais baixa possível é um de 1.024 pacotes. A taxa de amostragem é controlada dinamicamente pelo Google Cloud. Não é possível ajustar a taxa de amostragem.

A amostragem de pacotes interage com as regras de firewall das seguintes maneiras:

  • Os pacotes são testados antes da aplicação das regras de firewall de saída.
  • Os pacotes são amostrados após a aplicação das regras de firewall de entrada.

Após a amostragem de pacotes, o Google Cloud processa os pacotes amostrados de acordo com o procedimento a seguir:

  1. Agregação: os pacotes amostrados são agregados em um intervalo de cinco segundos para produzir uma única entrada de fluxo.

  2. Amostragem de registro configurável (secundária): é um segundo processo de amostragem, que usa os fluxos. Você controla a fração das entradas de fluxo que são emitidas como entradas de registro de acordo com o parâmetro logConfig.sampleRate. Quando logConfig.sampleRate é 1.0 (100%), significa que todos os pacotes de amostra estão processados.

  3. Gravar no Logging: as entradas de registro são gravadas no Cloud Logging.

Requisitos de endereço IP da origem do pacote de respostas

Os registros de balanceamento de carga TCP/UDP internos terão amostras de pacotes de resposta somente de VMs de back-end se o endereço IP de origem desses pacotes corresponder ao endereço IP da regra de encaminhamento do balanceador de carga para o qual um pacote de solicitação correspondente foi enviado. Para conexões TCP, os pacotes de resposta sempre precisam ter origens que correspondam ao destino do pacote de solicitação. No entanto, para outros protocolos, é possível que os pacotes de resposta usem um endereço IP de origem diferente. Veja mais detalhes em Endereços IP para pacotes de solicitação e devolução.

O processo de amostragem de pacotes usado pela geração de registro do balanceamento de carga TCP/UDP interno omite todos os pacotes de resposta de VMs de back-end se esses pacotes de resposta tiverem origens que não correspondam ao endereço IP de uma regra de encaminhamento para um balanceador de carga TCP/UDP interno.

Ativar a geração de registros para um novo serviço de back-end

gcloud

Crie um serviço de back-end e ative a geração de registros com o comando gcloud beta compute back-services create.

gcloud beta compute backend-services create BACKEND_SERVICE \
--region=REGION \
--enable-logging \
--logging-sample-rate=SAMPLE_RATE

Substitua:

  • BACKEND_SERVICE: o nome do serviço de back-end.
  • REGION: região do serviço de back-end a ser criado.
  • SAMPLE_RATE: este campo só poderá ser especificado se a geração de registros estiver ativada para este serviço de back-end. O valor do campo precisa ser de 0,0 a 1,0, em que 0,0 significa que nenhum registro é relatado e 1,0 significa que todas as solicitações registradas são informadas. Ativar a geração de registros, mas definir a taxa de amostragem como 0.0 é equivalente a desativar a geração de registros. O valor padrão é 1,0.

api

Faça uma solicitação POST ao método regionBackendServices.insert.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices

 {
 "name": "BACKEND_SERVICE",
  "loadBalancingScheme": "INTERNAL",
  "logConfig": {
   "enable": true,
   "sampleRate": SAMPLE_RATE
  }
 }
 

Ativar a geração de registros em um serviço de back-end

gcloud

Ative a geração de registros em um serviço de back-end com o comando gcloud beta compute back-services update.

gcloud beta compute backend-services update BACKEND_SERVICE \
--region=REGION \
--enable-logging \
--logging-sample-rate=SAMPLE_RATE

Substitua:

  • BACKEND_SERVICE: o nome do serviço de back-end.
  • REGION: região do serviço de back-end a ser criado.
  • SAMPLE_RATE: este campo só poderá ser especificado se a geração de registros estiver ativada para este serviço de back-end. O valor do campo precisa ser de 0,0 a 1,0, em que 0,0 significa que nenhum registro é relatado e 1,0 significa que todas as solicitações registradas são informadas. Ativar a geração de registros, mas definir a taxa de amostragem como 0.0 é equivalente a desativar a geração de registros. O valor padrão é 1,0.

api

Faça uma solicitação PATCH ao método regionBackendServices/patch.

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE

 {
 "logConfig": {
   "enable": true,
   "sampleRate": SAMPLE_RATE
  }
 }
 

Ativar a geração de registros em um serviço de back-end

gcloud

Desative a geração de registros em um serviço de back-end com o comando gcloud beta compute back-services update.

gcloud beta compute backend-services update BACKEND_SERVICE \
--region=REGION \
--no-enable-logging

Substitua:

  • BACKEND_SERVICE: o nome do serviço de back-end.
  • REGION: região do serviço de back-end a ser criado.

api

Faça uma solicitação PATCH ao método regionBackendServices/patch.

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE

 {
 "logConfig": {
   "enable": false
  }
 }
 

Ver registros

Quando os registros são ingeridos no Cloud Logging e não excluídos por meio de um coletor do roteador de registros, é possível ler os registros usando a API Cloud Logging e a Google Cloud CLI.

Para ver todos os registros internos do balanceador de carga TCP/UDP, siga estas etapas:

Console

  1. No console do Google Cloud, acesse a página do Explorador de registros.
    Acessar o Explorador de registros
  2. Selecione o tipo de recurso Regra de balanceador de carga de rede interno do Google Cloud.
  3. Selecione o nome do registro loadbalance.googleapis.com/flows.

Consulta do console

  1. No console do Google Cloud, acesse a página do Explorador de registros.
    Acessar o Explorador de registros
  2. Clique no botão de alternância Mostrar consulta.
  3. Cole o código abaixo no campo "Consulta". Substitua PROJECT_ID pelo ID do projeto.
    resource.type="loadbalancing.googleapis.com/InternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    
  4. Clique em Executar consulta.

Ver registros de um serviço de back-end específico

Para ver os registros de balanceador de carga TCP/UDP interno para um serviço de back-end específico, siga estas etapas:

Console

  1. No console do Google Cloud, acesse a página do Explorador de registros.
    Acessar o Explorador de registros
  2. Ative os Campos de registro.
  3. Selecione o tipo de recurso Regra de balanceador de carga de rede interno do Google Cloud.
  4. Selecione o nome do registro loadbalance.googleapis.com/flows.

Consulta do console

  1. No console do Google Cloud, acesse a página do Explorador de registros.
    Acessar o Explorador de registros
  2. Clique no botão de alternância Mostrar consulta.
  3. Cole o código abaixo no campo "Consulta". Substitua PROJECT_ID pelo ID do projeto e BACKEND_SERVICE_NAME pelo nome do serviço de back-end.
    resource.type="loadbalancing.googleapis.com/InternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
    
  4. Clique em "Executar consulta".

Ver registros de um back-end específico

Para ver os registros internos de balanceador de carga TCP/UDP para um grupo de instâncias de back-end específico ou um grupo de endpoints de rede (NEG, na sigla em inglês) com endpoints GCE_VM_IP, siga estas etapas:

Console

  1. No console do Google Cloud, acesse a página do Explorador de registros.
    Acessar o Explorador de registros
  2. Ative os Campos de registro.
  3. Selecione o tipo de recurso Regra de balanceador de carga de rede interno do Google Cloud.
  4. Selecione o nome do registro loadbalance.googleapis.com/flows.

Consulta do console

  1. No console do Google Cloud, acesse a página do Explorador de registros.
    Acessar o Explorador de registros
  2. Clique no botão de alternância Mostrar consulta.
  3. Cole o código abaixo no campo "Consulta". Substitua PROJECT_ID pelo ID do projeto e BACKEND_GROUP_NAME pelo nome do grupo de instâncias ou NEG.

    resource.type="loadbalancing.googleapis.com/InternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_group_name="BACKEND_GROUP_NAME"
    
  4. Clique em "Executar consulta".

Campos de registro

Alguns campos de registro aparecem em um formato estruturado, com mais de um dado em cada campo. Por exemplo, o campo connection é do tipo IpConnection, que contém o endereço IP, a porta e o protocolo de origem e destino em um único campo. Esses campos multicampos são descritos nas tabelas a seguir.

O recurso monitorado é loadbalancing.googleapis.com/InternalNetworkLoadBalancerRule.

Field Tipo Descrição
conexão IpConnection Quíntuplo que descreve esta conexão.
startTime string Carimbo de data/hora (formato de string de data RFC 3339) do primeiro pacote observado durante o intervalo de tempo agregado.
endTime string Carimbo de data/hora (formato de string de data RFC 3339) do último pacote observado durante o intervalo de tempo agregado.
bytesSent int64 Número de bytes enviados do servidor para o cliente.
bytesReceived Int64 Número de bytes recebidos pelo servidor do cliente.
packetsSent int64 Número de pacotes enviados do servidor ao cliente.
packetsReceived int64 Número de pacotes recebidos pelo servidor do destino.
rtt string A latência é medida apenas para conexões TCP. A latência é a soma do RTT (tempo de retorno) estimado da rede mais o tempo consumido no processamento do pacote dentro do sistema operacional da VM do cliente. Para pacotes de amostra, o RTT (tempo de retorno) é calculada pela perspectiva de um back-end com balanceamento de carga medindo as diferenças de tempo entre o back-end que envia um segmento TCP e o back-end que recebe uma confirmação TCP para o número de sequência do segmento enviado. A latência é formatada como uma string que começa com um número de segundos e termina com "s" para indicar segundos. Os nanossegundos são expressos como segundos fracionários. Por exemplo, a latência de 250 milissegundos é formatada como "0.250000000s".

IpConnection

Field Tipo Descrição
clientIp string Endereço IP do cliente
clientPort int32 Porta do cliente. Definido apenas para conexões TCP e UDP.
serverIp string Endereço IP do servidor (IP da regra de encaminhamento)
serverPort int32 Porta do servidor. Definido apenas para conexões TCP e UDP.
protocol int32 Número do protocolo IANA

Monitoramento

O balanceamento de carga TCP/UDP interno exporta dados de monitoramento para o Cloud Monitoring.

É possível usar as métricas de monitoramento para:

  • Avaliar a configuração, o uso e o desempenho de um balanceador de carga TCP/UDP interno
  • Resolver problemas
  • Melhorar a utilização de recursos e a experiência do usuário

Além dos painéis predefinidos no Monitoring, é possível criar painéis personalizados, configurar alertas e consultar as métricas usando a API Monitoring.

Ver painéis do Monitoring

  1. No Console do Google Cloud, acesse o Monitoring.
    Acessar o Monitoring
  2. Se a opção Recursos aparecer no painel de navegação, clique nela e depois selecione Balanceadores de carga do Google Cloud. Caso contrário, clique em Painéis e depois no painel chamado Balanceadores de carga do Google Cloud.
  3. Clique no nome do balanceador de carga.

O painel esquerdo exibe vários detalhes sobre o balanceador de carga selecionado. No painel direito, há gráficos de séries temporais. Clique no link Detalhamentos para ver os detalhes específicos. O painel esquerdo apresenta dados atualmente configurados, enquanto o painel direito mostra dados veiculados por configurações históricas, não refletidas no painel esquerdo.

Definir painéis personalizados do Monitoring

Crie painéis personalizados do Monitoring com as métricas de balanceamento de carga TCP/UDP interno:

  1. No Console do Google Cloud, acesse o Monitoring.
    Acessar o Monitoring
  2. Selecione Painéis > Criar painel.
  3. Clique em Adicionar gráfico.
  4. Dê um título ao gráfico.
  5. Selecione as métricas e os filtros. Para as métricas, o tipo de recurso é regra do balanceador de carga TCP do Google Cloud (Internal) (internal_tcp_lb_rule) ou regra do balanceador de carga UDP do Google Cloud (Internal) (internal_udp_lb_rule).
  6. Clique em Save.

Definir políticas de alertas

É possível criar políticas de alertas para monitorar os valores das métricas e ser notificado quando elas violarem uma condição.

  1. No Console do Google Cloud, acesse a página Monitoring.

    Acessar Monitoring

  2. No painel de navegação do Monitoring, selecione  Alertas:
  3. Se você não tiver criado seus canais de notificação e quiser receber uma notificação, clique em Editar canais de notificação e adicione-os. Volte para a página Alertas depois de adicionar seus canais.
  4. Na página Alertas, clique em Criar política.
  5. Para selecionar a métrica, expanda o menu Selecionar uma métrica e faça o seguinte:
    1. Para limitar o menu a entradas relevantes, insira Google Cloud TCP Load Balancer ou Google Cloud UDP Load Balancer na barra de filtro. Se não houver resultados depois de filtrar o menu, desative a opção Mostrar somente recursos e métricas ativos.
    2. Em Tipo de recurso, selecione Balanceador de carga TCP do Google Cloud ou Balanceador de carga UDP do Google Cloud.
    3. Selecione uma Categoria de métrica e uma Métrica, depois selecione Aplicar.
  6. Clique em Próxima.
  7. As configurações da página Configurar acionador de alertas determinam quando o alerta é acionado. Selecione um tipo de condição e, se necessário, especifique um limite. Para mais informações, consulte Acionador de condição.
  8. Clique em Próxima.
  9. Opcional: para adicionar notificações à sua política de alertas, clique em Canais de notificação. Na caixa de diálogo, selecione um ou mais canais de notificação no menu e clique em OK.
  10. Opcional: Atualize a Duração do fechamento automático do incidente. Este campo determina quando o Monitoring fecha incidentes na ausência de dados de métrica.
  11. Opcional: clique em Documentação e adicione as informações que quer incluir em uma mensagem de notificação.
  12. Clique em Nome e digite um nome para a política de alertas.
  13. Clique em Criar política.
Saiba mais em Políticas de alertas.

Métricas para balanceadores de carga TCP/UDP internos

As seguintes métricas para balanceadores de carga TCP/UDP internos são informadas no Monitoring.

Métrica Descrição
Capacidade de entrada O número de bytes enviados para as regras de encaminhamento do balanceador de carga TCP/UDP interno, conforme recebidas pelos back-ends.
Pacotes de entrada O número de pacotes enviados para as regras de encaminhamento do balanceador de carga TCP/UDP interno, conforme recebidas pelos back-ends.
Taxa de transferência de saída O número de bytes enviados por back-ends internos da carga balanceada em conexões vinculadas a IPs de regra de encaminhamento.
Pacotes de saída O número de pacotes enviados por back-ends internos da carga balanceada em conexões vinculadas a IPs de regra de encaminhamento.
Latência(*) A distribuição do RTT medido para grupos de pacotes sobre cada conexão interna de carga balanceada. Normalmente, reduzida para o 95º percentil nas visualizações do Stackdriver.

(*) Disponível apenas para tráfego TCP.

Filtrar dimensões para métricas do balanceador de carga TCP/UDP interno

As métricas são agregadas para cada balanceador de carga TCP/UDP interno. As métricas podem ser detalhadas nas seguintes dimensões:

Propriedade Descrição
NOME DO BACK-END O nome do grupo de instâncias ou grupo de endpoints de rede (NEG, na sigla em inglês) com endpoints "GCE_VM_IP".
ESCOPO DO BACK-END O escopo (região ou zona) do back-end que recebeu a conexão.
ZONA DO BACK-END Para grupos de instâncias zonais e grupos de endpoints de rede, a zona do back-end que serviu a conexão.
REDE DE CLIENTES A rede da instância do cliente que se conectou ao balanceador de carga TCP/UDP interno.
SUB-REDE DO CLIENTE A sub-rede da instância do cliente que se conectou ao balanceador de carga TCP/UDP interno.
ZONA DO CLIENTE A zona do Google Cloud da instância que se conectou à regra de encaminhamento.
REGRA DE ENCAMINHAMENTO O nome da regra de encaminhamento do balanceador de carga TCP/UDP interno.

Frequência e retenção de geração de relatórios de métricas

As métricas dos balanceadores de carga TCP/UDP internos são exportadas para o Monitoring em lotes com granularidade de um minuto. Os dados de monitoramento são armazenados por seis semanas. As métricas são baseadas no tráfego de amostragem (a taxa de amostragem é dinâmica e não pode ser ajustada). O painel fornece análise de dados em intervalos padrão de uma hora (1H), seis horas (6H), um dia (1D), uma semana (1W) e seis semanas (6W). É possível solicitar a análise manualmente em qualquer intervalo, de seis semanas a um minuto.

A seguir