Todos os produtos
Search
Central de documentação

Server Load Balancer:access log

Última atualização: Aug 04, 2026

O recurso de logs de acesso do Classic Load Balancer (CLB) foi projetado para balanceamento de carga da camada 7. Ele se integra ao Simple Log Service (SLS) para aumentar a eficiência da análise de logs e da solução de problemas no desenvolvimento de negócios, em testes e na análise do comportamento do usuário.

Visão geral

Logs de acesso do CLB

O recurso de logs de acesso do Classic Load Balancer (CLB) captura informações detalhadas sobre todas as solicitações enviadas a uma instância do CLB, incluindo horário da solicitação, endereço IP do cliente, latência, caminho da solicitação e resposta do servidor. Como ponto de entrada público, o CLB processa um alto volume de solicitações. Use os logs de acesso para analisar o comportamento do usuário, entender a distribuição de tráfego e solucionar problemas.

Após ativar o recurso de logs de acesso, armazene, colete e analise esses logs em um Logstore do Simple Log Service (SLS). É possível desativar a configuração de logs de acesso a qualquer momento.

O recurso de logs de acesso do CLB é gratuito, mas o Simple Log Service gera cobranças. Para mais informações, consulte Billing overview of Simple Log Service.

Limitações

  • O recurso de logs de acesso está disponível apenas para balanceamento de carga da camada 7 (listeners HTTP e HTTPS) do CLB.

  • Listeners da camada 4 (TCP/UDP) não suportam o recurso de logs de acesso. Configure o registro de logs diretamente nos servidores de backend, por exemplo, usando logs de acesso do Nginx ou um framework de logging no nível da aplicação.

  • Garanta que os valores dos cabeçalhos HTTP não contenham ||. Caso contrário, os campos de log podem ficar desalinhados durante a análise.

Pré-requisitos

Configurar logs de acesso

  1. Faça login no console do CLB.

  2. No painel de navegação à esquerda, escolha Logs > Access Log.

  3. Na barra de navegação superior, selecione a região onde a instância do CLB está implantada.

  4. Se esta for a primeira vez que você usa o recurso, clique em Authorize. Na página Authorize Access to Cloud Resources, clique em Confirm.

    Nota

    Essa autorização precisa ser feita apenas uma vez.

    Se você for um usuário RAM, a conta primária da Alibaba Cloud deve primeiro conceder as permissões necessárias. Para mais informações, consulte Authorize a RAM user to use the access log feature of CLB.

  5. Na página Access Log (Layer 7), localize a instância do CLB desejada e clique em Configure na coluna Actions.

  6. No painel Log Settings, defina o Project e o Logstore e clique em OK.

    • Project: Um Project é uma unidade de gerenciamento de recursos no SLS usada para isolamento e controle de recursos. Recomendamos usar Projects diferentes para aplicações distintas.

    • Logstore: Um Logstore é a unidade para coleta, armazenamento e consulta de dados de log no SLS. Recomendamos criar Logstores separados para diferentes tipos de logs dentro da mesma aplicação.

      • Select Logstore: Essa opção ativa um painel de análise predefinido para o Logstore selecionado por padrão. Se já houver um índice configurado para o Logstore, a configuração existente será substituída.

    Nota
    • Certifique-se de que o Project esteja na mesma região da instância do CLB e que seu nome seja globalmente único.

    • Após a configuração, o Project e o Logstore do SLS podem levar alguns minutos para aparecer no console do SLS. Os dados de log não são perdidos durante esse período. Se eles ainda não estiverem visíveis, atualize a página mais tarde.

    Depois de configurar o registro de logs de acesso para o balanceador de carga, consulte e recupere informações de log usando os seguintes campos no SLS.

    Parâmetro

    Descrição

    body_bytes_sent

    Tamanho do corpo HTTP enviado ao cliente, em bytes.

    client_ip

    Endereço IP do cliente.

    client_port

    Porta do cliente que enviou a solicitação.

    host

    O host é obtido da primeira source disponível na seguinte ordem: parâmetros da solicitação, cabeçalho Host e endereço IP do servidor de backend que processa a solicitação.

    http_host

    Conteúdo do cabeçalho Host na solicitação.

    http_referer

    Cabeçalho Referer da solicitação HTTP.

    http_user_agent

    Cabeçalho User-Agent da solicitação HTTP.

    http_x_forwarded_for

    Cabeçalho X-Forwarded-For da solicitação HTTP.

    http_x_real_ip

    Cabeçalho X-Real-IP da solicitação HTTP.

    read_request_time

    Tempo que o balanceador de carga leva para ler a solicitação. Unidade: milissegundos.

    request_length

    Comprimento da solicitação, incluindo a linha inicial, o cabeçalho HTTP e o corpo HTTP.

    request_method

    Método da solicitação.

    request_time

    Tempo decorrido desde o recebimento do primeiro byte da solicitação pelo balanceador de carga até o envio do último byte da resposta. Unidade: segundos.

    request_uri

    URI da solicitação recebida pelo balanceador de carga.

    scheme

    Esquema da solicitação. Valores válidos: http e https.

    server_protocol

    Versão HTTP da solicitação recebida pelo balanceador de carga, como HTTP/1.0 ou HTTP/1.1.

    slb_vport

    Porta do listener do balanceador de carga.

    slbid

    ID da instância do balanceador de carga.

    ssl_cipher

    Suíte de cifras usada para estabelecer a conexão SSL, como ECDHE-RSA-AES128-GCM-SHA256.

    ssl_protocol

    Protocolo usado para estabelecer a conexão SSL, como TLSv1.2.

    status

    Código de status na resposta do balanceador de carga.

    tcpinfo_rtt

    Tempo de ida e volta (RTT) da conexão TCP do cliente. Unidade: microssegundos.

    time

    Horário em que a entrada de log foi registrada.

    upstream_addr

    Endereço IP e porta do servidor de backend.

    upstream_response_time

    Tempo decorrido desde o estabelecimento da conexão com um servidor de backend até o fechamento da conexão após o recebimento da resposta. Unidade: segundos.

    upstream_status

    Código de status da resposta que o balanceador de carga recebe do servidor de backend.

    vip_addr

    Endereço IP virtual (VIP).

    write_response_time

    Tempo que o balanceador de carga leva para gravar uma resposta. Unidade: milissegundos.

Notas de uso

client_ip e http_x_forwarded_for

Ao analisar origens de solicitações nos logs de acesso do SLS, esses dois campos têm significados diferentes:

  • client_ip: Endereço IP de origem que estabeleceu a conexão com o CLB, conforme observado pelo CLB na camada de rede. Se não houver proxy à frente do cliente, este é o verdadeiro endereço IP do cliente. Se o cliente estiver atrás de um proxy, este é o endereço IP de saída do proxy mais próximo.

  • http_x_forwarded_for: Valor original do cabeçalho X-Forwarded-For na solicitação de entrada recebida pelo CLB. Esse valor é gravado pelo cliente ou por um proxy upstream, pode ser falsificado e serve apenas como referência.

Para analisar origens de solicitações nos logs de acesso, use client_ip.

Nota

Se você precisar obter o verdadeiro endereço IP do cliente em um servidor de backend (em vez de analisá-lo nos logs de acesso), observe que os listeners da camada 7 do CLB transmitem o verdadeiro endereço IP do cliente no cabeçalho X-Forwarded-For por padrão. Para mais informações, consulte Retrieve client IP addresses with a CLB Layer 7 listener.

Identificar qual regra de encaminhamento processou uma solicitação

Os logs de acesso não registram IDs de grupos de servidores nem nomes de regras de encaminhamento de tráfego. Para determinar qual regra de encaminhamento processou uma solicitação específica, correlacione os valores request_uri e http_host no log com as regras de encaminhamento configuradas no console do CLB. Com base nisso, verifique se uma regra de encaminhamento está funcionando conforme o esperado:

  • Identificar regras de encaminhamento inativas: Consulte quantas vezes uma regra de encaminhamento foi correspondida em um intervalo de tempo específico combinando slbid, request_uri e um intervalo de tempo. Se o resultado for 0, a regra não correspondeu a nenhuma solicitação durante esse período. Avalie se deve removê-la com base nas necessidades do seu negócio.

    slbid: <instance-ID> and request_uri: <forwarding-rule-path> | select count(*) as hit_count
  • Verificar se o encaminhamento corresponde às expectativas: Compare o valor upstream_addr (endereço IP e porta do servidor de backend para o qual a solicitação foi realmente encaminhada) no log com os membros do grupo de servidores do listener correspondente no console do CLB, para confirmar que as solicitações estão sendo encaminhadas aos servidores de backend pretendidos.

Interceptação por política TLS

Conexões bloqueadas por uma política de segurança TLS não concluem o handshake TLS e, portanto, não geram entradas de log de acesso. Os logs de acesso registram apenas solicitações que estabelecem conexão com sucesso com o CLB.

Consultar logs de acesso

Após configurar o recurso de logs de acesso, consulte os logs no console do SLS.

  1. Faça login no console do CLB.

  2. No painel de navegação à esquerda, escolha Logs > Access Log.

  3. Na barra de navegação superior, selecione a região onde a instância do CLB está implantada.

  4. Na página Access Log (Layer 7), localize a instância desejada e clique em View Logs na coluna Actions. Você será redirecionado para o console do SLS.

  5. Após configurar o SLS, visualize as entradas de log de qualquer cliente que tenha acessado a instância do CLB.

  6. Insira uma instrução SQL para consultar logs de acesso específicos.

    Por exemplo, execute a seguinte instrução SQL para encontrar os 20 principais clientes. Os resultados ajudam a analisar as origens de tráfego e fundamentar decisões de negócios.

    * | select http_user_agent, count(*) as pv group by http_user_agent order by pv desc limit 20

    Como outro exemplo, execute a seguinte instrução SQL para consultar solicitações de acesso de um intervalo de endereços IP específico, filtrando logs por endereço IP de origem e código de status de resposta.

    * | select * where client_ip like '172.17.%' and status=200

    Filtragem de logs quando várias instâncias do CLB compartilham um Logstore

    Se várias instâncias do CLB compartilharem o mesmo Logstore do SLS, consultas que filtrem apenas por domínio ou porta podem retornar resultados incompletos ou enganosos. Para restringir os logs a uma instância e listener específicos do CLB, combine os campos slbid (ID da instância) e slb_vport (porta do listener) na sua consulta.

    Por exemplo, para consultar erros 5xx de uma instância e porta de listener específicas, execute a seguinte instrução SQL:

    slbid: <instance-ID> and slb_vport: <port> and status: 5*

    Se sua consulta não retornar resultados, verifique o seguinte:

    • O valor slbid deve corresponder exatamente ao ID da instância exibido no console do CLB (não ao nome da instância).

    • O valor slb_vport deve corresponder ao número da porta do listener (por exemplo, 80 ou 443).

    • Amplie o intervalo de tempo da consulta, pois as entradas de log podem ser gravadas com um pequeno atraso.

    Nota

    Observe o seguinte sobre o comportamento de atualização de logs e entradas com o mesmo timestamp:

    • Comportamento de atualização de logs: As estatísticas de índice de campo no SLS são atualizadas em tempo real conforme as entradas de log são gravadas. Não há intervalo fixo de atualização. Se você alterar o intervalo de tempo da consulta no console, clique no botão de consulta para recarregar os resultados.

    • Várias entradas com o mesmo timestamp: Se você vir várias entradas de log que compartilham o mesmo valor time, esse é um comportamento esperado e indica que o cliente enviou várias solicitações dentro do mesmo segundo. Esse é um padrão normal para clientes de alta frequência e não indica erro do sistema. Se determinar que as solicitações repetidas são anormais, configure uma política de controle de acesso para restringir o endereço IP de origem.

Consultar logs programaticamente usando o SDK ou a API do SLS

Os dados de logs de acesso do CLB são armazenados em um Logstore no Simple Log Service (SLS). Além do console, consulte os dados de log programaticamente usando o SDK ou a API do SLS, sem precisar fazer login no console. Para etapas detalhadas e exemplos de código, consulte Quickstart: Upload and analyze logs with the SLS SDK.

Nota

APIs do lado do CLB, como DescribeAccessLogsDownloadAttribute, servem apenas para gerenciar configurações de download de logs e não podem ser usadas para consultar dados de log.

Analisar logs de acesso

Use painéis no SLS para analisar logs de acesso. Os painéis oferecem visualizações ricas de dados e insights valiosos.

  1. Na página do SLS, clique no ícone image.png no painel de navegação à esquerda e clique em Dashboard.

  2. Clique no nome do painel correspondente aos logs de acesso da sua instância do CLB, como slb_layer7_access_center_en, para visualizar o relatório de análise.

Análise de tráfego de negócios

Além dos painéis, escreva instruções SQL para os seguintes cenários comuns de negócios.

Contar solicitações por porta de listener

Para contar o número total de solicitações processadas por uma instância e porta de listener específicas do CLB:

slbid: <instance-ID> and slb_vport: <port> | select count(*) as total_requests

Visualizar participação de tráfego por domínio

Para calcular a participação de tráfego de cada domínio com base nos campos http_host e request_length:

* | select http_host, sum(request_length) as total_bytes, round(sum(request_length) * 100.0 / sum(sum(request_length)) over(), 2) as traffic_pct group by http_host order by total_bytes desc

Visualizar distribuição de tráfego nos servidores de backend

Para identificar quais servidores de backend recebem mais solicitações e estimar a distribuição de tráfego usando upstream_addr e request_length:

* | select upstream_addr, count(*) as request_count, sum(request_length) as total_bytes group by upstream_addr order by request_count desc limit 20

Identificar solicitações anormais

Os logs de acesso do CLB registram todas as solicitações externas que passam pela instância do balanceador de carga. Se encontrar solicitações de origens desconhecidas nos logs, use os seguintes campos principais para determinar se são solicitações externas anormais e tomar as medidas de proteção adequadas.

Campos principais

Combine os seguintes campos de log para determinar se uma solicitação vem de um cliente anormal:

  • client_ip: Endereço IP do cliente que enviou a solicitação. Se o endereço IP não pertencer aos seus sistemas de negócios ou ao intervalo de endereços IP internos da Alibaba Cloud, a solicitação tem origem em um cliente externo. Use uma ferramenta de consulta de IP para confirmar a origem.

  • request_uri: Caminho URI da solicitação. Se aparecerem caminhos não relacionados ao seu negócio (como caminhos de sondagem ou varredura, ou caminhos de API de outros serviços cloud), as solicitações geralmente são externas e anormais.

  • request_method: Método HTTP da solicitação. Se o seu negócio usar apenas solicitações GET, mas os logs mostrarem um grande número de solicitações PUT ou DELETE, verifique se há comportamento anormal.

  • http_user_agent: Identificador User-Agent da solicitação. Ferramentas automatizadas ou crawlers frequentemente usam cabeçalhos User-Agent específicos, como curl ou python-requests, que diferem dos usados em solicitações normais de navegador.

Por exemplo, use a seguinte instrução SQL no SLS para consultar solicitações anormais de endereços IP inesperados:

* | select client_ip, request_method, request_uri, count(*) as cnt group by client_ip, request_method, request_uri order by cnt desc limit 50

Restringir IPs de origem anormais

Após confirmar os endereços IP de origem das solicitações anormais, use o recurso de controle de acesso do CLB para configurar uma lista de bloqueios e impedir solicitações subsequentes desses endereços IP. Execute as seguintes etapas:

  1. No painel de navegação à esquerda do console do CLB, escolha Access Control.

  2. Crie um grupo de políticas de controle de acesso e adicione a ele os endereços IP de origem anormais identificados.

  3. Vincule o grupo de políticas ao seu listener como uma lista de bloqueios. O CLB rejeitará todas as solicitações provenientes dos endereços IP bloqueados, em vez de encaminhá-las aos servidores de backend.

Desativar logs de acesso

Desative o recurso de logs de acesso para interromper a coleta de logs de acesso do CLB.

Nota

Desativar o registro de logs de acesso para uma instância do CLB não exclui o Project ou Logstore associado. Os logs históricos da instância não são excluídos imediatamente e você ainda pode gerenciá-los no SLS.

  1. Faça login no console do CLB.

  2. No painel de navegação à esquerda, escolha Logs > Access Log.

  3. Na barra de navegação superior, selecione a região onde a instância do CLB está implantada.

  4. Na página Access Log (Layer 7), localize a instância desejada e clique em Disable Logging na coluna Actions.

  5. Na caixa de diálogo exibida, clique em OK para desativar o registro de logs de acesso da instância.

Documentos relacionados

Perguntas frequentes

Como usar logs de acesso para solucionar problemas de latência de solicitação, timeouts ou problemas de conexão?

Identificar a origem da latência

Compare os campos request_time e upstream_response_time:

  • request_time: Tempo total decorrido desde o recebimento do primeiro byte da solicitação pelo CLB até o envio do último byte da resposta. Unidade: segundos.

  • upstream_response_time: Tempo decorrido desde o estabelecimento da conexão com um servidor de backend pelo CLB até o recebimento da resposta completa e o fechamento da conexão. Unidade: segundos.

A diferença entre os dois (request_time menos upstream_response_time) inclui o processamento do CLB, a ida e volta de rede entre o cliente e o CLB, e o tempo que o cliente leva para ler a resposta. Compare suas proporções para localizar o gargalo:

  • upstream_response_time representa uma grande proporção de request_time: A latência é causada principalmente por uma resposta lenta do servidor de backend. Verifique o desempenho das suas aplicações de backend, bancos de dados, etc.

  • upstream_response_time representa uma pequena proporção (ou seja, a diferença é grande): O backend responde rapidamente, então o gargalo provavelmente é a rede entre o cliente e o CLB, ou o cliente lendo lentamente um corpo de resposta grande. Use campos como client_ip e body_bytes_sent para investigar mais a fundo, em vez de atribuir a latência ao processamento do CLB.

Solucionar problemas de timeout

Uma solicitação que atinge timeout falha durante a fase de handshake TCP ou estabelecimento de protocolo e não gera uma entrada de log de acesso correspondente. Como resultado, não é possível encontrar essas solicitações diretamente nos logs de acesso. Para investigar indiretamente, consulte os logs de acesso do intervalo de tempo relevante no console do SLS e verifique se há uma queda abrupta no volume de solicitações ou uma lacuna nos logs para estimar quando os timeouts ocorreram. Para um diagnóstico mais aprofundado, realize a solução de problemas de ponta a ponta usando logs upstream e downstream, como logs do WAF upstream do CLB e logs de aplicação e firewall nas suas instâncias ECS de backend.