Geração de registros
É possível ativar, desativar e visualizar registros para o serviço de back-end de um 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. Você pode configurar se quer registrar todas as solicitações ou uma fração amostrada aleatoriamente.
É preciso garantir que não haja uma exclusão de registros que se aplique a
balanceadores de carga de aplicativo externos. Para saber como verificar se os registros Cloud HTTP Load
Balancer
são permitidos, consulte
Filtros de exclusão.
Coleta e amostragem de registros
As solicitações (e as respostas correspondentes) processadas por instâncias de máquina virtual (VM)
do back-end do balanceador de carga são amostradas. Essas solicitações amostradas são
processadas para gerar registros. É possível controlar a fração das solicitações
emitidas como entradas de registro de acordo com o
parâmetro logConfig.sampleRate
.
Quando logConfig.sampleRate
é 1.0
(100%), registros são
gerados para todas as conexões e gravados no Cloud Logging.
Campos opcionais
Os registros contêm campos obrigatórios e opcionais. A seção O que é registrado lista quais campos são opcionais e quais são obrigatórios. Todos os campos obrigatórios sempre estão incluídos. É possível personalizar quais campos opcionais serão mantidos.
Se for selecionado Incluir todos os opcionais, todos os campos opcionais no formato de registro serão incluídos nos registros. Quando novos campos opcionais são adicionados ao formato de registro, os registros incluem automaticamente os novos campos.
Se for selecionado excluir todos os opcionais, todos os campos opcionais serão omitidos.
Se for selecionado personalizado, poderão ser especificados os campos opcionais que serão incluídos, como
tls.protocol,tls.cipher,orca_load_report.cpu_utilization,orca_load_report.mem_utilization
.
Para saber como personalizar campos opcionais, consulte Ativar a geração de registros em um novo serviço de back-end.
Ativação da 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 do serviço de back-end.
Na seção Geração de registros, marque a caixa de seleção Ativar geração de registros.
Defina uma fração da 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
.Opcional: para incluir todos os campos opcionais nos registros, clique em Incluir todos os campos opcionais na seção Campos opcionais.
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 \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
O comando gcloud compute backend-services create
é compatível com os
seguintes campos:
--global
indica que o serviço de back-end é global. Use esse 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 registradas. Esse campo 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
.--logging-optional
permite especificar os campos opcionais que serão incluídos nos registros:INCLUDE_ALL_OPTIONAL
para incluir todos os campos opcionais.EXCLUDE_ALL_OPTIONAL
(padrão) para excluir todos os campos opcionais.CUSTOM
para incluir uma lista personalizada de campos opcionais especificados emOPTIONAL_FIELDS
.
--logging-optional-fields
permite especificar uma lista separada por vírgulas de campos opcionais que serão incluídos nos registros.Por exemplo,
tls.protocol,tls.cipher
só poderá ser definido seLOGGING_OPTIONAL_MODE
for definido comoCUSTOM
. Se forem usadas métricas personalizadas e forem registrados elementos do relatório de carga do ORCA,LOGGING_OPTIONAL_MODE
deverá ser definido comoCUSTOM
e deverão ser especificados que elementos precisam ser registrados no campoOPTIONAL_FIELDS
. Por exemplo,orca_load_report.cpu_utilization,orca_load_report.mem_utilization
.
Ativação da 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 Geração de registros, 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
em que
--global
indica que o serviço de back-end é global. Use esse 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 registradas. 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
em que
--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 registradas. 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
.
Desativação ou modificação da 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.Para desativar totalmente a geração de registros, desmarque a caixa de seleção Ativar geração de registros na seção Geração de registros.
Se a geração de registros permanecer ativada, será possível definir uma fração diferente da 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
. Por exemplo,0.2
significa que 20% das solicitações amostradas geram registros.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 em um serviço de back-end com o
comando gcloud compute backend-services update
.
Desativação total da geração de registros
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --no-enable-logging
em que
--global
indica que o serviço de back-end é global. Use esse campo para serviços de back-end usados com balanceadores de carga de aplicativo externos globais.--no-enable-logging
desativa a geração de registro para esse serviço de back-end.
Ativação de campos opcionais de geração de registros em um serviço de back-end
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
em que
--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 registradas. 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
.--logging-optional
permite especificar os campos opcionais que serão incluídos nos registros:INCLUDE_ALL_OPTIONAL
para incluir todos os campos opcionais.EXCLUDE_ALL_OPTIONAL
(padrão) para excluir todos os campos opcionais.CUSTOM
para incluir uma lista personalizada de campos opcionais especificados emOPTIONAL_FIELDS
.
--logging-optional-fields
permite especificar uma lista separada por vírgulas de campos opcionais que serão incluídos nos registros.Por exemplo,
tls.protocol,tls.cipher
só poderá ser definido seLOGGING_OPTIONAL_MODE
for definido comoCUSTOM
. Se forem usadas métricas personalizadas e forem registrados elementos do relatório de carga do ORCA,LOGGING_OPTIONAL_MODE
deverá ser definido comoCUSTOM
e deverão ser especificados que elementos precisam ser registrados no campoOPTIONAL_FIELDS
. Por exemplo,orca_load_report.cpu_utilization,orca_load_report.mem_utilization
.
Atualização do modo opcional de geração de registros de PERSONALIZADO para outros
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=
em que
--logging-optional
permite especificar os campos opcionais que serão incluídos nos registros:INCLUDE_ALL_OPTIONAL
para incluir todos os campos opcionais.EXCLUDE_ALL_OPTIONAL
(padrão) para excluir todos os campos opcionais.
--logging-optional-fields
precisa ser configurado explicitamente, conforme mostrado, para limpar todos os camposCUSTOM
. A API não permite a combinação de um modo que não sejaCUSTOM
com camposCUSTOM
.
Modificação da 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 em um serviço de back-end com o
comando gcloud compute backend-services update
.
Desativação total da geração de registros
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --no-enable-logging
em que
--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.
Modificação da taxa de amostragem da geração de registros
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --logging-sample-rate=VALUE
em que
--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 registradas. 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.
Visualizar registros
Para seguir as instruções detalhadas da tarefa diretamente no console do Google Cloud , clique em Orientações:
Os registros HTTP(S) são indexados primeiro por uma regra de encaminhamento e, depois, por um mapa de URL.
Para visualizar os registros, acesse a página Análise de registros.
Para visualizar todos os registros, no menu de filtro Recurso, selecione Balanceador de carga HTTP do Cloud > Todas as regras de encaminhamento.
Para visualizar os registros de uma regra de encaminhamento, selecione um único nome de regra de encaminhamento.
Para visualizar 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ó serão exibidos se tiverem um valor true
. Se um campo booleano tiver um valor false
, este campo será 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
), 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.
Os registros contêm campos opcionais que adicionam informações sobre o tráfego HTTP(S). Esses campos opcionais podem ser omitidos para economizar custos de armazenamento.
Alguns campos de registro aparecem em um formato múltiplo, com mais de um dado em cada campo. Por exemplo, o campotls
está no formato TlsInfo
, que contém o campo earlyDataRequest
.
Esses campos são descritos na tabela de formatos de registro a seguir.
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 (formato Carimbo de data/hora) | 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 | Recurso monitorado | Obrigatório | O MonitoredResource é o tipo de recurso associado a uma entrada de registro. O MonitoredResourceDescriptor
descreve o esquema de um objeto |
jsonPayload: | objeto (formato Struct) | 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 esse
código de status HTTP
específico. Para mais informações sobre essas strings
de registro, consulte
Mensagens de sucesso HTTP statusDetails e
mensagens de falha HTTP 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. Esse campo está no formato:
"projects/PROJECT_NUMBER" . Essas informações só estão disponíveis
para balanceadores de carga de aplicativo externos globais que usam respostas de erro
personalizadas. |
|
inteiro | Obrigatório | O overrideResponseCode contém o código de resposta de substituição
aplicado à resposta enviada ao cliente. Essas informações só estão
disponíveis 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 só estão disponíveis
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 só estão disponíveis para balanceadores de carga de aplicativo externos globais que usam respostas de erro
personalizadas. |
|
AuthzPolicyInfo | Obrigatório | O campo authzPolicyInfo armazena informações sobre o
resultado da política de autorização. Essas informações só estão disponíveis para
balanceadores de carga de aplicativo externos globais que ativaram
políticas de autorização. Para mais informações, consulte
o que é registrado para políticas de autorização. |
|
string | Opcional | O campo loadBalancingScheme só é preenchido se
for usado o recurso de
migração do balanceador de carga de aplicativo clássico. Esse campo contém uma string que descreve qual esquema
de balanceamento de carga foi usado para encaminhar a solicitação. Os valores possíveis são
EXTERNAL ou EXTERNAL_MANAGED . |
|
TlsInfo | Obrigatório | O campo Use o parâmetro
Não é possível definir |
|
OrcaLoadReport | Opcional | O campo Use o parâmetro
Também é possível definir |
Formato do campo TlsInfo
Campo | Formato do campo | Tipo de campo: obrigatório ou opcional | Descrição |
---|---|---|---|
protocol | string | Opcional | Protocolo TLS que os clientes podem usar para estabelecer uma conexão com
o balanceador de carga. Os valores possíveis são TLSv1 ,
TLSv1.1 , TLSv1.2 , TLSv1.3
ou QUIC .
Esse valor será definido como NULL se o cliente não estiver usando criptografia
TLS/SSL.
|
cipher | string | Opcional | Criptografia TLS que os usam para estabelecer uma conexão com o balanceador
de carga. Esse valor será definido como NULL se o cliente não estiver
usando HTTP(S) ou criptografia TLS/SSL.
|
earlyDataRequest | booleano | Obrigatório | A solicitação inclui dados iniciais no handshake de TLS. |
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 em 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 por 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 statusDetails
statusDetails (falha) | Significado | Códigos de status associados comuns |
---|---|---|
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 status. 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 que uma resposta parcial foi enviada ao cliente. | O código de status HTTP é definido pelo software em execução no back-end.
O código de status HTTP O código de status HTTP será |
backend_connection_closed_before_data_sent_to_client
|
O back-end fechou inesperadamente a conexão com o balanceador de carga antes que a resposta fosse encaminhada por proxy para o cliente. | 502, 503 O código de status HTTP será |
backend_early_response_with_non_error_status
|
O back-end enviou um código de status 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 um código de status temporário 1XX para a
solicitação em um contexto em que respostas temporárias não são compatíveis.
|
|
backend_response_corrupted
|
O corpo da resposta HTTP enviada pelo back-end tem uma codificação de transferência em blocos inválida ou corrompida. | Qualquer código de status é possível, dependendo da natureza da corrupção.
Geralmente, 502 e 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:
|
O código de status HTTP será |
banned_by_security_policy
|
A solicitação foi proibida por uma regra baseada na 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 status
diferente do 206 Partial Content esperado). Isso aconteceu
na tentativa de execução do 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 status
diferente do 206 Partial Content esperado). Isso aconteceu
na tentativa de execução do preenchimento do cache usando uma
solicitação de intervalo de bytes.
O balanceador de carga encaminhou a resposta inconsistente para o cliente.
|
Retornado do back-end: qualquer código de status é 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 status é 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 pesquisa 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 que o balanceador de carga enviou uma resposta parcial. | Retornado do back-end: qualquer código de status é possível. O código de status HTTP será |
client_disconnected_before_any_response
|
A conexão com o cliente foi interrompida antes que o balanceador de carga enviasse uma resposta. |
O código de status HTTP será |
client_timed_out
|
O Google Front End (GFE) deixou inativa a conexão com o cliente devido à falta de progresso enquanto ela estava enviando por proxy a solicitação ou a resposta. | 0 ou 408
|
client_cert_invalid_rsa_key_size
|
Uma folha do cliente ou um certificado intermediário tinha um tamanho inválido da chave RSA. 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 um 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 dez certificados intermediários que compartilham o mesmo sujeito e as mesmas informações sobre a chave pública do sujeito. 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 o
uso de chave estendido (EKU, na sigla em inglês) que inclua 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 é alcançado ao tentar validar a cadeia de certificados. Para mais informações, consulte Erros registrados para conexões fechadas. | 0
|
client_cert_validation_not_performed
|
O mTLS foi configurado sem a configuração de 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 apresenta falha com o TrustConfig
quando algoritmos de hash, como MD4, MD5 e SHA-1, são usados.
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, depois que tiverem sido feitas alterações na configuração que adicionem um novo recurso. Outra causa do erro é que o GFE de primeira camada não consegue se comunicar com o GFE de segunda camada. Isso pode ser decorrente de um erro interno, como um lançamento em andamento, sobrecarga do balanceador de carga ou problemas de configuração intermitentes. Esses erros são temporários e devem estar dentro do SLA. No entanto, se a taxa de erros exceder 0,01%, entre em contato com o Google Cloud suporte para receber mais ajuda. |
404 , 502 , 503
|
direct_response
|
O balanceador de carga substituiu essa solicitação e retornou uma resposta fixa. | É possível ver qualquer código de status HTTP, dependendo da natureza do
problema. Por exemplo, o código de status HTTP 410 significa que o
back-end está indisponível devido a falta 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 com gzip. | 502 , 503
|
failed_to_connect_to_backend
|
O balanceador de carga não conseguiu se conectar ao back-end. Isso inclui tempos limite durante a fase de conexão. | 502 , 503 |
failed_to_pick_backend
|
O balanceador de carga não conseguiu escolher um back-end íntegro para executar 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 do aplicativo (como HTTP/2) para se comunicar entre si, usando 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. Somente 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 ou 5XX
|
invalid_chunk_framing |
As solicitações e as respostas enviadas com o cabeçalho Transfer-Encoding:
Chunked não estão em conformidade com a RFC 9112. De acordo com a RFC, os
campos chunked_body e last-chunk precisam terminar em
CRLF . |
400 |
invalid_external_origin_endpoint
|
A configuração do back-end externo é inválida. Revise a configuração do NEG de Internet e verifique se ela especifica um endereço FQDN/IP e uma porta válidos. | 4XX
|
invalid_request_headers
|
Os cabeçalhos da solicitação HTTP recebidos de um cliente contêm pelo menos um caractere que não é permitido, segundo uma especificação HTTP aplicável. Por exemplo, nomes de campos de cabeçalho que incluem aspas duplas
( Para mais informações, consulte: |
400
|
invalid_http2_client_header_format
|
Os cabeçalhos HTTP/2 do cliente são inválidos. Para mais informações, consulte
invalid_request_headers .
|
400
|
invalid_http2_client_request_path
|
O caminho de solicitação HTTP/2 de um cliente contém pelo menos um caractere que não é permitido, segundo a especificação do URI. Para mais informações, consulte a seção "3.3. Caminho" da RFC 3986. |
400
|
multiple_iap_policies
|
Não é possível combinar várias políticas do Identity-Aware Proxy (IAP). Se houver uma política de IAP anexada a um serviço de back-end e outra política 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 blocos. | 411
|
request_loop_detected
|
O balanceador de carga detectou uma repetição de solicitação. Essa repetição pode ser causada 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 exige um corpo, mas os cabeçalhos da solicitação não incluem um comprimento de conteúdo ou cabeçalho em blocos de codificação de transferência. | 400 , 403 , 411
|
secure_url_rejected
|
Uma solicitação com um
URL https://
foi recebida em uma conexão HTTP/1.1 de texto simples.
|
400
|
server_cert_chain_exceeded_limit
|
A cadeia de certificados do servidor é muito longa (mais de 10 certificados intermediários incluídos no certificado do servidor). | 502 , 503 |
|
O certificado do servidor tem um
campo de extensão Extended Key Usage (EKU)
que não inclui serverAuth . |
|
|
Um certificado intermediário fornecido para validação tinha mais de 10 restrições de nome. | 502 , 503 |
server_cert_exceeded_size_limit
|
O payload do certificado do servidor (incluindo certificados intermediários) é muito grande (mais de 16 KB). | 503 |
server_cert_invalid_rsa_key_size
|
Um servidor ou um certificado intermediário tem um tamanho da chave RSA inválido. Nenhuma validação é executada. As chaves RSA podem ter entre 2.048 e 4.096 bits. |
503 |
server_cert_not_provided
|
O servidor não forneceu o certificado solicitado durante o handshake. | 503 |
server_cert_pki_too_large
|
A ICP a ser usada para validação tem mais de dez certificados intermediários que compartilham as mesmas informações sobre o sujeito e sobre a chave pública do sujeito. Nenhuma validação é executada. |
503 |
server_cert_trust_config_not_found
|
TrustConfig correspondente não encontrado.
|
503 |
server_cert_unsupported_elliptic_curve_key
|
Um servidor ou um certificado intermediário está usando uma curva elíptica não compatível. Nenhuma validação é executada. As curvas válidas são P-256 e P-384. |
503 |
server_cert_unsupported_key_algorithm
|
Um servidor ou certificado intermediário está usando um algoritmo não RSA ou não ECDSA. Nenhuma validação é executada. |
503 |
server_cert_validation_internal_error
|
Erro interno ao validar a cadeia de certificados. | 503 |
server_cert_validation_not_performed
|
O mTLS foi configurado sem a configuração de um recurso
|
503 |
server_cert_validation_search_limit_exceeded
|
O limite de profundidade ou de iteração é alcançado na tentativa de validação da cadeia de certificados. A profundidade máxima de uma cadeia de certificados é dez, incluindo os certificados raiz e do servidor. O número máximo de iterações é 100 (certificados examinados para validar a cadeia de certificados do servidor). |
503 |
server_cert_validation_timed_out
|
O limite de tempo é excedido na tentativa de validação da cadeia de certificados. | 503 |
server_cert_validation_unavailable
|
O serviço não consegue executar a validação da cadeia de certificados. | 503 |
ssl_certificate_san_verification_failed
|
O balanceador de carga não consegue encontrar um nome alternativo do sujeito (SAN, na sigla em inglês) no certificado SSL apresentado pelo back-end que corresponde ao nome do host configurado. | 502 , 503
|
ssl_certificate_chain_verification_failed
|
O certificado SSL apresentado pelo back-end apresentou falha 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 é compatível. | 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 apresentou falha. | 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 relevante para back-ends de VMs. | 413 |
handled_by_identity_aware_proxy
|
Esta resposta foi gerada pelo Identity-Aware Proxy durante a confirmação de identidade do cliente antes de permitir o acesso. |
|
serverless_neg_routing_failed
|
Não é possível enviar a solicitação NEG sem servidor. Esse erro poderá 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 poderá 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 .
|
early_data_rejected
|
A solicitação enviada nos dados iniciais do TLS era inválida. Isso pode ocorrer nos seguintes casos, entre outros:
|
425 |
service_extension_error |
Ocorreu um erro ao chamar uma extensão de serviço usada pelo balanceador de carga. Isso pode acontecer se o plug-in Wasm demorar para responder e exceder o limite de um milissegundo para enviar a resposta. |
425 |
Visualize registros para validação do certificado do cliente mTLS
Para visualizar os erros registrados em conexões fechadas durante a validação do certificado do cliente de TLS mútuo, conclua as etapas a seguir.
Consulta do console
No console do Google Cloud , acesse a página Análise de registros.
Clique no botão Mostrar consulta.
Cole o seguinte no campo de 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ções 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. Verifique mais
detalhes do registro de políticas de autorização.
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 . |
Geração de registros para o Cloud Armor
A tabela de mensagens de falha HTTP statusDetail
contém algumas mensagens que se aplicam ao Cloud Armor. Para mais informações sobre o que o Cloud Armor registra, consulte 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 de aplicativo normalmente são exportados para o projeto que tem a regra de encaminhamento. Portanto, admins 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 às métricas do balanceador de carga, por padrão. Use papéis do IAM para conceder essas permissões aos admins de serviço. Para saber mais sobre os papéis do IAM disponíveis e as etapas para conceder acesso, consulte Conceder acesso ao Monitoring.
Interação 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 Logging.
Monitoramento
O balanceador de carga exporta dados de monitoramento para o 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
Frequência e retençã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 (6) 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.
Monitoramento de métricas
É possível monitorar as métricas a seguir para balanceadores de carga de aplicativo externos.
As métricas a seguir para balanceadores de carga de aplicativo externos globais são
informadas no Cloud Monitoring.
Essas métricas são precedidas por loadbalancing.googleapis.com/
.
Métrica | Nome | Descrição |
---|---|---|
Contagem de solicitações | https/request_count |
O número de solicitações disponibilizadas 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 total. A latência total é o tempo em milissegundos entre o primeiro byte da solicitação recebida pelo proxy e o último byte da resposta enviada pelo proxy. Ela inclui: o tempo gasto pelo proxy para processar a solicitação, o tempo gasto para que a solicitação seja enviada do proxy para o back-end, o tempo gasto pelo back-end para processar a solicitação, o tempo gasto para que a resposta seja enviada de volta ao proxy e o tempo gasto para que o proxy processe a resposta e a envie ao cliente. Ela não inclui o RTT entre o cliente e o proxy. Além disso,
as pausas entre solicitações na mesma conexão que usam Para conexões websocket, esse campo se refere a toda a 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 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. Você pode solicitar informações, como:
|
RTT do front-end† | https/frontend_tcp_rtt |
Uma distribuição do RTT do front-end. RTT do front-end é o tempo em milissegundos para que os dados viajem do cliente para o proxy e voltem. Ele inclui o tempo para uma solicitação viajar do cliente para o proxy e do proxy para o cliente. Esse valor não é atualizado durante o ciclo de vida da conexão. Por exemplo, configurar uma conexão (TCP) com um handshake de três vias levaria 1,5 RTTs. Quando as solicitações são processadas, o balanceador de carga faz amostragem e calcula a média do tempo necessário para que os dados viajem entre o cliente e o proxy e registrem um valor de RTT suavizado. 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 de back-end. Latência de back-end é o tempo, em milissegundos, entre o primeiro byte da solicitação recebida pelo back-end e o último byte da resposta recebida pelo proxy. Ela inclui: o tempo necessário para que a solicitação seja enviada do proxy para o back-end, o tempo necessário para que o back-end processe a solicitação e o tempo necessário para que a resposta seja enviada de volta ao proxy. |
Fração de classe de código de resposta |
Fração do total de respostas do balanceador de carga de aplicativo externo que estão em cada
classe de código de resposta (2xx , 4xx , ...).
No Monitoring, esse valor
só está disponível em painéis padrão. Ele não está disponível em painéis
personalizados. É possível usar a API Monitoring para definir alertas para isso.
|
|
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. |
* Para monitorar conexões websocket, crie um serviço de back-end específico para websockets.
† A soma das latências do RTT de front-end e do back-end talvez não seja menor ou igual às 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 a resposta HTTP em questão. O resultado final é um valor RTT suavizado que também é afetado por respostas HTTP anteriores, por SYN/ACKs e por handshakes SSL que não afetam as verdadeiras marcações de tempo da solicitação HTTP atual.
Filtragem de 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
cada balanceador de carga de aplicativo externo global. É possível filtrar métricas agregadas
pelas dimensões a seguir para resource.type="http_load_balancer"
ou
resource.type="https_lb_rule"
. 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 disponibilizou a conexão. Se nenhum grupo de instâncias estava disponível ou se a solicitação foi disponibilizada por outra entidade, é exibido um dos valores a seguir em vez da 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 (cliente para balanceador de carga). |
backend_type |
O nome do grupo de back-ends que disponibilizou a solicitação do cliente.
Talvez
|
backend_target_type |
O nome do serviço de back-end que disponibilizou a solicitação. 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 uma interrupção
antes da seleção de um back-end, da ocorrência de um redirecionamento de URL ou do retorno de uma resposta 200 OK de um balanceador de carga de aplicativo clássico com back-ends
sem servidor. |
matched_url_path_rule |
A regra do caminho do mapa de URL que correspondeu 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 do caminho do mapa de URL ou a regra da rota configurada como parte da chave do
mapa de URL. Pode ser
|
target_proxy_name |
O nome 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
de back-end ou um 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 uma interrupção
antes da seleção de um back-end, da ocorrência de um redirecionamento de URL ou do retorno de uma resposta 200 OK de um balanceador de carga de aplicativo clássico com back-ends
sem servidor. |
backend_scope_type |
O tipo do escopo do grupo de back-ends. Pode ser
|
proxy_continent |
O continente do GFE HTTP(S) que encerrou a conexão HTTP(S):
por exemplo, America , Europe ,
Asia . |
protocol |
Protocolo usado pelo cliente, um entre HTTP/1.0 ,
HTTP/1.1 , HTTP/2.0 , QUIC/HTTP/2.0 ,
UNKNOWN . |
response_code |
O código de status HTTP da solicitação. |
response_code_class |
A classe de código de status HTTP da solicitação: 200 ,
300 , 400 , 500 ou 0 para
nenhuma. |
cache_result |
Resultado de cache para disponibilizar a solicitação HTTP por proxy: HIT ,
MISS , DISABLED , PARTIAL_HIT (para uma
disponibilizada parcialmente do cache e parcialmente do 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 . |
A seguir
- Leia a visão geral da geração de registros do Cloud CDN.
- Leia sobre armazenamento em cache.
- Leia sobre URLs e cookies assinados.