Registo
Pode ativar, desativar e ver registos de um serviço de back-end do balanceador de carga de aplicações externo.
Ativa ou desativa o registo para cada serviço de back-end. Pode configurar se pretende registar todos os pedidos ou uma fração aleatória de amostras.
Tem de garantir que não tem uma exclusão de registos que se aplique a equilibradores de carga de aplicações externos. Para obter informações sobre como verificar se os registos Cloud HTTP Load
Balancer
são permitidos, consulte a secção
Filtros de exclusã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%), significa que os registos são gerados para todos os pedidos e escritos no Cloud Logging.
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 quer manter.
Se selecionar incluir todos os campos opcionais, todos os campos opcionais no formato de registo são incluídos nos registos. Quando são adicionados novos campos opcionais ao formato de registo, os registos 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,orca_load_report.cpu_utilization,orca_load_report.mem_utilization
.
Para obter informações sobre a personalização de campos opcionais, consulte o artigo Ative o registo num novo serviço de back-end.
Ativar o registo num novo serviço de back-end
Consola
Na Google 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.
Selecione Criar um serviço de back-end.
Preencha os campos de serviço de back-end obrigatórios.
Na secção Registo, selecione a caixa de verificação 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: modo regional
Crie um serviço de back-end e ative o registo através do comando
gcloud compute backend-services create
.
gcloud compute backend-services create BACKEND_SERVICE \ --region=REGION \ --enable-logging \ --logging-sample-rate=VALUE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
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 externos regionais.- 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. Este campo 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
.
Ativar o registo num serviço de back-end existente
Consola
Na Google 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.Na secção Registo, selecione a caixa de verificação Ativar registo.
No campo Taxa de amostragem, defina a probabilidade 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: modo regional
Ative o registo num serviço de back-end existente com o comando gcloud compute backend-services update
.
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
--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 externos regionais.- 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
.
Desativar ou modificar o registo num serviço de back-end existente
Consola
Na Google 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 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 externos 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 \ --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 | --region=REGION \ --logging-sample-rate=VALUE
Ver registos
Os registos HTTP(S) são indexados primeiro por uma regra de encaminhamento e, em seguida, por um mapa de URLs.
Para ver os registos, aceda à página Explorador de registos:
Aceda ao Explorador de registos
Para ver todos os registos, no menu de filtro Recurso, selecione Balanceador de carga HTTP do Google Cloud > Todas as regras de encaminhamento.
Para ver os registos de uma regra de encaminhamento, selecione o nome de uma única regra de encaminhamento.
Para ver os registos de um mapa de URLs, selecione uma regra de encaminhamento e, de seguida, selecione um mapa de URLs.
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.
Para balanceadores de carga de aplicações externos regionais, pode exportar
métricas baseadas em registos através de
registos de recursos (resource.type="http_external_regional_lb_rule"
).
O que é registado
As entradas de registo do balanceador de carga de aplicações externo 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 todos os registos de registo.
Os registos contêm 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.
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 campotls
está no formato TlsInfo
, 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 | Formato do campo | Tipo de campo: obrigatório ou opcional | Descrição |
---|---|---|---|
severity insertID timestamp logName |
LogEntry | Obrigatória | Os campos gerais, conforme descrito numa entrada de registo. |
httpRequest | HttpRequest | Obrigatória | Um protocolo comum para registar pedidos HTTP. |
recurso | MonitoredResource | Obrigatória | O MonitoredResource é o tipo de recurso associado a uma entrada de registo. O MonitoredResourceDescriptor
descreve o esquema de um objeto |
jsonPayload | objeto (formato Struct) | 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 código de estado ou se o código de estado devolvido não for O campo
|
|
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 externos regionais que tenham ativado as
políticas de autorização. Para mais informações, consulte
o que é registado para as políticas de autorização. |
|
TlsInfo | Opcional | O campo Use o parâmetro
Não pode definir |
|
MtlsInfo | Opcional | O campo |
|
de string | Opcional | O campo backendNetworkName especifica a rede de VPC do back-end.
|
|
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 são TLSv1 ,
TLSv1.1 , TLSv1.2 , TLSv1.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 balanceador 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 |
Etiquetas de recursos
A tabela seguinte lista as etiquetas de recursos para
resource.type="http_external_regional_lb_rule"
.
Campo | Tipo | Descrição |
---|---|---|
backend_name |
de string | O nome do grupo de instâncias ou do NEG de back-end. No entanto, a etiqueta está vazia para uma ligação TLS com falha. |
backend_scope |
de string |
O âmbito do back-end (um nome de zona ou um nome de 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_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. Pode ser BACKEND_SERVICE ou
UNKNOWN é devolvido se o back-end não tiver sido atribuído.
|
backend_type |
de string |
O tipo de grupo de back-end. Pode ser INSTANCE_GROUP ,
NETWORK_ENDPOINT_GROUP ou UNKNOWN é devolvido
se o back-end não tiver sido atribuído.
|
forwarding_rule_name |
de string | O nome do objeto da 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.
|
network_name |
de string | O nome da rede VPC do balanceador de carga. |
project_id |
de string | O identificador do Google Cloud projeto associado a este recurso. |
region |
de string | A região na qual o balanceador de carga está definido. |
target_proxy_name |
de string | O nome do objeto proxy de destino referenciado pela regra de encaminhamento. |
url_map_name |
de string | O nome do objeto do mapa de URLs configurado para selecionar um serviço de back-end.
Para uma ligação TLS com falha,
url_map_name está vazio. |
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"
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 . |
Interagir com os registos
Pode interagir com os registos do Application Load Balancer externo através da API Cloud Logging. A API Logging oferece formas de filtrar interativamente registos que têm campos específicos definidos. Exporta os registos correspondentes para o Cloud Logging, o Cloud Storage, o BigQuery ou o Pub/Sub. Para mais informações acerca da API Logging, consulte a vista geral da API Logging.
Monitorização
O balanceador de carga exporta dados de monitorização para o Monitoring.
Pode usar as métricas de monitorização para:
- Avalie a configuração, a utilização e o desempenho de um balanceador de carga
- Resolva problemas
- Melhore a utilização de recursos e a experiência do utilizador
Além dos painéis de controlo predefinidos no Monitoring, pode criar painéis de controlo personalizados, configurar alertas e consultar as métricas através da API Cloud Monitoring.
Definir políticas de alerta
Pode criar políticas de alerta para monitorizar os valores das métricas e receber uma notificação quando essas métricas violarem uma condição.
-
Na Google Cloud consola, aceda à página notifications Alertas:
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.
- Se não tiver criado os canais de notificação e quiser receber notificações, clique em Editar canais de notificação e adicione os seus canais de notificação. Regresse à página Alertas depois de adicionar os seus canais.
- Na página Alertas, selecione Criar política.
- Para selecionar a métrica, expanda o menu Selecione uma métrica e, em seguida, faça o seguinte:
- Para limitar o menu a entradas relevantes, introduza
Regional External Application Load Balancer Rule
na barra de filtros. Se não houver resultados depois de filtrar o menu, desative o botão Mostrar apenas recursos e métricas ativos. - Para o Tipo de recurso, selecione Regra do balanceador de carga de aplicações externo regional.
- Selecione uma Categoria de métrica e uma Métrica e, de seguida, selecione Aplicar.
- Para limitar o menu a entradas relevantes, introduza
- Clicar em Seguinte.
- As definições na página Configurar acionador de alerta determinam quando o alerta é acionado. Selecione um tipo de condição e, se necessário, especifique um limite. Para mais informações, consulte Crie políticas de alertas de limite métrico.
- Clicar em Seguinte.
- Opcional: para adicionar notificações à sua política de alertas, clique em Canais de notificação. Na caixa de diálogo, selecione um ou mais canais de notificação no menu e, de seguida, clique em OK.
- Opcional: atualize a Duração do encerramento automático do incidente. Este campo determina quando o Monitoring fecha incidentes na ausência de dados de métricas.
- Opcional: clique em Documentação e, de seguida, adicione as informações que quer incluir numa mensagem de notificação.
- Clique em Nome do alerta e introduza um nome para a política de alertas.
- Clique em Criar política.
Definir painéis de controlo personalizados do Cloud Monitoring
Pode criar painéis de controlo personalizados do Cloud Monitoring para as métricas do balanceador de carga:
Na Google Cloud consola, aceda à página Monitorização.
Selecione Painéis de controlo > Criar painel de controlo.
Clique em Adicionar gráfico e, de seguida, atribua um título ao gráfico.
Para identificar a série cronológica a apresentar, escolha um tipo de recurso e um tipo de métrica:
- Na secção Recurso e métrica, clique no gráfico e, de seguida, na secção Selecionar uma métrica, selecione uma das opções disponíveis:
- Para um Application Load Balancer externo regional, selecione o tipo de recurso Regra do Application Load Balancer externo regional.
- Clique em Aplicar.
Para especificar filtros de monitorização, clique em Filtros > Adicionar filtro.
Clique em Guardar.
Frequência e retenção dos relatórios de métricas
As métricas dos equilibradores de carga de aplicações externos são exportadas para o Cloud 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
Pode monitorizar as seguintes métricas para equilibradores de carga de aplicações externos.
As seguintes métricas para balanceadores de carga de aplicações externos regionais são comunicadas no Cloud Monitoring.
Estas métricas têm o prefixo loadbalancing.googleapis.com/
.
Métrica | Nome | Descrição |
---|---|---|
Contagem de pedidos | https/external/regional/request_count |
O número de pedidos publicados pelo Application Load Balancer externo regional. |
Contagem de bytes de pedidos | https/external/regional/request_bytes |
O número de bytes enviados como pedidos de clientes para o Application Load Balancer externo regional. |
Contagem de bytes de resposta | https/external/regional/response_bytes |
O número de bytes enviados como respostas do Application Load Balancer externo regional para o cliente. |
Latências totais | https/external/regional/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 | https/external/regional/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
Pode aplicar filtros para métricas de equilibradores de carga de aplicações externos.
As métricas são agregadas para cada Application Load Balancer externo regional. Pode filtrar
as métricas agregadas através das seguintes dimensões para
resource.type="http_external_regional_lb_rule"
.
Propriedade | Descrição |
---|---|
backend_name |
O nome do grupo de instâncias ou do NEG de back-end. |
backend_scope |
O âmbito do back-end (um nome de zona ou um nome de região). Pode ser
UNKNOWN sempre que backend_name for desconhecido.
|
backend_scope_type |
O âmbito do back-end (REGION /ZONE ).
Pode ser UNKNOWN sempre que backend_name
for desconhecido.
|
backend_target_name |
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 |
O tipo de destino de back-end. Pode ser BACKEND_SERVICE ou
UNKNOWN é devolvido se o back-end não tiver sido atribuído.
|
backend_type |
O tipo de grupo de back-end. Pode ser INSTANCE_GROUP ,
NETWORK_ENDPOINT_GROUP ou UNKNOWN é devolvido
se o back-end não tiver sido atribuído.
|
forwarding_rule_name |
O nome do objeto da regra de encaminhamento. |
matched_url_path_rule |
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.
|
network_name |
O nome da rede VPC do balanceador de carga. |
project_id |
O identificador do Google Cloud projeto associado a este recurso. |
region |
A região na qual o balanceador de carga está definido. |
target_proxy_name |
O nome do objeto proxy de destino referenciado pela regra de encaminhamento. |
url_map_name |
O nome do objeto do mapa de URLs configurado para selecionar um serviço de back-end. |