Se você deseja analisar o comportamento do usuário, entender a distribuição geográfica dos seus usuários e solucionar problemas com base em logs de acesso, utilize o recurso de log de acesso que o ALB fornece em conjunto com o Simple Log Service (SLS).
Os logs de acesso do ALB são adequados para cenários de auditoria de requisições, diagnóstico de falhas e análise de desempenho, oferecendo capacidades de registro de acesso semelhantes às de gateways web tradicionais, como o Nginx. Você pode usar os logs de acesso para consultar informações como cabeçalhos de requisição HTTP, códigos de status e distribuições de latência, a fim de solucionar problemas como URLs com erro nas requisições, alta latência de API e discrepâncias entre os dados de monitoramento e o volume real de tráfego. Os logs de acesso registram apenas requisições HTTP/HTTPS estabelecidas com sucesso e não registram eventos como falhas de conexão TCP, varredura de portas ou falhas de handshake TLS.
Faturamento
Depois que os logs de acesso do ALB são entregues ao Simple Log Service, você é cobrado pelo armazenamento, tráfego de leitura, requisições, transformação de dados e envio. Simple Log Service billing.
Pré-requisitos
O Simple Log Service está ativado. ative o Simple Log Service.
Crie um log de acesso
Faça login no console do ALB.
Na barra de navegação superior, selecione a região onde a instância do ALB está implantada.
Na página Instances, clique em ID da instância e gerencie.
Na página de detalhes da instância, clique em aba Access Logs e clique em Create Access Log.
-
Na caixa de diálogo Create Access Log, configure os parâmetros Project e Logstore e clique em OK.
Parâmetro
Descrição
Project
Selecione um projeto do Simple Log Service e gerencie recursos. Opções:
-
Select Project: Selecione um projeto existente na lista suspensa.
-
Create Project: insira um nome de projeto no campo.
Logstore
Selecione um Logstore para coletar, armazenar e consultar dados de log. Opções:
-
Select Logstore: Selecione um Logstore existente na lista suspensa.
-
Create Logstore: insira um nome de Logstore no campo. Se você selecionar Create Project, também precisará selecionar Create Logstore.
Notes on Creating Service-linked Role
Uma função vinculada ao service é criada automaticamente.
-
-
Na mensagem exibida, leia as informações e clique em OK.
Se você criar um Logstore, os índices e painéis serão ativados por padrão.
Se você selecionar um Logstore existente, os painéis serão ativados automaticamente. Os índices existentes não são sobrescritos. Crie índices no console do Simple Log Service.
Visualize um log de acesso
Na aba Access Logs, clique em link à direita de Simple Log Service e acesse o console do Simple Log Service e visualize os dados de log.
-
Na aba Access Logs, clique em aba Monitoring Center, Access Center ou Fine-grained Monitoring e especifique as condições de filtro para consultar métricas.
Módulo
Descrição
Monitoring Center
Exibe dados de monitoramento em tempo real: PVs, Taxa de Sucesso de Requisições, Latência Média, Requisições 4xx, Distribuição de Status, Tráfego, Latência P50/P90/P99/P9999 e os principais hosts/URLs/backends por requisições, latência e taxa de falha.
Access center
Exibe estatísticas de acesso: comparações de PV/UV dia a dia e semana a semana, distribuição de PV/UV, PVs Hoje, PVs de 7 dias, os 10 principais estados com mais requisições, porcentagem de usuários móveis, os 10 principais hosts, os 10 principais user agents e endereços IP com mais requisições.
Fine-grained Monitoring
Exibe métricas agregadas em intervalos de um segundo para identificar oscilações transitórias: QPS, Latência de Acesso, Latência Upstream, Taxa de Sucesso, Tráfego de Requisição, Tráfego do Corpo da Resposta, Código de Status 2xx, Código de Status 3xx, Códigos de Erro, Código de Status Upstream 2xx, Código de Status Upstream 3xx e Códigos de Erro Upstream.
No canto superior direito da aba Monitoring Center, Access Center ou Fine-grained Monitoring, clique em More Charts e acesse a página CloudLens for ALB e visualize mais relatórios do ALB. Para mais informações, consulte Data reports.
No canto superior direito da aba Monitoring Center, Access Center ou Fine-grained Monitoring, clique em Configure Alert Rules e acesse a página CloudLens for ALB e visualize incidentes de alerta do ALB.
-
Você também pode usar os seguintes recursos no canto superior direito da aba Monitoring Center, Access Center ou Fine-grained Monitoring:
: ative o Dedicated SQL. Enable Dedicated SQL.Após a entrega ao Simple Log Service, você pode consultar, analisar, baixe, entregar e processar logs de acesso, além de criar regras de alerta. Para mais informações, consulte Common operations for service logs.
Registre cabeçalhos personalizados
O slb_headers registra nomes e valores de cabeçalhos de requisição personalizados para análise de requisições.
O tamanho do cabeçalho personalizado por log de acesso é de 1 KB por padrão e pode ser aumentado até 8 KB. Para solicitar um aumento, entre em contato com o gerente da sua conta. Para mais informações, consulte Request length limits
Se o comprimento total dos cabeçalhos personalizados em uma única entrada de log exceder o limite anterior, o campo slb_headers registrará apenas os cabeçalhos que couberem no limite e acrescentará Discarded:TooManyCustomizedHeaders no final do valor do campo.
A Extensible Edition não oferece suporte ao registro de cabeçalhos personalizados.
Na aba Access Logs, clique em Record Custom Headers na seção Basic Information.
-
Na caixa de diálogo Record Custom HTTP Headers in Logs, selecione o listener adicionado à instância do ALB na lista suspensa.
Para criar um listener, clique em Create Listener na lista suspensa. Para mais informações, consulte Add an HTTP listener, Add an HTTPS listener e Add a QUIC listener.
-
Na mensagem exibida, leia as informações e clique em OK.
Após a configuração, o campo slb_headers registra todos os cabeçalhos de requisição, exceto:
# The slb_headers field does not record information about the following headers: host referer user-agent x-forwarded-for x-readtime x-real-ip uber-trace-id X-B3-TraceId X-B3-SpanId X-B3-ParentSpanId X-B3-Sampled
exclua um log de acesso
Na aba Access Logs, clique em Disable Logging na seção Basic Information.
Na mensagem exibida, leia as informações e clique em OK.
Campos de log
Standard Edition
|
Campo |
Descrição |
|
app_lb_id |
O ID da instância do ALB. |
|
__topic__ |
O tópico do log. Padrão: alb_layer7_access_log. |
|
body_bytes_sent |
O tamanho do corpo da resposta HTTP. Unidade: bytes. |
|
client_ip |
O endereço IP do cliente se Retrieve Client IP estiver ativado; caso contrário, o endereço IP do salto anterior. |
|
host |
O nome de domínio ou endereço IP. Ordem de resolução: parâmetros de requisição → cabeçalho host → IP do servidor backend. |
|
http_host |
O cabeçalho Host de uma requisição HTTP. |
|
http_referer |
O cabeçalho Referer de uma requisição HTTP. |
|
http_user_agent |
O cabeçalho User-Agent de uma requisição HTTP. |
|
http_x_forwarded_for |
O cabeçalho X-Forwarded-For de uma requisição HTTP. |
|
http_x_real_ip |
O cabeçalho X-Real-IP de uma requisição HTTP. |
|
read_request_time |
A quantidade de tempo que o ALB leva para ler a requisição. Unidade: milissegundos. |
|
request_length |
O tamanho combinado da linha inicial, cabeçalhos e corpo da requisição. Unidade: bytes. |
|
request_method |
O método da requisição. |
|
request_time |
Tempo desde o recebimento da requisição até o retorno da resposta. Unidade: segundos. |
|
request_uri |
A URI de uma requisição. |
|
scheme |
Esquema da requisição: HTTP ou HTTPS. |
|
server_protocol |
A versão do protocolo HTTP. Exemplos: HTTP/1.0, HTTP/1.1. |
|
slb_vport |
A porta do listener da instância do ALB. |
|
slb_xtrace |
O ID de rastreamento da instância do ALB para análise de rastreamento. |
|
xtrace_type |
O tipo de dados usado pelo Xtrace para análise de rastreamento da instância do ALB. Apenas o Zipkin é suportado. |
|
ssl_cipher |
A suíte de criptografia usada para conexão SSL. Exemplo: ECDHE-RSA-AES128-GCM-SHA256. |
|
ssl_protocol |
O protocolo de conexão SSL. Exemplo: TLS 1.2. |
|
status |
O código de status HTTP retornado pela instância do ALB. |
|
tcpinfo_rtt |
Tempo de estabelecimento da conexão TCP. Unidade: milissegundos. |
|
time |
Tempo de geração do log no formato ISO 8601: |
|
upstream_addr |
O endereço IP e a porta do servidor backend. |
|
upstream_response_time |
Tempo desde o estabelecimento da conexão backend até o fechamento. Unidade: segundos. |
|
upstream_status |
O código de status HTTP do servidor backend. |
|
vip_addr |
O endereço IP virtual. |
|
write_response_time |
Tempo de gravação da resposta. Unidade: milissegundos. |
|
client_port |
O número da porta do cliente. |
|
slb_headers |
Cabeçalhos personalizados. Disponível apenas após ativar o registro de cabeçalhos personalizados. |
Extensible Edition
|
Campo |
Descrição |
|
app_lb_id |
O ID da instância do ALB. |
|
__topic__ |
O tópico do log. Padrão: alb_layer7_access_log. |
|
body_bytes_sent |
O tamanho do corpo da resposta HTTP. Unidade: bytes. |
|
client_ip |
O endereço IP do cliente se Retrieve Client IP estiver ativado; caso contrário, o endereço IP do salto anterior. |
|
host |
O nome de domínio ou endereço IP. Ordem de resolução: parâmetros de requisição → cabeçalho host → IP do servidor backend. |
|
http_referer |
O cabeçalho Referer de uma requisição HTTP. |
|
http_user_agent |
O cabeçalho User-Agent de uma requisição HTTP. |
|
http_x_forwarded_for |
O cabeçalho X-Forwarded-For de uma requisição HTTP. Registra o valor do X-Forwarded-For após o ALB reescrevê-lo. |
|
http_x_real_ip |
O cabeçalho X-Real-IP de uma requisição HTTP. |
|
read_request_time |
A quantidade de tempo que o ALB leva para ler a requisição. Unidade: milissegundos. |
|
request_length |
O tamanho combinado da linha inicial, cabeçalhos e corpo da requisição. Unidade: bytes. |
|
request_method |
O método da requisição. |
|
request_time |
Tempo desde o recebimento da requisição até o retorno da resposta. Unidade: segundos. |
|
request_uri |
A URI de uma requisição. |
|
scheme |
Esquema da requisição: HTTP ou HTTPS. |
|
server_protocol |
A versão do protocolo HTTP. Exemplos: HTTP/1.0, HTTP/1.1. |
|
slb_vport |
A porta do listener da instância do ALB. |
|
ssl_cipher |
A suíte de criptografia usada para conexão SSL. Exemplo: ECDHE-RSA-AES128-GCM-SHA256. |
|
ssl_protocol |
O protocolo de conexão SSL. Exemplo: TLS 1.2. |
|
status |
O código de status HTTP retornado pela instância do ALB. |
|
time |
Tempo de geração do log no formato ISO 8601: |
|
upstream_addr |
O endereço IP e a porta do servidor backend. |
|
upstream_response_time |
Tempo desde o estabelecimento da conexão backend até o fechamento. Unidade: segundos. |
|
vip_addr |
O endereço IP virtual. |
|
write_response_time |
Tempo de gravação da resposta. Unidade: milissegundos. |
|
client_port |
O número da porta do cliente. |
|
upstream_protocol |
A versão do protocolo HTTP usada para comunicação entre o ALB e o servidor backend. |
|
upstream_hostname |
O nome de domínio DNS do servidor backend. Se nenhum nome de domínio DNS estiver disponível, o endereço IP e a porta do servidor backend serão usados. |
|
response_flags |
Detalhes adicionais sobre a resposta ou conexão. |
|
status_details |
Informações detalhadas sobre o código de status da resposta, como via_upstream, direct_response e route_not_found. |
|
llm_log |
Dados de requisição de IA, codificados no formato JSON. Contém os seguintes subcampos:
|
Exemplos de consulta
Na página de consulta de log do console do Simple Log Service, você pode filtrar os logs de acesso do ALB das seguintes maneiras:
Filtrar por tempo: Use o seletor de tempo na parte superior da página para selecionar um intervalo de tempo, como os últimos 15 minutos, última 1 hora, hoje ou um intervalo de tempo personalizado.
Filtrar por URL: insira
request_uri:/api/xxxna caixa de entrada de consulta para exibir apenas entradas de log cuja URI de requisição contenha/api/xxx.Filtrar por código de status: insira
status:200para consultar requisições com código de status 200. Substitua 200 por outro código de status para consultar requisições com esse código de status.Filtrar por método de requisição: insira
request_method:Get*para filtrar requisições GET.Consulta com múltiplas condições: insira
request_uri:/api/xxx and status:200para filtrar requisições que correspondam a um padrão de URI específico e retornem um código de status 200.
Antes de usar a sintaxe field:value para consultas específicas de campo, configure índices no nível de campo para os campos de log correspondentes no console do Simple Log Service. Índices de texto completo não oferecem suporte a consultas no nível de campo. Se os índices no nível de campo não estiverem configurados, a consulta retornará um erro.
FAQ
Posso visualizar dados sobre requisições acessando minha instância do ALB antes de criar um log de acesso?
Não, você não pode.
Os logs de acesso capturam dados apenas a partir do momento em que você os ativa. Antes de criar um log de acesso, o Simple Log Service não coleta nenhum dado de acesso do ALB.
Por que o monitoramento do ALB mostra anomalias (como erros 4XX ou altos volumes de tráfego) ou atividade de varredura, mas nenhum registro aparece nos logs de acesso?
As possíveis causas são:
1. Os logs de acesso não estão ativados
ative o recurso de log de acesso do ALB para consultar informações detalhadas de erro, URLs de requisição e verifique a precisão dos dados. Sem os logs de acesso ativados, é difícil solucionar problemas com base apenas nos dados de monitoramento.
2. Falhas de conexão TCP ou varredura de portas
O ALB é um balanceador de carga da Camada 7. Os logs de acesso registram apenas requisições HTTP/HTTPS e não registram falhas de conexão TCP. Para identificar e bloquear endereços IP anormais, ative o Cloud Firewall e visualize registros de conexões TCP com falha para o endereço IP público do ALB.
3. Tempo limite do listener da Camada 4
Os tempos limite do listener TCP da Camada 4 normalmente não são registrados nos logs do Ingress ou nos logs de acesso. Uma entrada de código de status 499 ou 504 pode ser gerada apenas quando uma conexão é estabelecida com sucesso, mas a resposta atinge o tempo limite.
4. Falha no handshake TLS
As falhas no handshake TLS (como incompatibilidade de certificado, incompatibilidade de versão de protocolo) normalmente não podem ser refletidas diretamente nos logs de acesso porque a requisição HTTP não foi estabelecida quando o handshake falha. Esses problemas exigem análise usando logs do servidor backend e captura de pacotes no lado do cliente.
Como uso os logs de acesso do ALB para solucionar URLs com erro, alta latência ou registros de requisição específicos?
Faça login no console do Simple Log Service, acesse o Logstore do ALB correspondente e consulte pelos seguintes cenários:
1. Consultar URLs que retornam códigos de status específicos (como 400 ou 4XX)
Na caixa de entrada de consulta, insira status:400 (ou outro código de status). Verifique o campo request_uri nos resultados para identificar os caminhos de URL específicos que retornaram o erro.
2. Solucionar alta latência de interface
Filtre pelo campo upstream_response_time, que registra o tempo desde quando o ALB estabelece uma conexão com o servidor backend até terminar de receber dados (unidade: segundos). Um valor alto indica que a latência é causada pelo processamento do backend e não pelo encaminhamento do ALB. Compare isso com o campo request_time e confirme o tempo total decorrido (intervalo entre o recebimento da requisição do cliente e o retorno da resposta, unidade: segundos).
3. verifique registros de requisição para caminhos ou IPs de source específicos
Para pesquisar por caminho de requisição, insira request_uri:/api/xxx para consultar requisições para o caminho de destino. Use campos como client_ip (IP do cliente) ou http_host (Host da requisição) em consultas combinadas e verifique se o ALB recebeu requisições da origem especificada.
4. verifique a precisão dos dados de log
Os logs de acesso do ALB registram todo o tráfego de requisições HTTP/HTTPS de clientes que acessam services backend por meio do ALB. Consulte a seção Campos de log neste documento e verifique as definições de dados e confirme se o conteúdo do log corresponde ao tráfego de negócios esperado.