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 Visão geral do faturamento do Simple Log Service.
Os listeners da camada 4 (TCP/UDP) não oferecem suporte ao recurso de logs de acesso. Os logs de acesso registram apenas informações de solicitações da camada 7 (HTTP/HTTPS).
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.
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.
Os logs de acesso registram principalmente informações de solicitações da camada 7. Portanto, esse recurso não tem suporte para listeners da camada 4 (TCP/UDP).
Pré-requisitos
Você já criou uma instância do CLB.
Você já criou um grupo vServer, adicionou servidores de back-end ao grupo vServer e implantou aplicações nesses servidores.
Você já configurou um listener HTTP ou um listener HTTPS para a instância do CLB.
Você já ativou o Simple Log Service.
Configure logs de acesso
Faça login no console do CLB.
No painel de navegação à esquerda, escolha .
Na barra de navegação superior, selecione a região onde a instância do CLB está implantada.
-
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.
NotaEssa autorização é necessária apenas uma vez.
Se você for um usuário RAM, a conta principal da Alibaba Cloud deve primeiro conceder as permissões necessárias. Para mais informações, consulte Autorizar um usuário RAM a usar o recurso de logs de acesso do CLB.
Na página Access Log (Layer 7), localize a instância do CLB desejada e clique em Configure na coluna Actions.
-
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 de índice existente será substituída.
NotaCertifique-se de que o Project esteja na mesma região da instância do CLB e que seu nome seja globalmente exclusivo.
Após 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 back-end 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
Conjunto de cifras usado 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 back-end.
upstream_response_time
Tempo decorrido desde o estabelecimento da conexão com um servidor de back-end 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 back-end.
vip_addr
Endereço IP virtual (VIP).
write_response_time
Tempo que o balanceador de carga leva para gravar uma resposta. Unidade: milissegundos.
Consultar logs de acesso
Após configurar o recurso de logs de acesso, consulte os logs no console do SLS.
Faça login no console do CLB.
No painel de navegação à esquerda, escolha .
Na barra de navegação superior, selecione a região onde a instância do CLB está implantada.
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.
Com o SLS configurado, visualize as entradas de log de qualquer cliente que tenha acessado a instância do CLB.
-
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 fontes 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 20Como outro exemplo, execute a instrução SQL abaixo para consultar solicitações de acesso de um intervalo específico de endereços IP, filtrando logs por endereço IP de origem e código de status da resposta.
* | select * where client_ip like '172.17.%' and status=200
Identificar solicitações anômalas
Os logs de acesso do CLB registram todas as solicitações externas que passam pela instância do balanceador de carga. Se você encontrar solicitações de origens desconhecidas nos logs, use os campos-chave a seguir para determinar se são solicitações externas anômalas e tomar as medidas de proteção adequadas.
Campos-chave
Combine os seguintes campos de log para determinar se uma solicitação vem de um cliente anômalo:
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. Utilize 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 de nuvem), as solicitações geralmente são externas e anômalas.request_method: Método HTTP da solicitação. Caso seu negócio utilize apenas solicitações GET, mas os logs mostrem um grande número de solicitações PUT ou DELETE, verifique se há comportamento anômalo.http_user_agent: Identificador User-Agent da solicitação. Ferramentas automatizadas ou crawlers frequentemente usam cabeçalhos User-Agent específicos, comocurloupython-requests, que diferem dos usados em solicitações normais de navegadores.
Por exemplo, use a seguinte instrução SQL no SLS para consultar solicitações anômalas provenientes 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 anômalos
Após confirmar os endereços IP de origem das solicitações anômalas, use o recurso de controle de acesso do CLB para configurar uma lista de bloqueios e impedir solicitações subsequentes desses endereços IP. Siga estas etapas:
No painel de navegação à esquerda do console do CLB, escolha Access Control.
Crie um grupo de políticas de controle de acesso e adicione a ele os endereços IP de origem anômalos identificados.
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 back-end.
Analisar logs de acesso
Utilize painéis no SLS para analisar logs de acesso. Os painéis oferecem visualizações de dados ricas e insights valiosos.
Na página do SLS, clique no ícone
no painel de navegação à esquerda e clique em Dashboard.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.
Desativar logs de acesso
Desative o recurso de logs de acesso para interromper a coleta de logs de acesso do CLB.
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 ainda podem ser gerenciados no SLS.
Faça login no console do CLB.
No painel de navegação à esquerda, escolha .
Na barra de navegação superior, selecione a região onde a instância do CLB está implantada.
Na página Access Log (Layer 7), localize a instância desejada e clique em Disable Logging na coluna Actions.
Na caixa de diálogo exibida, clique em OK para desativar o registro de logs de acesso da instância.
Documentos relacionados
Para saber mais sobre o Simple Log Service, consulte O que é o Simple Log Service?.
Se você suspeitar que um servidor de back-end está não íntegro ao usar o balanceamento de carga da camada 7, consulte Usar logs de acesso do CLB para localizar rapidamente um servidor de back-end não íntegro.