Geração de registros
É possível ativar, desativar e ver registros para um serviço de back-end do balanceador de carga de aplicativo externo. Para balanceadores de carga de aplicativos externos com buckets de back-end, a geração de registros é ativada automaticamente e não pode ser desativada.
É possível ativar ou desativar a geração de registros para cada serviço de back-end. É possível configurar se você quer registrar todas as solicitações ou uma fração amostrada aleatoriamente.
Você precisa garantir que não tem uma exclusão de registros que se aplique a balanceadores de carga de aplicativo externos. Para instruções sobre como verificar se os registros Cloud HTTP Load
Balancer
são permitidos, consulte
Como visualizar exclusões de tipo de recurso.
Como ativar a geração de registros em um novo serviço de back-end
Console
No Console do Google Cloud, acesse a página Balanceamento de carga.
Clique no nome do balanceador de carga.
Clique em
Editar.Clique em Configuração de back-end.
Selecione Criar um serviço de back-end.
Preencha os campos obrigatórios.
Na seção Logging, marque a caixa de seleção Ativar geração de registros.
No campo Taxa de amostragem, defina a probabilidade de amostragem. É possível definir um número de
0.0
a1.0
, em que0.0
significa que nenhuma solicitação é registrada e1.0
significa que 100% das solicitações são registradas. O valor padrão é1.0
.Para concluir a edição do serviço de back-end, clique em Atualizar.
Para concluir a edição do balanceador de carga, clique em Atualizar.
gcloud: modo global
Crie um serviço de back-end e ative a geração de registros usando o
comando gcloud compute backend-services create
.
gcloud compute backend-services create BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE \ --load-balancing-scheme=EXTERNAL_MANAGED
onde
--global
indica que o serviço de back-end é global. Use este campo para serviços de back-end usados com balanceadores de carga de aplicativo externos globais.--enable-logging
ativa a geração de registros para esse serviço de back-end.--logging-sample-rate
permite especificar um valor de0.0
a1.0
, em que0.0
significa que nenhuma solicitação é registrada e1.0
significa que 100% das solicitações são registrado. Só é significativo com o parâmetro--enable-logging
. Ativar a geração de registros, mas definir a taxa de amostragem como0.0
, equivale a desativar a geração de registros. O valor padrão é1.0
.
gcloud: modo clássico
Crie um serviço de back-end e ative a geração de registros usando o
comando gcloud compute backend-services create
.
gcloud compute backend-services create BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE \ --load-balancing-scheme=EXTERNAL
onde
--global
indica que o serviço de back-end é global. Use este campo para serviços de back-end usados com um balanceador de carga de aplicativo clássico.--enable-logging
ativa a geração de registros para esse serviço de back-end.--logging-sample-rate
permite especificar um valor de0.0
a1.0
, em que0.0
significa que nenhuma solicitação é registrada e1.0
significa que 100% das solicitações são registrado. Só é significativo com o parâmetro--enable-logging
. Ativar a geração de registros, mas definir a taxa de amostragem como0.0
, equivale a desativar a geração de registros. O valor padrão é1.0
.
Como ativar a geração de registros em um serviço de back-end
Console
No Console do Google Cloud, acesse a página Balanceamento de carga.
Clique no nome do balanceador de carga.
Clique em
Editar.Clique em Configuração de back-end.
Clique em
Editar ao lado do serviço de back-end.Na seção Logging, marque a caixa de seleção Ativar geração de registros.
No campo Taxa de amostragem, defina a probabilidade de amostragem. É possível definir um número de
0.0
a1.0
, em que0.0
significa que nenhuma solicitação é registrada e1.0
significa que 100% das solicitações são registradas. O valor padrão é1.0
.Para concluir a edição do serviço de back-end, clique em Atualizar.
Para concluir a edição do balanceador de carga, clique em Atualizar.
gcloud: modo global
Ative a geração de registros em um serviço de back-end com o
comando gcloud compute backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE
onde
--global
indica que o serviço de back-end é global. Use este campo para serviços de back-end usados com balanceadores de carga de aplicativo externos globais.--enable-logging
ativa a geração de registros para esse serviço de back-end.--logging-sample-rate
permite especificar um valor de0.0
a1.0
, em que0.0
significa que nenhuma solicitação é registrada e1.0
significa que 100% das solicitações são registrado. Só é significativo com o parâmetro--enable-logging
. Ativar a geração de registros, mas definir a taxa de amostragem como0.0
, equivale a desativar a geração de registros. O valor padrão é1.0
.
gcloud: modo clássico
Ative a geração de registros em um serviço de back-end com o
comando gcloud compute backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE
onde
--global
indica que o serviço de back-end é global. Use este campo para serviços de back-end usados com um balanceador de carga de aplicativo clássico.--enable-logging
ativa a geração de registros para esse serviço de back-end.--logging-sample-rate
permite especificar um valor de0.0
a1.0
, em que0.0
significa que nenhuma solicitação é registrada e1.0
significa que 100% das solicitações são registrado. Só é significativo com o parâmetro--enable-logging
. Ativar a geração de registros, mas definir a taxa de amostragem como0.0
, equivale a desativar a geração de registros. O valor padrão é1.0
.
Como desativar ou modificar a geração de registros em um serviço de back-end atual
Console
No Console do Google Cloud, acesse a página Balanceamento de carga.
Clique no nome do balanceador de carga.
Clique em
Editar.Clique em Configuração de back-end.
Clique em
Editar ao lado do serviço de back-end.Para desativar totalmente a geração de registros, na seção Registro, desmarque a caixa de seleção Ativar geração de registros.
Se você deixar a geração de registros ativada, será possível definir uma probabilidade de amostragem diferente no campo Taxa de amostragem. É possível definir um número de
0.0
a1.0
, em que0.0
significa que nenhuma solicitação é registrada e1.0
significa que 100% das solicitações são registradas. O valor padrão é1.0
. Para reduzir o número de registros armazenados para 20%, defina o valor como0.2
.Para concluir a edição do serviço de back-end, clique em Atualizar.
Para concluir a edição do balanceador de carga, clique em Atualizar.
gcloud: modo global
Desative a geração de registros no serviço de back-end com o comando gcloud compute backend-services update
.
Como desativar completamente a geração de registros
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --no-enable-logging
onde
--global
indica que o serviço de back-end é global. Use este campo para serviços de back-end usados com balanceadores de carga de aplicativo externos globais.--region
indica que o serviço de back-end é global. Use este campo para serviços de back-end usados com balanceadores de carga de aplicativo externos regionais.--no-enable-logging
desativa a geração de registro para esse serviço de back-end.
Como alterar a taxa de amostragem da geração de registros
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --logging-sample-rate=VALUE
gcloud: modo clássico
Desative a geração de registros no serviço de back-end com o comando gcloud compute backend-services update
.
Como desativar completamente a geração de registros
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --no-enable-logging
onde
--global
indica que o serviço de back-end é global. Use este campo para serviços de back-end usados com um balanceador de carga de aplicativo clássico.--no-enable-logging
desativa a geração de registro para esse serviço de back-end.
Como alterar a taxa de amostragem da geração de registros
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --logging-sample-rate=VALUE
onde
--global
indica que o serviço de back-end é global. Use este campo para serviços de back-end usados com um balanceador de carga de aplicativo clássico.--logging-sample-rate
permite especificar um valor de0.0
a1.0
, em que0.0
significa que nenhuma solicitação é registrada e1.0
significa que 100% das solicitações são registrado. Só é significativo com o parâmetro--enable-logging
. Ativar a geração de registros, mas definir a taxa de amostragem como0.0
, equivale a desativar a geração de registros.
Ver registros
Para seguir as instruções passo a passo desta tarefa diretamente no console do Google Cloud, clique em Orientação:
Os registros HTTP(S) são indexados primeiro por uma regra de encaminhamento e, depois, por um mapa de URLs.
Para visualizar os registros, acesse a página do Análise de registros.
Acessar o "Análise de registros"
Para ver todos os registros, no menu de filtro Recurso, selecione Balanceador de carga HTTP do Cloud > Todas as regras de encaminhamento.
Para conferir os registros de uma regra de encaminhamento, selecione apenas um nome de regra.
Para explorar os registros de um mapa de URL, selecione uma regra de encaminhamento e, em seguida, selecione um mapa de URL.
Os campos de registro do tipo booleano normalmente só aparecem se tiverem um valor true
.
Se um campo booleano tem um valor false
, esse campo é omitido do registro.
A codificação UTF-8 é aplicada aos campos de registro. Os caracteres que não forem UTF-8 serão substituídos por pontos de interrogação.
Para balanceadores de carga de aplicativo clássicos e externos globais, é possível exportar métricas com base em registros usando registros de recurso (resource.type="http_load_balancer"
). As métricas criadas são baseadas no recurso "Regra de balanceador de carga de aplicativo (métricas com base em registros)" (l7_lb_rule
), que está disponível nos painéis do Cloud Monitoring e não no recurso https_lb_rule
.
O que é registrado
As entradas de registro do balanceador de carga de aplicativo externo contêm informações úteis para monitorar e depurar o tráfego HTTP(S). Os registros contêm campos obrigatórios, que são os campos padrão de cada registro.
Campo | Formato do campo | Tipo de campo: obrigatório ou opcional | Descrição |
---|---|---|---|
gravidade insertID logName |
LogEntry | Obrigatório | Os campos gerais, conforme descrito em uma entrada de registro. |
timestamp | string (
|
Opcional | A hora em que o GFE da primeira camada recebe a solicitação. |
httpRequest | HttpRequest | Obrigatório | Um protocolo comum para o registro de solicitações HTTP.
|
resource | MonitoredResource | Obrigatório | O MonitoredResource é o tipo de recurso associado a uma entrada de registro. O MonitoredResourceDescriptor descreve o esquema de um objeto |
jsonPayload | object (Struct format) | Obrigatório | O payload da entrada de registro expresso como um objeto JSON. O objeto JSON contém os seguintes campos:
|
string | Obrigatório | O campo statusDetails tem uma
string que explica por que o balanceador de carga retornou o status HTTP
específico. Para mais informações sobre essas strings de registro, consulte
Mensagens de sucesso de HTTP statusDetails e
Mensagens de falha HTTP de statusDetails. |
|
string | Obrigatório | O campo backendTargetProjectNumber contém o número do projeto em que o destino de back-end (serviço ou bucket de back-end) foi criado. Este campo está no formato: "projects/PROJECT_NUMBER" . Essas informações estão disponíveis
apenas para balanceadores de carga de aplicativo externos globais que usam respostas de erro
personalizadas. |
|
número inteiro | Obrigatório | O overrideResponseCode contém o código de resposta de substituição
aplicado à resposta enviada ao cliente. Essas informações estão
disponíveis apenas para balanceadores de carga de aplicativo externos globais que usam respostas de erro
personalizadas. |
|
string | Obrigatório | O campo errorService contém o serviço de back-end que
forneceu a resposta de erro personalizada. Essas informações estão disponíveis
apenas para balanceadores de carga de aplicativo externos globais que usam respostas de erro
personalizadas. |
|
string | Obrigatório | O campo errorBackendStatusDetails contém o
statusDetails da resposta final disponibilizada para o cliente.
Essas informações estão disponíveis apenas para balanceadores de carga de aplicativo externos globais que usam respostas de erro
personalizadas. |
Rótulos de recursos
A tabela a seguir lista os rótulos dos recursos de
resource.type="http_load_balancer"
.
Campo | Tipo | Descrição |
---|---|---|
backend_service_name |
string | O nome do serviço de back-end. |
forwarding_rule_name |
string | O nome do objeto da regra de encaminhamento. |
project_id |
string | O identificador do projeto do Google Cloud associado a esse recurso. |
target_proxy_name |
string | O nome do objeto do proxy de destino referenciado pela regra de encaminhamento. |
url_map_name |
string | O nome do objeto do mapa de URL configurado para selecionar um serviço de back-end. |
zone |
string | A zona em que o balanceador de
carga está em execução. A zona é global . |
Mensagens de sucesso HTTP statusDetails
statusDetails (bem-sucedida) | Significado | Códigos de resposta associados frequentes |
---|---|---|
byte_range_caching
|
A solicitação HTTP foi exibida usando o cache de intervalo de bytes do Cloud CDN. | Qualquer código de resposta armazenável em cache é possível. |
response_from_cache
|
A solicitação HTTP foi exibida por um cache do Cloud CDN. | Qualquer código de resposta armazenável em cache é possível. |
response_from_cache_validated
|
O código de retorno foi definido por uma entrada de cache do Cloud CDN que foi validada por um back-end. | Qualquer código de resposta armazenável em cache é possível. |
response_sent_by_backend
|
A solicitação HTTP foi encaminhada com sucesso por um proxy para o back-end, e a resposta foi retornada pelo back-end. | O código de resposta HTTP é definido pelo software em execução no back-end. |
Mensagens de falha HTTP statusStatusDetails
statusDetails (falha) | Significado | Códigos de resposta associados frequentes |
---|---|---|
aborted_request_due_to_backend_early_response
|
Uma solicitação com corpo foi cancelada porque o back-end enviou uma resposta antecipada com um código de erro. A resposta foi encaminhada ao cliente. A solicitação foi encerrada. | 4XX ou 5XX |
backend_connection_closed_after_partial_response_sent
|
A conexão do back-end fechou inesperadamente depois de uma resposta parcial ter sido enviada ao cliente. | O código de resposta HTTP é definido pelo software em execução no back-end. O código de resposta HTTP 0 (zero) significa que o back-end enviou cabeçalhos HTTP incompletos. O código de resposta HTTP é 101 se a conexão HTTP(S) foi atualizada para uma conexão WebSocket. |
backend_connection_closed_before_data_sent_to_client
|
O back-end fechou inesperadamente sua conexão com o balanceador de carga antes de a resposta ser encaminhada por proxy para o cliente. | 502, 503 O código de resposta HTTP é 101 se a conexão HTTP(S) foi atualizada para uma conexão WebSocket. |
backend_early_response_with_non_error_status
|
O back-end enviou uma resposta sem erro (1XX ou 2XX) a uma solicitação antes de receber todo o corpo da solicitação. | 502, 503 |
backend_interim_response_not_supported
|
O back-end enviou uma resposta provisória 1XX para a solicitação, em um contexto em que as respostas temporárias não são aceitas. | 502, 503 |
backend_response_corrupted
|
O corpo da resposta HTTP enviada pelo back-end tem uma codificação de transferência fragmentada inválida ou então está corrompida. | Qualquer código de resposta é possível, dependendo da natureza da corrupção. Geralmente 502, 503. |
backend_response_headers_too_long
|
Os cabeçalhos de resposta HTTP enviados pelo back-end excederam o limite permitido. Consulte a seção Tamanho do cabeçalho para balanceadores de carga de aplicativos externos para mais informações. | 502, 503 |
backend_timeout
|
O tempo limite do back-end foi atingido enquanto uma resposta era gerada. Para uma conexão WebSocket:
|
502, 503 O código de resposta HTTP é 101 se a conexão HTTP(S) foi atualizada para uma conexão WebSocket. |
banned_by_security_policy
|
A solicitação foi banida por uma regra de proibição baseada em taxa do Google Cloud Armor. | 429 |
body_not_allowed
|
O cliente enviou uma solicitação HTTP com corpo, mas o método HTTP usado não permite um corpo. | 400 |
byte_range_caching_aborted
|
Anteriormente, o balanceador de carga recebeu uma resposta indicando que o recurso podia ser armazenado em cache e era compatível com intervalos de bytes. O Cloud CDN recebeu uma resposta inconsistente (por exemplo, com um código de resposta diferente do 206 Conteúdo parcial esperado). Isso aconteceu ao tentar executar o preenchimento do cache usando uma solicitação de intervalo de bytes. Como resultado, o balanceador de carga cancelou a resposta para o cliente. | 2XX |
byte_range_caching_forwarded_backend_response
|
Anteriormente, o balanceador de carga recebeu uma resposta indicando que o recurso podia ser armazenado em cache e era compatível com intervalos de bytes. O Cloud CDN recebeu uma resposta inconsistente (por exemplo, com um código de resposta diferente do 206 Conteúdo parcial esperado). Isso aconteceu ao tentar executar o preenchimento do cache usando uma solicitação de intervalo de bytes. O balanceador de carga então encaminhou a resposta inconsistente para o cliente. | Retornado do back-end: qualquer código de resposta é possível. |
byte_range_caching_retrieval_abandoned
|
O cliente cancelou uma solicitação de intervalo de bytes ou de validação iniciada pelo Cloud CDN. | Retornado do back-end: qualquer código de resposta é possível. |
byte_range_caching_retrieval_from_backend_failed_after_partial_response
|
Uma solicitação de intervalo de bytes ou de validação iniciada pelo Cloud CDN encontrou um erro. Consulte a entrada de registro correspondente do Cloud Logging referente à solicitação iniciada pelo Cloud CDN para o status detalhado do back-end. | 2XX |
cache_lookup_failed_after_partial_response
|
O balanceador de carga não conseguiu exibir uma resposta completa do cache do Cloud CDN devido a um erro interno. | 2XX |
cache_lookup_timeout_after_partial_response
|
O stream de consulta de cache do Cloud CDN atingiu o tempo limite, porque o cliente não recuperou o conteúdo em tempo hábil. | 2XX |
client_disconnected_after_partial_response
|
A conexão com o cliente foi interrompida depois de o balanceador de carga enviar uma resposta parcial. | Retornado do back-end: qualquer código de resposta é possível. O código de resposta HTTP é 101 se a conexão HTTP(S) foi atualizada para uma conexão WebSocket. |
client_disconnected_before_any_response
|
A conexão com o cliente foi interrompida antes de o balanceador de carga enviar uma resposta. | 0 O código de resposta HTTP é 101 se a conexão HTTP(S) foi atualizada para uma conexão WebSocket. |
client_timed_out
|
O Google Front End (GFE) deixou inativa a conexão com o cliente devido à falta de progresso enquanto estava enviando solicitação ou resposta via proxy. | 0 ou 408 |
client_cert_invalid_rsa_key_size
|
Uma folha do cliente ou um certificado intermediário tinha um tamanho de chave RSA inválido. Para mais informações, consulte Erros registrados para conexões fechadas. | 0 |
client_cert_unsupported_elliptic_curve_key
|
Um cliente ou certificado intermediário está usando uma curva elíptica não compatível. Para mais informações, consulte Erros registrados para conexões fechadas. | 0 |
client_cert_unsupported_key_algorithm
|
Um cliente ou certificado intermediário está usando um algoritmo não RSA ou não ECDSA. Para mais informações, consulte Erros registrados para conexões fechadas. | 0 |
client_cert_pki_too_large
|
A ICP a ser usada para validação tem mais de três certificados intermediários que compartilham as mesmas informações de assunto e de chave pública do assunto. Para mais informações, consulte Erros registrados para conexões fechadas. | 0 |
client_cert_chain_max_name_constraints_exceeded
|
Um certificado intermediário fornecido para validação tinha mais de dez restrições de nome. Para mais informações, consulte Erros registrados para conexões fechadas. | 0 |
client_cert_chain_invalid_eku |
O certificado do cliente ou o emissor não tem
Extended Key Usage (EKU) que inclui clientAuth . Para mais informações, consulte Erros registrados para conexões fechadas.
|
0 |
client_cert_validation_timed_out
|
O limite de tempo foi excedido ao validar a cadeia de certificados. Para mais informações, consulte Erros registrados para conexões fechadas. | 0 |
client_cert_validation_search_limit_exceeded
|
O limite de profundidade ou iteração é atingido ao tentar validar a cadeia de certificados. Para mais informações, consulte Erros registrados para conexões fechadas. | 0 |
client_cert_validation_not_performed
|
Você configurou o mTLS sem configurar um TrustConfig .
Para mais informações, consulte Erros registrados para conexões fechadas.
|
0 |
client_cert_not_provided
|
O cliente não forneceu o certificado solicitado durante o handshake. Para mais informações, consulte Erros registrados para conexões fechadas. | 0 |
client_cert_validation_failed
|
A validação do certificado do cliente falha com TrustConfig .
Para mais informações, consulte Erros registrados para conexões fechadas.
|
0 |
config_not_found
|
Falta a configuração do projeto no balanceador de carga. Isso pode ocorrer de maneira intermitente, principalmente depois de fazer alterações na configuração que adicionam um novo recurso. Como há duas camadas de proxies, às vezes o GFE da primeira camada pode não alcançar o GFE da segunda camada. Isso pode ser devido a um erro interno, como um lançamento em andamento, uma sobrecarga do balanceador de carga ou problemas de configuração intermitentes. |
404, 502, 503 |
direct_response
|
O balanceador de carga substituiu essa solicitação e retornou uma resposta fixa. | Você pode ver qualquer código de resposta HTTP, dependendo da natureza do problema. Por exemplo, o código de resposta HTTP 410 significa que o back-end está indisponível devido à inadimplência de pagamento. |
denied_by_security_policy
|
O balanceador de carga negou essa solicitação devido a uma política de segurança do Google Cloud Armor. | Configurado na Política de segurança. |
error_uncompressing_gzipped_body
|
Houve um erro ao descompactar uma resposta HTTP compactada como gzip. | 502, 503 |
failed_to_connect_to_backend
|
O balanceador de carga falhou ao se conectar com o back-end. Isso inclui tempos limite durante a fase de conexão. | 502, 503 |
failed_to_pick_backend
|
O balanceador de carga falhou ao escolher um back-end íntegro para administrar a solicitação. | 502, 503 |
failed_to_negotiate_alpn
|
O balanceador de carga e o back-end não conseguiram negociar um protocolo da camada de aplicativos (como HTTP/2) para se comunicar entre si por meio de TLS. | 502, 503 |
headers_too_long
|
Os cabeçalhos da solicitação eram maiores do que o tamanho máximo permitido. | 413 |
http_version_not_supported
|
Versão HTTP não compatível. Atualmente, apenas HTTP 0.9, 1.0, 1.1 e 2.0 são compatíveis. | 400 |
internal_error
|
Erro interno no balanceador de carga. Normalmente, representa um erro temporário na infraestrutura do balanceador de carga. Tente refazer a consulta. | 4XX |
invalid_external_origin_endpoint
|
A configuração do back-end externo é inválida. Revise a configuração do NEG da Internet e certifique-se de que ela especifique um endereço FQDN/IP e uma porta válidos. | 4XX |
invalid_request_headers
|
Os cabeçalhos de solicitação HTTP recebidos de um cliente contêm pelo menos um caractere que não é permitido de acordo com uma especificação HTTP aplicável. Por exemplo, os nomes de campos de cabeçalho que incluem aspas duplas
( Veja mais informações em: |
400 |
invalid_http2_client_header_format
|
Os cabeçalhos HTTP/2 do cliente são inválidos. Confira mais informações em:
invalid_request_headers .
|
400 |
multiple_iap_policies
|
Não é possível combinar várias políticas do Identity-Aware Proxy (IAP). Se você tiver uma política de IAP anexada a um serviço de back-end e outra a um objeto sem servidor, remova uma das políticas e tente novamente. Os objetos sem servidor incluem o App Engine, o Cloud Run e o Cloud Run functions. | 500 |
malformed_chunked_body
|
O corpo da solicitação foi codificado inadequadamente em fragmentos. | 411 |
request_loop_detected
|
O balanceador de carga detectou um loop de solicitação. Esse loop pode ser causado por uma configuração incorreta em que o back-end encaminhou a solicitação de volta ao balanceador de carga. | 502, 503 |
required_body_but_no_content_length
|
A solicitação HTTP requer um corpo, mas os cabeçalhos da solicitação não incluem um comprimento de conteúdo ou cabeçalho fragmentado de codificação de transferência. | 400 ou 403 |
secure_url_rejected
|
Uma solicitação com um URL https:// foi recebida em uma conexão HTTP/1.1 de texto simples. | 400 |
ssl_certificate_san_verification_failed
|
O balanceador de carga não encontrou um SAN (Subject Alternative Name) no certificado SSL apresentado pelo back-end que correspondesse ao nome do host configurado. | 502, 503 |
ssl_certificate_chain_verification_failed
|
O certificado SSL apresentado pelo back-end falhou na verificação do certificado SSL. | 502, 503 |
throttled_by_security_policy
|
A solicitação foi bloqueada por uma regra de limitação do Google Cloud Armor. | 429 |
unsupported_method
|
O cliente forneceu um método de solicitação HTTP não compatível. | 400 |
unsupported_100_continue
|
A solicitação do cliente incluía o cabeçalho "Expect: 100-continue" em um protocolo que não tem suporte. | 400 |
upgrade_header_rejected
|
A solicitação HTTP do cliente continha o cabeçalho Upgrade e foi recusada. | 400 |
websocket_closed
|
A conexão WebSocket foi fechada. | 101 |
websocket_handshake_failed
|
O handshake do WebSocket falhou. | Qualquer código de resposta é possível, dependendo da natureza da falha de handshake. |
request_body_too_large
|
O corpo da solicitação HTTP excedeu o máximo suportado pelo back-end. Não aplicável a back-ends de VMs. | 413 |
handled_by_identity_aware_proxy
|
Esta resposta foi gerada pelo Identity-Aware Proxy durante a verificação de identidade do cliente antes de permitir o acesso. | 200, 302, 400, 401, 403, 500, 502, 503 |
serverless_neg_routing_failed
|
A solicitação NEG sem servidor não pode ser enviada. Isso pode acontecer quando a região especificada no NEG não puder ser acessada ou quando o nome do recurso (por exemplo, o nome do Cloud Run functions) não puder ser encontrado. | 404, 502, 503 |
fault_filter_abort
|
Esse erro pode acontecer se o cliente tiver configurado um filtro de falha e este tiver sido acionado para a solicitação em questão. | O valor precisa estar entre 200 e 599. |
Ver registros para validação do certificado do cliente mTLS
Para ver os erros registrados para conexões fechadas durante a validação do certificado do cliente TLS mútuo, conclua as etapas a seguir.
Consulta do console
No console do Google Cloud, acesse a página do Explorador de registros.
Clique no botão de alternância Mostrar consulta.
Cole o código abaixo no campo "Consulta". Substitua
FORWARDING_RULE_NAME
pelo nome da regra de encaminhamento.jsonPayload.statusDetails=~"client_cert" jsonPayload.@type="type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" resource.labels.forwarding_rule_name=FORWARDING_RULE_NAME
Clique em Executar consulta.
Registros de solicitação de política de autorização
O objeto authz_info
no payload JSON da entrada de registro do balanceador de carga contém
informações sobre políticas de autorização. É possível configurar métricas com base em registros para o tráfego permitido ou negado por essas políticas.
Campo | Tipo | Descrição |
---|---|---|
authz_info.policies[] |
objeto | A lista de políticas que correspondem à solicitação. |
authz_info.policies[].name |
string | O nome da política de autorização que corresponde à solicitação. O nome está vazio pelos seguintes motivos:
|
authz_info.policies[].result |
enum | O resultado pode ser ALLOWED ou DENIED . |
authz_info.policies[].details |
string | Estes são os detalhes:
|
authz_info.overall_result |
enum | O resultado pode ser ALLOWED ou DENIED . |
Como gerar registros de buckets de back-end
A geração de registros é ativada automaticamente para balanceadores de carga com buckets de back-end. Não é possível modificar ou desativar a geração de registros em buckets de back-end.
Geração de registros para o Google Cloud Armor
A tabela de mensagens de falha HTTP statusDetail
contém algumas mensagens que se aplicam ao Google Cloud Armor. Para mais informações sobre os registros do Google Cloud Armor, consulte Como usar a geração de registros de solicitação.
Geração de registros para implantações de VPC compartilhada
Os registros e as métricas do balanceador de carga do aplicativo geralmente são exportados para o projeto que tem a regra de encaminhamento. Portanto, os administradores de serviço (proprietários ou usuários de projetos em que o serviço de back-end é criado) não terão acesso aos registros e métricas do balanceador de carga por padrão. Use os papéis do IAM para conceder essas permissões aos administradores do serviço. Para saber mais sobre os papéis do IAM disponíveis e as etapas para conceder acesso, consulte Conceder acesso ao Monitoring.
Como interagir com os registros
É possível interagir com os registros do balanceador de carga de aplicativo externo usando a API Cloud Logging. A API Logging fornece maneiras de filtrar de forma interativa registros que têm campos específicos definidos. Ela exporta registros correspondentes para o Cloud Logging, o Cloud Storage, o BigQuery ou o Pub/Sub. Para mais informações sobre a API Logging, consulte Visão geral da API Cloud Logging.
Monitoring
O balanceador de carga exporta dados de monitoramento para o Cloud Monitoring.
Use as métricas de monitoramento para fazer o seguinte:
- avaliar a configuração, o uso e o desempenho de um balanceador de carga;
- Resolver problemas
- Melhorar a utilização de recursos e a experiência do usuário
Além dos painéis predefinidos no Cloud Monitoring, é possível criar painéis personalizados, configurar alertas e consultar as métricas por meio da API Cloud Monitoring.
Como visualizar painéis predefinidos do Cloud Monitoring
O Cloud Monitoring fornece painéis predefinidos para monitorar os balanceadores de carga. Esses painéis são preenchidos automaticamente pelo Cloud Monitoring.
Siga estas etapas para acessar os painéis predefinidos:
Acesse o Monitoring no Console do Google Cloud.
No painel de navegação do Monitoring, clique em Painéis.
Em Categorias, clique em GCP.
Para visualizar uma lista de painéis de todos os balanceadores de carga do Google Cloud, selecione o painel chamado Balanceadores de carga do Google Cloud. Para visualizar o painel de um balanceador de carga específico, localize o balanceador de carga na lista e clique em seu nome.
Para visualizar os painéis predefinidos apenas para os balanceadores de carga de aplicativo externos, selecione o painel chamado Balanceadores de carga HTTP(S) externos. Essa página exibe um painel que mostra as proporções de resposta 5XX e a latência do back-end de todos os balanceadores de carga de aplicativo externos no projeto. Ela também fornece uma lista de painéis com todos os balanceadores de carga de aplicativo externos no seu projeto.
É possível clicar no painel de cada balanceador de carga. Cada painel inclui:- Gráficos pré-preenchidos que exibem detalhamentos das respostas por classes de código de resposta (5XX, 4XX, 3XX, 2XX)
- Latência total
- Latência de back-end
- RTT do front-end
- Contagem de solicitações
- Um link para os registros do balanceador de carga
Para visualizar os painéis de serviços de terceiros, volte à página Painéis. Em Categorias, clique em Outros.
- Para visualizar um painel de serviço de terceiros específico, localize-o na lista e clique no nome dele.
Como definir políticas de alertas
Para seguir as instruções passo a passo desta tarefa diretamente no console do Google Cloud, clique em Orientação:
É possível criar políticas de alertas para monitorar os valores das métricas e ser notificado quando elas violarem uma condição.
-
No console do Google Cloud, acesse a página notifications Alertas:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- 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.
- Na página Alertas, clique em Criar política.
- Para selecionar a métrica, expanda o menu Selecionar uma métrica e faça isto:
- Para limitar o menu a entradas relevantes, insira
Global External Application Load Balancer Rule
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. - Em Tipo de recurso, selecione Regra de balanceador de carga de aplicativo externo global.
- Selecione uma Categoria de métrica e uma Métrica, depois selecione Aplicar.
- Para limitar o menu a entradas relevantes, insira
- Clique em Próxima.
- 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 Criar políticas de alertas de limite de métrica.
- Clique em Próxima.
- 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.
- 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.
- Opcional: clique em Documentação e adicione as informações que quer incluir em uma mensagem de notificação.
- Clique em Nome e digite um nome para a política de alertas.
- Clique em Criar política.
Como definir painéis personalizados do Cloud Monitoring
É possível criar painéis personalizados do Cloud Monitoring para as métricas do balanceador de carga:
No Console do Google Cloud, acesse a página Monitoring.
Selecione Painéis > Criar painel.
Clique em Adicionar gráfico e dê um título ao gráfico.
Para identificar a série temporal a ser exibida, escolha um tipo de recurso e de métrica:
- Na seção Recurso e métrica, clique no gráfico e, na seção Selecionar uma métrica, selecione uma das opções disponíveis:
- Para um balanceador de carga de aplicativo externo global, selecione o tipo de recurso Regra de balanceador de carga de aplicativo externo global.
- Clique em Aplicar.
- Na seção Recurso e métrica, clique no gráfico e, na seção Selecionar uma métrica, selecione uma das opções disponíveis:
Para especificar filtros de monitoramento, clique em Filtros > Adicionar filtro.
Clique em Salvar.
Frequência e retenção de geração de relatórios de métricas
As métricas dos balanceadores de carga de aplicativo externos são exportadas para o Cloud Monitoring em lotes de granularidade de 1 minuto. Os dados de monitoramento são retidos por seis semanas.
O painel fornece análise de dados em intervalos padrão de 1H (uma hora), 6H (seis horas), 1D (um dia), 1W (uma semana) e 6W (seis semanas). É possível solicitar manualmente a análise em qualquer intervalo, de 6W a 1 minuto.
Como monitorar métricas
É possível monitorar as seguintes métricas para balanceadores de carga de aplicativo externos.
As seguintes métricas para balanceadores de carga de aplicativo externos globais são informadas no Cloud Monitoring.
Essas métricas são precedidas por
loadbalancing.googleapis.com/
:s
Métrica | Nome | Descrição |
---|---|---|
Contagem de solicitações | https/request_count |
O número de solicitações atendidas pelo balanceador de carga de aplicativo externo |
Contagem de bytes da solicitação | https/request_bytes_count |
O número de bytes enviados como solicitações dos clientes para o balanceador de carga de aplicativo externo |
Contagem de bytes da resposta | https/response_bytes_count |
O número de bytes enviados como respostas do balanceador de carga de aplicativo externo para os clientes |
Latências totais | https/total_latencies |
Uma distribuição da latência. Latência é o tempo entre o primeiro byte da solicitação recebida para o último byte da resposta enviada pelo GFE. As latências totais são medidas por solicitação/resposta. As pausas entre solicitações na mesma conexão que usam Para conexões WebSocket, esse campo se refere a todo o tempo de duração da conexão.† Exemplo: um balanceador de carga tem 1 solicitação por segundo do Reino Unido com uma latência de 100 ms e 9 solicitações por segundo dos EUA com uma latência de 50 ms. Durante um determinado minuto, houve 60 solicitações do Reino Unido e 540 solicitações dos EUA. As métricas de monitoramento preservam a distribuição em todas as dimensões. É possível solicitar informações como as seguintes:
|
RTT do front-end* | https/frontend_tcp_rtt |
Uma distribuição do tempo de retorno (RTT) suavizado medido para cada conexão entre o cliente e o GFE (medida pela pilha TCP do GFE). O RTT suavizado é um algoritmo que lida com variações e anomalias que podem ocorrer em medições de RTT. |
Latências de back-end* | https/backend_latencies |
Uma distribuição da latência medida a partir do momento em que o primeiro byte da solicitação foi enviado pelo GFE para o back-end até o GFE receber do back-end, o último byte da resposta. Para conexões WebSocket, as latências de back-end se aplicam a toda a duração da sessão WebSocket.† |
Parte da classe de código de resposta | Fração do total de respostas externas do balanceador de carga de aplicativo que estão em cada classe de código de resposta (2XX, 4XX ...). No Cloud Monitoring, esse valor só está disponível em painéis padrão. Não é possível vê-lo nos painéis personalizados. É possível usar a API para definir alertas para ela. | |
Contagem de solicitações de back-end | https/backend_request_count |
O número de solicitações enviadas do balanceador de carga de aplicativo externo para os back-ends. |
Contagem de bytes da solicitação de back-end | https/backend_request_bytes_count |
O número de bytes enviados como solicitações do balanceador de carga de aplicativo externo para os back-ends. |
Contagem de bytes de resposta de back-end | https/backend_response_bytes_count |
O número de bytes enviados como respostas dos back-ends, incluindo o cache, para o balanceador de carga de aplicativo externo. |
* Não há garantias de que a soma das latências do RTT de front-end e do back-end será menor ou igual à soma das latências totais. Isso ocorre porque, mesmo que pesquisemos o RTT no soquete do GFE para o cliente no momento em que a resposta HTTP é confirmada, dependemos do relatório do kernel para algumas dessas medidas e não podemos garantir que o kernel terá uma medição de RTT para uma determinada resposta HTTP. O resultado final é um valor RTT suavizado que também é afetado por respostas HTTP anteriores, SYN/ACKs e handshakes SSL que não têm impacto sobre os verdadeiros tempos da solicitação HTTP real.
† Para monitorar conexões do WebSocket, crie um serviço de back-end específico para WebSockets.
Como filtrar dimensões para métricas
É possível aplicar filtros a métricas para balanceadores de carga de aplicativo externos.
As métricas são agregadas para cada balanceador de carga de aplicativo clássico e balanceador de carga de aplicativo externo global. Você pode filtrar as métricas agregadas pelas seguintes dimensões para resource.type="http_load_balancer"
ou resource.type="https_lb_rule"
. Observe
que nem todas as dimensões estão disponíveis em todas as métricas.
Propriedade | Descrição |
---|---|
backend_scope |
O escopo do Google Cloud
(região ou zona)
do grupo de instâncias de serviço de back-end que serviu à conexão. Se nenhum grupo de instâncias estava disponível ou se a solicitação foi exibida por outra entidade, você verá um dos valores a seguir em vez de uma região ou zona do grupo de instâncias do serviço de back-end.
Quando esse detalhamento é escolhido, os gráficos mostram métricas de back-end (balanceador de carga-para-back-ends), não métricas de front-end (balanceador do cliente para carga). |
backend_type |
O nome do grupo de back-ends que atendeu à solicitação do cliente.
Pode ser
|
backend_target_type |
O nome do serviço de back-end que atendeu a solicitação do cliente. Pode ser BACKEND_SERVICE , BACKEND_BUCKET , UNKNOWN se o back-end não foi atribuído ou NO_BACKEND_SELECTED se ocorreu um erro ou outra interrupção antes de uma tenha sido selecionado ou ocorreu um redirecionamento de URL. |
matched_url_path_rule |
A regra do caminho do mapa de URL que corresponde ao prefixo da solicitação HTTP(S) (até 50 caracteres). |
forwarding_rule_name |
O nome da regra de encaminhamento usada pelo cliente para enviar a solicitação. |
url_map_name |
A regra de caminho do mapa de URL ou a regra de rota configurada como parte da chave do mapa de
URL. Pode ser
|
target_proxy_name |
O nome do objeto do proxy HTTP(S) de destino referenciado pela regra de encaminhamento. |
backend_target_name |
O nome do destino do back-end. O destino pode ser um serviço ou bucket de back-end. UNKNOWN será retornado se um back-end
não tiver sido atribuído.
|
backend_name |
O nome do grupo de instâncias de back-end, do bucket ou do NEG.
UNKNOWN será retornado se o back-end não tiver sido atribuído ou NO_BACKEND_SELECTED se ocorrer um erro ou outra interrupção antes da seleção de um back-end ou da ocorrência de um redirecionamento de URL. |
backend_scope_type |
O tipo do escopo do grupo de back-end. Pode ser A propriedade |
proxy_continent |
O continente do GFE HTTP(S) que encerrou a conexão HTTP(S).
(Exemplos: America , Europe , Asia ) |
protocol |
Protocolo usado pelo cliente, um dos seguintes: HTTP/1.0 ,
HTTP/1.1 , HTTP/2.0 , QUIC/HTTP/2.0 ,
UNKNOWN . |
response_code |
O código de resposta HTTP da solicitação. |
response_code_class |
A classe do código de resposta HTTP da solicitação: 200, 300, 400, 500 ou 0 para nenhum. |
cache_result |
Resultado do cache para exibir a solicitação HTTP pelo proxy: HIT ,
MISS , DISABLED , PARTIAL_HIT (para uma
solicitação exibida em parte pelo cache e parte pelo back-end) ou
UNKNOWN . |
client_country |
País do cliente que emitiu a solicitação HTTP (por exemplo,
United States ou Germany ) |
load_balancing_scheme |
O esquema de balanceamento de carga usado. Se o balanceador de carga de aplicativo clássico for usado, o
valor será EXTERNAL . Se o balanceador de carga de aplicativo externo global for usado, o valor
será EXTERNAL_MANAGED . |