Este documento faculta-lhe as informações de que necessita para compreender as métricas de registo e monitorização dos balanceadores de carga de aplicações internos. As métricas de registo e monitorização para balanceadores de carga de aplicações internos regionais e balanceadores de carga de aplicações internos entre regiões são as mesmas.
Registo
Pode ativar o registo por serviço de back-end. Um único mapa de URLs do balanceador de carga de aplicações interno pode fazer referência a mais do que um serviço de back-end. Pode ter de ativar o registo para vários serviços de back-end, consoante a sua configuração.
Amostragem e recolha de registos
Os pedidos (e as respostas correspondentes) processados pelas instâncias de máquinas virtuais (VMs) do back-end do balanceador de carga são amostrados. Estes pedidos com amostragem são, em seguida, processados para gerar registos. Controla a fração dos pedidos que são
emitidos como entradas de registo de acordo com o parâmetro
logConfig.sampleRate. Quando logConfig.sampleRate
é 1.0
(100%), os registos são gerados para todos os pedidos e escritos no Cloud Logging.
Além disso, mesmo quando o registo está desativado para um serviço de back-end, o balanceador de carga pode produzir entradas de registo para pedidos sem êxito se não conseguir associar esses pedidos a um back-end específico.
Campos opcionais
Os registos de registo contêm campos obrigatórios e campos opcionais. A secção O que é registado indica que campos são opcionais e quais são obrigatórios. Todos os campos obrigatórios estão sempre incluídos. Pode personalizar os campos opcionais que mantém.
Se selecionar incluir todos os campos opcionais, todos os campos opcionais no formato de registo são incluídos nos registos de fluxo. Quando são adicionados novos campos opcionais ao formato de registo, os registos de fluxo incluem automaticamente os novos campos.
Se selecionar excluir todos os opcionais, todos os campos opcionais são omitidos.
Se selecionar personalizado, pode especificar os campos opcionais que quer incluir, como
tls.protocol,tls.cipher
.
Para ver instruções sobre como personalizar campos opcionais, consulte o artigo Ative o registo num serviço de back-end existente.
Ativar o registo num serviço de back-end existente
Para balanceadores de carga de aplicações internos regionais, siga estes passos:
Consola
Na Trusted Cloud consola, aceda à página Equilíbrio de carga.
Clique no nome do balanceador de carga.
Clique em
Editar.Clique em Configuração de back-end.
Clique em
Editar junto ao serviço de back-end.Clique em Configurações avançadas (afinidade de sessão, limite de tempo de esgotamento da ligação).
Clique em Ativar registo.
Defina uma fração da Taxa de amostragem. Pode definir um número de
0.0
a1.0
, em que0.0
significa que não são registados pedidos e1.0
significa que 100% dos pedidos são registados. O valor predefinido é1.0
.Opcional: para incluir todos os campos opcionais nos registos, na secção Campos opcionais, clique em Incluir todos os campos opcionais.
Para terminar a edição do serviço de back-end, clique em Atualizar.
Para terminar a edição do equilibrador de carga, clique em Atualizar.
gcloud
Para atualizar o serviço de back-end para ativar o registo, use o comando gcloud compute
backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --enable-logging \ --logging-sample-rate=RATE \ --region=REGION \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
onde
- O
--enable-logging
ativa o registo para esse serviço de back-end. --logging-sample-rate
permite-lhe especificar um valor de0.0
a1.0
, em que0.0
significa que não são registados pedidos e1.0
significa que 100% dos pedidos são registados. Só é significativo com o parâmetro--enable-logging
. A ativação do registo, mas a definição da taxa de amostragem para0.0
, é equivalente à desativação do registo. O valor predefinido é1.0
.--logging-optional
permite-lhe especificar os campos opcionais que quer incluir nos registos:INCLUDE_ALL_OPTIONAL
para incluir todos os campos opcionais.EXCLUDE_ALL_OPTIONAL
(predefinição) para excluir todos os campos opcionais.CUSTOM
para incluir uma lista personalizada de campos opcionais que especifica emOPTIONAL_FIELDS
.
--logging-optional-fields
permite-lhe especificar uma lista separada por vírgulas de campos opcionais que quer incluir nos registos.Por exemplo,
tls.protocol,tls.cipher
só pode ser definido seLOGGING_OPTIONAL_MODE
estiver definido comoCUSTOM
. Se usar métricas personalizadas e quiser registar elementos do relatório de carregamento ORCA, definaLOGGING_OPTIONAL_MODE
comoCUSTOM
e especifique que elementos têm de ser registados no campoOPTIONAL_FIELDS
. Por exemplo,orca_load_report.cpu_utilization,orca_load_report.mem_utilization
.
Para balanceadores de carga de aplicações internos entre regiões, siga estes passos:
Consola
Na Trusted Cloud consola, aceda à página Equilíbrio de carga.
Clique no nome do balanceador de carga.
Clique em
Editar.Clique em Configuração de back-end.
Clique em
Editar junto ao serviço de back-end.Clique em Configurações avançadas (afinidade de sessão, limite de tempo de esgotamento da ligação).
Clique em Ativar registo.
Defina uma fração da Taxa de amostragem. Pode definir um número de
0.0
a1.0
, em que0.0
significa que não são registados pedidos e1.0
significa que 100% dos pedidos são registados. O valor predefinido é1.0
.Opcional: para incluir todos os campos opcionais nos registos, na secção Campos opcionais, clique em Incluir todos os campos opcionais.
Para terminar a edição do serviço de back-end, clique em Atualizar.
Para terminar a edição do equilibrador de carga, clique em Atualizar.
gcloud
Para atualizar o serviço de back-end para ativar o registo, use o comando gcloud compute
backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --enable-logging \ --logging-sample-rate=RATE \ --global \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
onde
- O
--enable-logging
ativa o registo para esse serviço de back-end. --logging-sample-rate
permite-lhe especificar um valor de0.0
a1.0
, em que0.0
significa que não são registados pedidos e1.0
significa que 100% dos pedidos são registados. Só é significativo com o parâmetro--enable-logging
. A ativação do registo, mas a definição da taxa de amostragem para0.0
, é equivalente à desativação do registo. O valor predefinido é1.0
.--logging-optional
permite-lhe especificar os campos opcionais que quer incluir nos registos:INCLUDE_ALL_OPTIONAL
para incluir todos os campos opcionais.EXCLUDE_ALL_OPTIONAL
(predefinição) para excluir todos os campos opcionais.CUSTOM
para incluir uma lista personalizada de campos opcionais que especifica emOPTIONAL_FIELDS
.
--logging-optional-fields
permite-lhe especificar uma lista separada por vírgulas de campos opcionais que quer incluir nos registos.Por exemplo,
tls.protocol,tls.cipher
só pode ser definido seLOGGING_OPTIONAL_MODE
estiver definido comoCUSTOM
. Se usar métricas personalizadas e quiser registar elementos do relatório de carregamento ORCA, definaLOGGING_OPTIONAL_MODE
comoCUSTOM
e especifique que elementos têm de ser registados no campoOPTIONAL_FIELDS
. Por exemplo,orca_load_report.cpu_utilization,orca_load_report.mem_utilization
.
Depois de ativar o registo no serviço de back-end, cada pedido HTTP(S) é registado através do Cloud Logging.
Desativar ou modificar o registo num serviço de back-end existente
Consola
Na Trusted Cloud consola, aceda à página Equilíbrio de carga.
Clique no nome do balanceador de carga.
Clique em
Editar.Clique em Configuração de back-end.
Clique em
Editar junto ao seu serviço de back-end.Para desativar o registo por completo, na secção Registo, desmarque a caixa de verificação Ativar registo.
Se deixar o registo ativado, pode definir uma fração de taxa de amostragem diferente. Pode definir um número de
0.0
a1.0
, em que0.0
significa que não são registados pedidos e1.0
significa que 100% dos pedidos são registados. O valor predefinido é1.0
. Por exemplo,0.2
significa que 20% dos pedidos de amostra geram registos.Para terminar a edição do serviço de back-end, clique em Atualizar.
Para terminar a edição do equilibrador de carga, clique em Atualizar.
gcloud: modo entre regiões
Desative o registo num serviço de back-end com o comando
gcloud compute backend-services update
.
Desativar o registo por completo
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 aplicações internos entre regiões.- O
--no-enable-logging
desativa o registo para esse serviço de back-end.
Ativar o registo de campos opcionais num serviço de back-end existente
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
onde
--logging-sample-rate
permite-lhe especificar um valor de0.0
a1.0
, em que0.0
significa que não são registados pedidos e1.0
significa que 100% dos pedidos são registados. Só é significativo com o parâmetro--enable-logging
. A ativação do registo, mas a definição da taxa de amostragem para0.0
, é equivalente à desativação do registo. O valor predefinido é1.0
.--logging-optional
permite-lhe especificar os campos opcionais que quer incluir nos registos:INCLUDE_ALL_OPTIONAL
para incluir todos os campos opcionais.EXCLUDE_ALL_OPTIONAL
(predefinição) para excluir todos os campos opcionais.CUSTOM
para incluir uma lista personalizada de campos opcionais que especifica emOPTIONAL_FIELDS
.
--logging-optional-fields
permite-lhe especificar uma lista separada por vírgulas de campos opcionais que quer incluir nos registos.Por exemplo,
tls.protocol,tls.cipher
só pode ser definido seLOGGING_OPTIONAL_MODE
estiver definido comoCUSTOM
. Se usar métricas personalizadas e quiser registar elementos do relatório de carregamento ORCA, definaLOGGING_OPTIONAL_MODE
comoCUSTOM
e especifique que elementos têm de ser registados no campoOPTIONAL_FIELDS
. Por exemplo,orca_load_report.cpu_utilization,orca_load_report.mem_utilization
.
Atualizar o modo opcional de registo de CUSTOM para outros
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=
onde
--logging-optional
permite-lhe especificar os campos opcionais que quer incluir nos registos:INCLUDE_ALL_OPTIONAL
para incluir todos os campos opcionais.EXCLUDE_ALL_OPTIONAL
(predefinição) para excluir todos os campos opcionais.
Tem de configurar explicitamente o seguinte:
--logging-optional-fields
, conforme mostrado, para limpar os camposCUSTOM
existentes. A API não permite combinar um modo nãoCUSTOM
com camposCUSTOM
.
Modificar a taxa de amostragem de registo
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --logging-sample-rate=VALUE
gcloud: modo regional
Desative o registo num serviço de back-end com o comando gcloud compute backend-services update
.
Desativar o registo por completo
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --no-enable-logging
onde
--region
indica que o serviço de back-end é regional. Use este campo para serviços de back-end usados com balanceadores de carga de aplicações internos regionais.- O
--no-enable-logging
desativa o registo para esse serviço de back-end.
Ativar o registo de campos opcionais num serviço de back-end existente
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --enable-logging \ --logging-sample-rate=VALUE \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
onde
--logging-sample-rate
permite-lhe especificar um valor de0.0
a1.0
, em que0.0
significa que não são registados pedidos e1.0
significa que 100% dos pedidos são registados. Só é significativo com o parâmetro--enable-logging
. A ativação do registo, mas a definição da taxa de amostragem para0.0
, é equivalente à desativação do registo. O valor predefinido é1.0
.--logging-optional
permite-lhe especificar os campos opcionais que quer incluir nos registos:INCLUDE_ALL_OPTIONAL
para incluir todos os campos opcionais.EXCLUDE_ALL_OPTIONAL
(predefinição) para excluir todos os campos opcionais.CUSTOM
para incluir uma lista personalizada de campos opcionais que especifica emOPTIONAL_FIELDS
.
--logging-optional-fields
permite-lhe especificar uma lista separada por vírgulas de campos opcionais que quer incluir nos registos.Por exemplo,
tls.protocol,tls.cipher
só pode ser definido seLOGGING_OPTIONAL_MODE
estiver definido comoCUSTOM
. Se usar métricas personalizadas e quiser registar elementos do relatório de carregamento ORCA, definaLOGGING_OPTIONAL_MODE
comoCUSTOM
e especifique que elementos têm de ser registados no campoOPTIONAL_FIELDS
. Por exemplo,orca_load_report.cpu_utilization,orca_load_report.mem_utilization
.
Atualizar o modo opcional de registo de CUSTOM para outros
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --enable-logging \ --logging-sample-rate=VALUE \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=
onde
--logging-optional
permite-lhe especificar os campos opcionais que quer incluir nos registos:INCLUDE_ALL_OPTIONAL
para incluir todos os campos opcionais.EXCLUDE_ALL_OPTIONAL
(predefinição) para excluir todos os campos opcionais.
Tem de configurar explicitamente o seguinte:
--logging-optional-fields
, conforme mostrado, para limpar os camposCUSTOM
existentes. A API não permite combinar um modo nãoCUSTOM
com camposCUSTOM
.
Modificar a taxa de amostragem de registo
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --logging-sample-rate=VALUE
Como ver registos
Para ver os registos, na Trusted Cloud consola, aceda à página Explorador de registos.
Os registos do balanceador de carga de aplicações interno são indexados primeiro por rede e, em seguida, por região.
- Para ver os registos de todos os balanceadores de carga de aplicações internos, no primeiro menu pendente, selecione Regra do balanceador de carga de aplicações interno.
- Para ver os registos apenas de uma rede, selecione Regra do equilibrador de carga da aplicação interno e, de seguida, selecione o nome de uma rede.
- Para ver registos apenas de uma região da rede, selecione
Regra do equilibrador de carga da aplicação interno >
NETWORK
>REGION
.
Os campos de registo do tipo booleano normalmente só aparecem se tiverem um valor de true
.
Se um campo booleano tiver um valor de false
, esse campo é omitido do registo.
A codificação UTF-8 é aplicada aos campos de registo. Os carateres que não são carateres UTF-8 são substituídos por pontos de interrogação.
Pode configurar a exportação de
métricas baseadas em registos para
registos de recursos (resource.type="internal_http_lb_rule"
). As métricas
criadas baseiam-se no recurso "Regra do equilibrador de carga da aplicação interno",
que está disponível nos painéis de controlo do Cloud Monitoring:
O que é registado
As entradas de registo do balanceador de carga de aplicações interno contêm informações úteis para monitorizar e depurar o seu tráfego HTTP(S). Os registos de registo contêm campos obrigatórios, que são os campos predefinidos de cada registo de registo, e campos opcionais que adicionam informações adicionais sobre o seu tráfego HTTP(S). Os campos opcionais podem ser omitidos para poupar custos de armazenamento. As entradas do registo contêm os seguintes tipos de informações:
- Informações gerais apresentadas na maioria dos Trusted Cloud registos, como a gravidade, o ID do projeto, o número do projeto e a data/hora, conforme descrito em LogEntry.
- Campos de registo HttpRequest.
Alguns campos de registo estão num formato de vários campos, com mais do que um elemento de dados num determinado campo. Por exemplo, o campo tls
está no formato TlsDetails
, que contém o protocolo TLS e a cifra TLS num único campo.
Estes campos de vários campos estão descritos na tabela de formato de registo seguinte.
Campo | Tipo | Tipo de campo: obrigatório ou opcional | Descrição |
---|---|---|---|
logName |
de string | Obrigatória | O nome do recurso do registo ao qual esta entrada de registo pertence. No formulário "projects/PROJECT_ID/logs/requests" . |
timestamp |
de string | Obrigatória | A hora em que o pedido começou. |
severity |
LogSeverity formato | Obrigatória | A gravidade da entrada do registo. A predefinição é
LogSeverity.DEFAULT . |
httpRequest |
Objeto HttpRequest | Obrigatória | Um proto HttpRequest que descreve o pedido HTTP(S) que está a ser registado. |
trace |
de string | Obrigatória | O nome do recurso do rastreio associado à entrada do registo, se
existir. Se contiver um nome de recurso relativo, considera-se que o nome é relativo a https://tracing.googleapis.com . Exemplo:
projects/PROJECT_ID/traces/06796866738c859f2f19b7cfb3214824 .
Os equilibradores de carga de aplicações internos não suportam este campo. |
spanId |
de string | Obrigatória | O ID do intervalo no rastreio associado à entrada do registo. Para
extensões de rastreio, esta string tem o mesmo formato que a API Trace v2
usa: uma codificação hexadecimal de 16 carateres de uma matriz de 8 bytes, como
000000000000004a .
Os equilibradores de carga de aplicações internos não suportam este campo. |
resource |
Objeto MonitoredResource | Obrigatória | O recurso monitorizado que produziu esta entrada do registo. O objeto Por exemplo, os descritores de recursos monitorizados para equilibradores de carga de aplicações internos têm um tipo de recurso de |
jsonPayload | object | Obrigatória | O payload da entrada do registo expresso como um objeto JSON. O objeto JSON contém os seguintes campos:
|
de string | Obrigatória | O campo O campo não é registado se o valor for uma string vazia. Isto pode acontecer se o proxy ou o back-end não devolverem um erro ou o código de erro que não seja O campo
|
|
de string | Obrigatória | O campo backendTargetProjectNumber contém o número do projeto que identifica o proprietário do serviço de back-end ou do contentor de back-end.
|
|
de string | Obrigatória | O campo serviceDirectoryService contém o nome do serviço do Service Directory no qual a falha do Cloud FIT foi configurada. |
|
de string | Obrigatória | O campo cloudFitExperiment contém o nome da experiência do Cloud FIT. |
|
de string | Obrigatória | O campo cloudFitFault contém o nome da falha injetada por uma experiência de falha do FIT da nuvem neste caminho de pedido. |
|
ServiceExtensionInfo | Obrigatória | O campo serviceExtensionInfo armazena informações sobre os streams gRPC do equilibrador de carga para as extensões de serviço. Para mais
informações, consulte
o que é registado para extensões de textos destacados. |
|
AuthzPolicyInfo | Obrigatória | O campo authzPolicyInfo armazena informações sobre o resultado da política de autorização. Estas informações só estão disponíveis para equilibradores de carga de aplicações internos com a
política de autorização ativada. Para mais informações, consulte
o que é registado para a política de autorização. |
|
TlsInfo | Opcional | O campo Use o parâmetro
Não pode definir |
|
MtlsInfo | Opcional | O campo mtls contém o valor MtlsInfo que especifica os metadados mTLS para a ligação entre o cliente e o Application Load Balancer interno. Este campo só está disponível se o balanceador de carga usar o TLS mútuo (mTLS) de front-end.
|
|
de string | Opcional | O campo backendNetworkName especifica a rede VPC do back-end, se o back-end usar uma VPC diferente da regra de encaminhamento do balanceador de carga.
|
|
OrcaLoadReport | Opcional | O campo Use o parâmetro
Também pode definir |
Formato do campo TlsInfo
Campo | Formato do campo | Tipo de campo: obrigatório ou opcional | Descrição |
---|---|---|---|
protocol | de string | Opcional | Protocolo TLS que os clientes usam para estabelecer uma ligação com o
equilibrador de carga. Os valores possíveis podem ser TLS 1.0, 1.1, 1.2,
1.3 ou QUIC .
Este valor é definido como NULL se o cliente não estiver a usar a encriptação TLS/SSL.
|
cipher | de string | Opcional | Cifra TLS que os clientes usam para estabelecer uma ligação com o
equilibrador de carga. Este valor é definido como NULL se o cliente não estiver a usar HTTP(S) ou se o cliente não estiver a usar a encriptação TLS/SSL.
|
Formato do campo MtlsInfo
Campo | Formato do campo | Tipo de campo: obrigatório ou opcional | Descrição |
---|---|---|---|
clientCertPresent | booleano | Opcional |
|
clientCertChainVerified | booleano | Opcional |
|
clientCertError | de string | Opcional | Strings predefinidas que representam as condições de erro. Para mais informações sobre as strings de erro, consulte o artigo Modo de validação do cliente. |
clientCertSha256Fingerprint | de string | Opcional | Impressão digital SHA-256 codificada em Base64 do certificado do cliente. |
clientCertSerialNumber | de string | Opcional | O número de série do certificado de cliente.
Se o número de série tiver mais de 50 bytes, a string
|
clientCertValidStartTime | de string | Opcional | Data/hora (formato de string de data RFC 3339) antes da qual o certificado de cliente não é válido.
Por exemplo, |
clientCertValidEndTime | de string | Opcional | Data/hora (formato de string de data RFC 3339) após a qual o certificado de cliente não é válido.
Por exemplo, |
clientCertSpiffeId | de string | Opcional | O ID SPIFFE do campo de nome alternativo de assunto (SAN). Se o valor não for válido ou exceder 2048 bytes, o ID SPIFFE é definido como uma string vazia. Se o SPIFFE ID tiver mais de 2048 bytes, a string
|
clientCertUriSans | de string | Opcional | Lista separada por vírgulas e codificada em Base64 das extensões SAN do tipo URI. As extensões SAN são extraídas do certificado de cliente.
O SPIFFE ID não está incluído no campo Se o campo |
clientCertDnsnameSans | de string | Opcional | Lista codificada em Base64 separada por vírgulas das extensões SAN do tipo DNSName. As extensões SAN são extraídas do certificado de cliente. Se o campo |
clientCertIssuerDn | de string | Opcional | Campo Emissor completo codificado em Base64 do certificado. Se o campo |
clientCertSubjectDn | de string | Opcional | Campo Subject completo codificado em Base64 do certificado. Se o campo |
clientCertLeaf | de string | Opcional | O certificado de folha do cliente para uma ligação mTLS estabelecida em que o certificado passou na validação. A codificação do certificado está em conformidade com a RFC 9440: o certificado DER binário é codificado com Base64 (sem quebras de linha, espaços ou outros carateres fora do alfabeto Base64) e delimitado com dois pontos de cada lado. Se |
clientCertChain | de string | Opcional | A lista de certificados delimitada por vírgulas, na ordem TLS padrão, da cadeia de certificados de cliente para uma ligação mTLS estabelecida em que o certificado de cliente passou na validação, não incluindo o certificado principal. A codificação de certificados está em conformidade com a norma RFC 9440. Se o tamanho combinado de |
Campo de erro proxyStatus
O campo proxyStatus
contém uma string que especifica o motivo pelo qual o balanceador de carga devolveu um erro. Existem duas partes no campo proxyStatus
: proxyStatus error
e proxyStatus details
.
Esta secção descreve as strings suportadas no campo proxyStatus error
.
O campo proxyStatus error aplica-se aos seguintes balanceadores de carga:
- Balanceador de carga de aplicações externo regional
- Balanceador de carga de aplicações interno entre regiões
- Balanceador de carga de aplicações interno regional
Erro proxyStatus | Descrição | Códigos de resposta acompanhantes comuns |
---|---|---|
destination_unavailable
|
O balanceador de carga considera o back-end indisponível. Por exemplo, as tentativas recentes de comunicação com o back-end falharam ou uma verificação do estado de funcionamento pode ter resultado numa falha. | 500 , 503
|
connection_timeout
|
A tentativa do balanceador de carga de abrir uma ligação ao back-end excedeu o tempo limite. | 504
|
connection_terminated
|
A ligação do balanceador de carga ao back-end terminou antes de ser recebida uma resposta completa. Este
|
0 , 502 , 503
|
connection_refused
|
A ligação do balanceador de carga ao back-end é recusada. | 502 , 503
|
connection_limit_reached
|
O balanceador de carga está configurado para limitar o número de ligações que tem ao back-end, e esse limite foi excedido. Este
|
502 , 503
|
destination_not_found
|
O equilibrador de carga não consegue determinar o back-end adequado a usar para este pedido. Por exemplo, o back-end pode não estar configurado. | 500 , 404
|
dns_error
|
O equilibrador de carga encontrou um erro de DNS ao tentar encontrar um endereço IP para o nome do anfitrião do back-end. | 502 , 503
|
proxy_configuration_error
|
O balanceador de carga encontrou um erro de configuração interno. | 500
|
proxy_internal_error
|
O balanceador de carga encontrou um erro interno. O erro pode dever-se a um reinício agendado do proxy que gere as ligações. | 0 , 500 , 502
|
proxy_internal_response
|
O balanceador de carga gerou a resposta sem tentar estabelecer ligação ao back-end. | Qualquer código de estado, consoante o tipo de problema. Por exemplo, o código de estado 410 significa que o back-end está indisponível devido a pagamentos em atraso.
|
http_response_timeout
|
O balanceador de carga atingiu um limite de tempo limite do serviço de back-end configurado enquanto aguardava a resposta completa do back-end. | 504 , 408
|
http_request_error
|
O balanceador de carga encontrou um erro HTTP 4xx, o que indica problemas com o pedido do cliente. | 400 , 403 , 405 , 406 , 408 , 411 , 413 , 414 , 415 , 416 , 417 ou 429
|
http_protocol_error
|
O equilibrador de carga encontrou um erro de protocolo HTTP ao comunicar com o back-end. | 502
|
tls_protocol_error
|
O balanceador de carga encontrou um erro de TLS durante o handshake de TLS. | 0
|
tls_certificate_error
|
O balanceador de carga encontrou um erro no momento da validação do certificado apresentado pelo servidor ou pelo cliente quando o mTLS está ativado. | 0
|
tls_alert_received
|
O balanceador de carga encontrou um alerta TLS fatal durante o handshake TLS. | 0
|
Campo de detalhes proxyStatus
O campo proxyStatus
contém uma string que especifica o motivo pelo qual o balanceador de carga devolveu um erro. Existem duas partes no campo proxyStatus
: proxyStatus error
e proxyStatus details
.
O campo proxyStatus details
é opcional e é apresentado apenas quando estão disponíveis informações adicionais.
Esta secção descreve as strings suportadas no campo proxyStatus details
.
O campo proxyStatus details aplica-se aos seguintes balanceadores de carga:
- Balanceador de carga de aplicações externo regional
- Balanceador de carga de aplicações interno regional
- Balanceador de carga de aplicações interno entre regiões
proxyStatus details | Descrição | Códigos de estado de resposta comuns |
---|---|---|
client_disconnected_before_any_response
|
A ligação ao cliente foi interrompida antes de o balanceador de carga enviar qualquer resposta. | 0 |
backend_connection_closed
|
O back-end fechou inesperadamente a respetiva ligação ao balanceador de carga. Isto pode acontecer se o balanceador de carga estiver a enviar tráfego para outra entidade, como uma aplicação de terceiros com um limite de tempo de TCP inferior ao limite de tempo de 10 minutos (600 segundos) do balanceador de carga. | 502
|
failed_to_connect_to_backend
|
O equilibrador de carga não conseguiu estabelecer ligação ao back-end. Esta falha inclui tempos limite durante a fase de ligação. | 503
|
failed_to_pick_backend
|
O equilibrador de carga não conseguiu selecionar um back-end em bom estado para processar o pedido. | 502
|
response_sent_by_backend
|
O pedido HTTP foi encaminhado com êxito para o back-end e a resposta foi devolvida pelo back-end. | O código de estado HTTP é definido pelo software em execução no back-end. |
client_timed_out
|
A ligação entre o balanceador de carga e o cliente excedeu o tempo limite de inatividade. Para mais informações sobre o balanceador de carga de aplicações externo regional, consulte o artigo Limite de tempo limite de keep-alive HTTP do cliente. Para mais informações sobre o balanceador de carga de aplicações interno, consulte o artigo Limite de tempo limite de keep-alive HTTP do cliente. |
0 , 408
|
backend_timeout
|
O back-end excedeu o tempo limite durante a geração de uma resposta. |
502
|
http_protocol_error_from_backend_response
|
A resposta do back-end contém um erro do protocolo HTTP. | 501 , 502
|
http_protocol_error_from_request
|
O pedido do cliente contém um erro do protocolo HTTP. | 400 , 503
|
http_version_not_supported
|
A versão do protocolo HTTP não é suportada. Apenas são suportados os protocolos HTTP 1.1 e 2.0. | 400
|
handled_by_identity_aware_proxy
|
Esta resposta foi gerada pelo Identity-Aware Proxy (IAP) durante a validação da identidade do cliente antes de permitir o acesso. | 200 , 302 , 400 , 401 , 403 , 500 , 502
|
invalid_request_headers
|
Os cabeçalhos de pedidos HTTP recebidos de um cliente contêm, pelo menos, um caráter que não é permitido ao abrigo de uma especificação HTTP aplicável. Por exemplo, os nomes dos campos de cabeçalho que incluem aspas duplas
( Para mais informações, consulte: |
400 , 404
|
ip_detection_failed
|
Não foi possível detetar o endereço IP original. | Qualquer código de estado possível, consoante a natureza da falha. O valor tem de estar entre 400 e 599 .
|
request_body_too_large
|
O corpo do pedido HTTP excedeu o comprimento máximo suportado pelo balanceador de carga. | 413 , 507
|
request_header_timeout
|
O cabeçalho do pedido excedeu o tempo limite porque o balanceador de carga não recebeu o pedido completo no prazo de 5 segundos. | 408 , 504
|
denied_by_security_policy
|
O balanceador de carga recusou este pedido devido a uma política de segurança do Google Cloud Armor. | 403
|
throttled_by_security_policy
|
O pedido foi bloqueado por uma regra de limitação do Cloud Armor. | 429
|
client_cert_chain_invalid_eku
|
O certificado de cliente ou o respetivo emissor não tem utilização de chave alargada que inclua clientAuth. Para mais informações, consulte o artigo Erros registados para ligações fechadas. | 0
|
client_cert_chain_max_name_constraints_exceeded
|
Um certificado intermédio fornecido para validação tinha mais de 10 restrições de nomes. Para mais informações, consulte o artigo Erros registados para ligações fechadas. | 0
|
client_cert_invalid_rsa_key_size
|
Um certificado de folha ou intermédio de cliente tinha um tamanho da chave RSA inválido. Para mais informações, consulte o artigo Erros registados para ligações fechadas. | 0
|
client_cert_not_provided
|
O cliente não forneceu o certificado pedido durante a negociação. Para mais informações, consulte o artigo Erros registados para ligações fechadas. | 0
|
client_cert_pki_too_large
|
A infraestrutura de chaves públicas a usar para validação tem mais de três certificados intermédios que partilham o mesmo Subject e Subject Public Key Info .
Para mais informações, consulte o artigo Erros registados para ligações fechadas.
|
0
|
client_cert_unsupported_elliptic_curve_key
|
Um certificado intermédio ou de cliente está a usar uma curva elíptica não suportada. Para mais informações, consulte o artigo Erros registados para ligações fechadas. | 0
|
client_cert_unsupported_key_algorithm
|
Um certificado de cliente ou intermédio está a usar um algoritmo não RSA ou não ECDSA. Para mais informações, consulte o artigo Erros registados para ligações fechadas. | 0
|
client_cert_validation_failed
|
O certificado de cliente não passa na validação com o TrustConfig .
Para mais informações, consulte o artigo Erros registados para ligações fechadas.
|
0
|
client_cert_validation_not_performed
|
Configurou o TLS mútuo sem configurar um TrustConfig .
Para mais informações, consulte o artigo Erros registados para ligaçõ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 o artigo Erros registados para ligações fechadas. | 0 |
client_cert_validation_timed_out
|
O limite de tempo foi excedido (200 ms) durante a validação da cadeia de certificados. Para mais informações, consulte o artigo Erros registados para ligações fechadas. | 0
|
tls_version_not_supported
|
A versão do protocolo TLS é reconhecida, mas não é suportada. O erro resulta numa ligação TLS fechada. | 0
|
unknown_psk_identity
|
Os servidores enviam este erro quando é necessário o estabelecimento de chaves PSK, mas o cliente não fornece uma identidade PSK aceitável. O erro resulta numa ligação TLS fechada. | 0
|
no_application_protocol
|
Enviado pelos servidores quando uma extensão "application_layer_protocol_negotiation" anuncia apenas protocolos que o servidor não suporta. Consulte a extensão de negociação do protocolo da camada de aplicação TLS. O erro resulta numa ligação TLS fechada. | 0
|
no_certificate
|
Não foi encontrado nenhum certificado. O erro resulta numa ligação TLS fechada. | 0
|
bad_certificate
|
Um certificado é inválido ou contém assinaturas que não foi possível validar. O erro resulta numa ligação TLS fechada. | 0
|
unsupported_certificate
|
Um certificado é de um tipo não suportado. O erro resulta numa ligação TLS fechada. | 0
|
certificate_revoked
|
Um certificado foi revogado pelo respetivo signatário. O erro resulta numa ligação TLS fechada. | 0
|
certificate_expired
|
Um certificado expirou ou não é válido. O erro resulta numa ligação TLS fechada. | 0
|
certificate_unknown
|
Surgiram alguns problemas não especificados durante o processamento do certificado, o que o torna inaceitável. O erro resulta numa ligação TLS fechada. | 0
|
unknown_ca
|
Foi recebida uma cadeia de certificados válida ou parcial, mas não é possível aceitar o certificado porque não é possível localizar o certificado da CA ou este não corresponde a uma âncora de confiança conhecida. O erro resulta numa ligação TLS fechada. | 0
|
unexpected_message
|
Uma mensagem imprópria, como uma mensagem de handshake incorreta ou dados de aplicação prematuros foram recebidos. O erro resulta numa ligação TLS fechada. | 0
|
bad_record_mac
|
É recebido um registo que não pode ser desprotegido. O erro resulta numa ligação TLS fechada. | 0
|
record_overflow
|
Foi recebido um registo TLSCiphertext com um comprimento superior a 214+256 bytes ou um registo foi descifrado para um registo TLSPlaintext com mais de 214 bytes (ou algum outro limite negociado). O erro resulta numa ligação TLS fechada.
|
0
|
handshake_failure
|
Não é possível negociar um conjunto aceitável de parâmetros de segurança com base nas opções disponíveis. O erro resulta numa ligação TLS fechada. | 0
|
illegal_parameter
|
Um campo na sincronização estava incorreto ou era inconsistente com outros campos. O erro resulta numa ligação TLS fechada. | 0
|
access_denied
|
Foi recebido um certificado ou uma PSK válida, mas quando o controlo de acesso foi aplicado, o cliente não prosseguiu com a negociação. O erro resulta numa ligação TLS fechada. | 0
|
decode_error
|
Não foi possível descodificar uma mensagem porque alguns campos estão fora do intervalo especificado ou o comprimento da mensagem está incorreto. O erro resulta numa ligação TLS fechada. | 0
|
decrypt_error
|
Falha de uma operação criptográfica de handshake (não ao nível do registo), incluindo: Não conseguir validar corretamente uma assinatura ou uma mensagem concluída ou um binder PSK. O erro resulta numa ligação TLS fechada. | 0
|
insufficient_security
|
Uma negociação falhou especificamente porque o servidor requer parâmetros mais seguros do que os suportados pelo cliente. O erro resulta numa ligação TLS fechada. | 0
|
inappropriate_fallback
|
Enviado por um servidor em resposta a uma tentativa de repetição de ligação inválida de um cliente. O erro resulta numa ligação TLS fechada. | 0
|
user_cancelled
|
O utilizador cancelou a sincronização por algum motivo não relacionado com uma falha de protocolo. O erro resulta numa ligação TLS fechada. | 0
|
missing_extension
|
Enviadas por pontos finais que recebem uma mensagem de handshake que não contém uma extensão obrigatória para envio para a versão TLS oferecida ou outros parâmetros negociados. O erro resulta numa ligação TLS fechada. | 0
|
unsupported_extension
|
Enviado por pontos finais que recebem qualquer mensagem de sincronização contendo
uma extensão conhecida por ser proibida para inclusão na determinada
mensagem de sincronização ou incluindo quaisquer extensões em ServerHello
ou Certificate que não foi oferecida primeiro no correspondente
ClientHello ou CertificateRequest .
O erro resulta numa ligação TLS fechada.
|
0
|
unrecognized_name
|
Enviado pelos servidores quando não existe nenhum servidor que possa ser identificado pelo nome fornecido pelo cliente através da extensão "server_name". Consulte as definições de extensão TLS. | 0
|
bad_certificate_status_response
|
Enviado pelos clientes quando é fornecida uma resposta OCSP inválida ou inaceitável pelo servidor através da extensão "status_request". Consulte as definições de extensão TLS. O erro resulta numa ligação TLS fechada. | 0
|
load_balancer_configured_resource_limits_reached
|
O balanceador de carga atingiu os limites de recursos configurados, como o número máximo de ligações. | 0
|
Entradas do registo de ligações TLS falhadas
Quando a ligação TLS entre o cliente e o equilibrador de carga falha antes de ser selecionado qualquer back-end, as entradas de registo registam os erros. Pode configurar os serviços de back-end com diferentes taxas de amostragem de registos. Quando uma ligação TLS falha, a taxa de amostragem do registo de ligações TLS com falhas é a taxa de amostragem mais elevada para qualquer serviço de back-end. Por exemplo, se tiver configurado dois serviços de back-end com a taxa de amostragem de registo como 0.3
e 0.5
, a taxa de amostragem de registo de ligação TLS com falha é 0.5
.
Pode identificar ligações TLS com falhas verificando os seguintes detalhes de entrada no registo:
- O tipo de erro proxyStatus é
tls_alert_received
,tls_certificate_error
,tls_protocol_error
, ouconnection_terminated
. - Não existem informações de back-end.
O exemplo seguinte mostra uma entrada de registo TLS com falha com o campo
proxyStatus error
:
json_payload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" proxyStatus: "error="tls_alert_received"; details="server_to_client: handshake_failure"" log_name: "projects/529254013417/logs/mockservice.googleapis.com%20name" } http_request { latency { nanos: 12412000 } protocol: "HTTP/1.0" remote_ip: "127.0.0.2" } resource { type: "mock_internal_http_lb_rule" labels { backend_name: "" backend_scope: "" backend_scope_type: "UNKNOWN" backend_target_name: "" backend_target_type: "UNKNOWN" backend_type: "UNKNOWN" forwarding_rule_name: "l7-ilb-https-forwarding-rule-dev" matched_url_path_rule: "UNKNOWN" network_name: "lb-network" region: "REGION" target_proxy_name: "l7-ilb-https-proxy-dev" url_map_name: "" } } timestamp: "2023-08-15T16:49:30.850785Z"
Etiquetas de recursos
A tabela seguinte lista as etiquetas de recursos para
resource.type="internal_http_lb_rule"
.
Campo | Tipo | Descrição |
---|---|---|
network_name |
de string | O nome da rede VPC do balanceador de carga. |
project_id | de string | O identificador do Trusted Cloud projeto associado a este recurso. |
region |
de string | A região na qual o balanceador de carga está definido. |
url_map_name | de string | O nome do objeto de mapa de URL configurado para selecionar um serviço de back-end. |
forwarding_rule_name |
de string | O nome do objeto da regra de encaminhamento. |
target_proxy_name | de string | O nome do objeto proxy de destino referenciado pela regra de encaminhamento. |
matched_url_path_rule |
de string |
A regra de caminho do mapa de URLs ou a regra de trajeto configurada como parte da chave do mapa de URLs. Pode ser UNMATCHED ou UNKNOWN como alternativas.
|
backend_target_name |
de string | O nome do back-end selecionado para processar o pedido, com base na regra de caminho do mapa de URLs ou na regra de trajeto que corresponde ao pedido. |
backend_target_type | de string | O tipo de destino de back-end (BACKEND_SERVICE / UNKNOWN ). |
backend_name |
de string | O nome do grupo de instâncias ou do NEG de back-end. |
backend_type |
de string | O tipo de back-end, um grupo de instâncias ou um NEG, ou desconhecido. O Cloud Logging regista pedidos quando o |
backend_scope |
de string |
O âmbito do back-end, que pode ser o nome de uma zona ou de uma região. Pode ser
UNKNOWN sempre que backend_name for desconhecido.
|
backend_scope_type |
de string |
O âmbito do back-end (REGION /ZONE ). Pode ser UNKNOWN sempre que backend_name for desconhecido.
|
backend_target_cross_project_id |
String |
O ID do projeto do serviço ou contentor de destino de back-end. Este campo só está disponível se o recurso de destino de back-end for criado num projeto diferente do projeto no qual o recurso url_map é criado.
|
Registos de pedidos da política de autorização
O objeto authz_info
no payload JSON da entrada do registo do equilibrador de carga contém informações sobre as políticas de autorização. Pode configurar métricas baseadas em registos
para o tráfego permitido ou recusado por estas políticas. Consulte mais
detalhes do registo das políticas de autorização.
Campo | Tipo | Descrição |
---|---|---|
authz_info.policies[] |
objeto | A lista de políticas que correspondem ao pedido. |
authz_info.policies[].name |
de string | O nome da política de autorização que corresponde ao pedido.
O nome está vazio pelos seguintes motivos:
|
authz_info.policies[].result |
enum | O resultado pode ser ALLOWED ou DENIED . |
authz_info.policies[].details |
de string | Os detalhes incluem o seguinte:
|
authz_info.overall_result |
enum | O resultado pode ser ALLOWED ou DENIED . |
Veja os registos da validação de certificados de cliente mTLS
Para ver os erros registados para ligações fechadas durante a validação do certificado do cliente TLS mútuo, conclua os seguintes passos.
Consola
Na Trusted Cloud consola, aceda à página Explorador de registos.
Clique no botão Mostrar consulta para ativar o editor de consultas.
Cole o seguinte no campo Consulta. Substitua
FORWARDING_RULE_NAME
pelo nome da sua 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.
Monitorização
Os balanceadores de carga de aplicações internos exportam dados de monitorização para o Monitoring.
As métricas de monitorização podem ser usadas para os seguintes fins:
- Avaliar a configuração, a utilização e o desempenho de um balanceador de carga
- Resolução de problemas
- Melhorar a utilização de recursos e a experiência do utilizador
Ver métricas do Cloud Monitoring
Consola
Para ver as métricas de um recurso monitorizado através do Metrics Explorer, faça o seguinte:
-
Na Trusted Cloud consola, aceda à página leaderboard Explorador de métricas:
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.
- Na barra de ferramentas da Trusted Cloud consola, selecione o seu Trusted Cloud projeto. Para configurações do App Hub, selecione o projeto anfitrião do App Hub ou o projeto de gestão da pasta com apps ativadas.
- No elemento Métrica, expanda o menu Selecionar uma métrica,
introduza
Internal Application Load Balancer Rule
na barra de filtros e, de seguida, use os submenus para selecionar um tipo de recurso e uma métrica específicos:- No menu Recursos ativos, selecione Regra do equilibrador de carga da aplicação interno.
- Para selecionar uma métrica, use os menus Categorias de métricas ativas e Métricas ativas.
- Clique em Aplicar.
Para adicionar filtros que removem séries cronológicas dos resultados da consulta, use o elemento Filter.
Para combinar séries cronológicas, use os menus no elemento Agregação. Por exemplo, para apresentar a utilização da CPU das suas VMs, com base na respetiva zona, defina o primeiro menu como Média e o segundo menu como zona.
Todas as séries cronológicas são apresentadas quando o primeiro menu do elemento Agregação está definido como Não agregado. As predefinições do elemento Agregação são determinadas pelo tipo de métrica que selecionou.
- Para a quota e outras métricas que comunicam uma amostra por dia, faça o seguinte:
- No painel Apresentação, defina o Tipo de widget como Gráfico de barras empilhadas.
- Defina o período como, pelo menos, uma semana.
Frequência e retenção dos relatórios de métricas
As métricas dos balanceadores de carga são exportadas para o Monitoring em lotes de granularidade de 1 minuto. Os dados de monitorização são retidos durante seis (6) semanas. O painel de controlo apresenta a análise de dados em intervalos predefinidos de 1H (uma hora), 6H (seis horas), 1D (um dia), 1W (uma semana) e 6W (seis semanas). Pode pedir manualmente a análise em qualquer intervalo de 6 semanas a 1 minuto.
Métricas de monitorização
As seguintes métricas para balanceadores de carga de aplicações internos são comunicadas na monitorização:
Métrica | FQDN | Descrição |
---|---|---|
Contagem de pedidos | loadbalancing.googleapis.com/https/internal/request_count |
O número de pedidos publicados pelo Application Load Balancer interno. |
Contagem de bytes de pedidos | loadbalancing.googleapis.com/https/internal/request_bytes |
O número de bytes enviados como pedidos de clientes para o Application Load Balancer interno. |
Contagem de bytes de resposta | loadbalancing.googleapis.com/https/internal/response_bytes |
O número de bytes enviados como respostas do balanceador de carga HTTP(S) interno para o cliente. |
Latências totais | loadbalancing.googleapis.com/https/internal/total_latencies |
Uma distribuição da latência total. A latência total é o tempo em milissegundos entre o primeiro byte do pedido recebido pelo proxy e o último byte da resposta enviada pelo proxy. Inclui: o tempo que o proxy demora a processar o pedido, o tempo que o pedido demora a ser enviado do proxy para o back-end, o tempo que o back-end demora a processar o pedido, o tempo que a resposta demora a ser enviada de volta para o proxy e o tempo que o proxy demora a processar a resposta e a enviá-la para o cliente. Não inclui o tempo de resposta entre o cliente e o proxy. Além disso, as pausas entre pedidos na mesma ligação que usam |
Latências de back-end | loadbalancing.googleapis.com/https/internal/backend_latencies |
Uma distribuição da latência do back-end. A latência do back-end é o tempo, em milissegundos, entre o último byte do pedido enviado para o back-end e o último byte da resposta recebida pelo proxy. Inclui o tempo que o back-end demora a processar o pedido e o tempo que a resposta demora a ser enviada de volta para o proxy. |
Filtrar dimensões para métricas
As métricas são agregadas para cada balanceador de carga da aplicação interno. Pode filtrar as métricas agregadas pelas seguintes dimensões.
Propriedade | Descrição |
---|---|
BACKEND_SCOPE | A Trusted Cloud zona
ou região do grupo de back-end que respondeu ao pedido do cliente ou
uma string especial para casos em que o grupo de back-end não foi atribuído.
Exemplos:
us-central1-a , europe-west1-b ,
asia-east1 , UNKNOWN .
|
PROXY_REGION | Região do balanceador de carga de aplicações interno, do cliente e do back-end. Exemplos:
us-central1 , europe-west1 ou
asia-east1 .
|
BACKEND | O nome do grupo de instâncias ou do NEG de back-end que processou o pedido do cliente. |
BACKEND_TARGET | O nome do serviço de back-end que publicou o pedido do cliente. |
MATCHED_URL_RULE | A regra de caminho do mapa de URLs ou a regra de rota que correspondeu ao prefixo do pedido HTTP(S) do cliente (até 50 carateres). |
A métrica Response code class fraction
é suportada para todo o balanceador de carga. Não é suportada mais granularidade.
O que se segue?
- Leia informações conceptuais sobre os balanceadores de carga de aplicações internos.
- Crie um balanceador de carga da aplicação interno.
- Consulte o artigo Equilíbrio de carga interno e nomes DNS para ver as opções de nomes DNS disponíveis que o equilibrador de carga pode usar.