Pode obter registos de verificações de funcionamento do balanceamento de carga quando um ponto final muda o estado de funcionamento. Pode usar os registos de verificação de estado para o seguinte:
- Depuração e resolução de problemas em direto do estado de funcionamento do seu ponto final
- Obter visibilidade do estado de saúde do seu ponto final
- Fins de auditoria e conformidade
As verificações de funcionamento registam informações de transição de estado no Registo. Ativa ou desativa o registo por verificação de funcionamento.
Para ver os registos de verificação de funcionamento no Logging, tem de se certificar de que não tem uma exclusão de registos que se aplique às verificações de funcionamento. Para ver instruções
sobre como verificar se os registos GCE Instance Group
e
Network Endpoint Group
são permitidos, consulte o artigo
Filtros de exclusão.
Ative e desative o registo
Esta secção descreve como ativar o registo numa verificação de funcionamento nova ou existente e como desativar o registo numa verificação de funcionamento existente.
Ative o registo numa nova verificação de funcionamento
Consola
Na Google Cloud consola, aceda à página Verificações de estado.
Clique em Criar verificação de funcionamento.
Para Registos, selecione Ativar.
Continue a configurar a verificação de funcionamento.
gcloud
gcloud compute health-checks create PROTOCOL HEALTH_CHECK_NAME \ --enable-logging
A flag --enable-logging
ativa o registo para essa verificação de funcionamento.
Terraform
Para criar uma verificação de funcionamento para diferentes protocolos com registo, use o recurso google_compute_health_check
.
Para um balanceador de carga regional, use o recurso google_compute_region_health_check
.
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Ative o registo numa verificação de funcionamento existente
Consola
Na Google Cloud consola, aceda à página Verificações de estado.
Clique no nome da verificação de estado.
Clique em
Editar.Para Registos, selecione Ativar.
Clique em Guardar.
gcloud
gcloud compute health-checks update PROTOCOL HEALTH_CHECK_NAME \ --enable-logging
A flag --enable-logging
ativa o registo para essa verificação de funcionamento.
Desative o registo numa verificação de funcionamento existente
Consola
Na Google Cloud consola, aceda à página Verificações de estado.
Clique no nome da verificação de estado.
Clique em
Editar.Para Registos, selecione Desativar.
Clique em Guardar.
gcloud
gcloud compute health-checks update PROTOCOL HEALTH_CHECK_NAME \ --no-enable-logging
O sinalizador --no-enable-logging
desativa o registo para essa verificação de funcionamento.
Ver registos
Para ver os registos, aceda ao Explorador de registos.
Os registos de verificações de estado são indexados por grupo de instâncias ou grupo de pontos finais de rede.
Para ver todos os registos, no menu Recurso, selecione
GCE Instance Group
ouNetwork Endpoint Group
, consoante o tipo de back-end.Em alternativa, cole o seguinte no campo Consulta. Substitua
PROJECT_ID
pelo ID do seu projeto.logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks"
Pode configurar a exportação de métricas baseadas em registos para verificações de estado do balanceador de carga.
Use filtros para ver registos
Também pode obter registos com base em pesquisas mais específicas. Por exemplo, o filtro seguinte mostra todos os registos de um endereço IP de instância de back-end especificado:
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" jsonPayload.healthCheckProbeResult.ipAddress="IP_ADDRESS"
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.
O que é registado
As entradas do registo de verificação de estado contêm informações úteis para monitorizar e depurar o estado dos seus pontos finais. As entradas do registo contêm os seguintes tipos de informações:
- Informações gerais apresentadas na maioria dos registos, como a gravidade, o ID do projeto, o número do projeto e a data/hora.
- Campos específicos das verificações de estado, descritos nas tabelas seguintes.
Estados da verificação de funcionamento
Um ponto final é considerado HEALTHY
ou UNHEALTHY
. Estes são os estados
básicos. Dentro de cada um destes estados básicos, existem vários estados mais detalhados.
Os NEGs híbridos e os NEGs de Internet regionais que usam verificações de estado do Envoy distribuídas não suportam estados de saúde detalhados.
A tabela seguinte mostra o mapeamento entre os estados de saúde básicos e detalhados.
Estado de saúde básico | Estado de saúde detalhado |
---|---|
HEALTHY |
HEALTHY DRAINING
|
UNHEALTHY |
UNKNOWN UNHEALTHY TIMEOUT
|
As alterações de estado nem sempre alteram o comportamento do equilibrador de carga. Considere o seguinte caso:
- O servidor está a dar a resposta errada, pelo que o ponto final é considerado
UNHEALTHY
. - Em seguida, o servidor deixa de responder e o novo estado é
TIMEOUT
. - O balanceador de carga continua a considerar o ponto final como
UNHEALTHY
, porque o estadoTIMEOUT
detalhado é mapeado para o estadoUNHEALTHY
básico.
A tabela seguinte fornece uma definição de cada estado de integridade.
Estado da verificação de saúde detalhada | Significado | Estado básico |
---|---|---|
HEALTHY
|
O ponto final está acessível e cumpre os requisitos definidos pela verificação de estado. | HEALTHY
|
UNHEALTHY
|
O ponto final está acessível, mas não está em conformidade com os requisitos definidos pela verificação de estado. | UNHEALTHY
|
DRAINING
|
O ponto final está a ser esvaziado. As ligações existentes ao ponto final
podem ser concluídas, mas as novas estão a ser recusadas. O ponto final
é considerado HEALTHY .
|
HEALTHY
|
TIMEOUT
|
Não é possível estabelecer ligação ao ponto final. Consoante o tipo de verificação de estado, não é possível estabelecer uma ligação ao ponto final ou o servidor não respondeu dentro do limite de tempo especificado. O ponto final é considerado
UNHEALTHY .
|
UNHEALTHY
|
UNKNOWN
|
O sistema de verificação de funcionamento tem conhecimento do ponto final, mas o respetivo estado não é
conhecido. O ponto final é considerado UNHEALTHY .
|
UNHEALTHY
|
Existem vários verificadores de estado a sondar cada ponto final; Google Cloud remove as entradas duplicadas do registo antes de registar, para que apenas sejam gerados registos únicos.
Se um verificador de estado for reiniciado, pode ver ocasionalmente o estado de saúde registado a mudar de UNKNOWN
para um dos estados conhecidos indicados anteriormente, mesmo que o estado de saúde do ponto final não tenha mudado efetivamente. Google Cloud usa heurísticas de melhor esforço para suprimir essas entradas de registo.
Se estiver a usar a
drenagem de ligações, os registos de verificação do estado de funcionamento não são gerados com o estado de funcionamento do ponto final
DRAINING
. Isto deve-se ao facto de os registos de verificação de funcionamento refletirem os resultados observados pelas sondas de verificação de funcionamento, e a drenagem de ligações não afetar os resultados observados pela sonda de verificação de funcionamento. A drenagem de ligações funciona apenas informando o balanceador de carga de que o novo estado é DRAINING
e substitui efetivamente o estado de saúde real do ponto final, conforme observado pelo verificador de estado.
Pode interagir com os registos através da API Cloud Logging. A API oferece formas de filtrar interativamente os registos que têm campos específicos definidos e exportar registos correspondentes para o Cloud Logging, o Cloud Storage, o BigQuery ou o Pub/Sub. Para mais informações sobre a Cloud Logging API, consulte a vista geral da Cloud Logging API.
Entrada do registo de verificação de funcionamento
O
LogEntry
jsonPayload
é preenchido com um campo healthCheckProbeResult
que contém
as seguintes informações.
Campo | Tipo | Descrição |
---|---|---|
ipAddress |
string |
O endereço IP interno principal associado à interface de rede principal de cada VM de back-end. Esta é uma string legível. |
healthCheckProtocol |
enum(HealthCheckProtocol) |
O protocolo de verificação de funcionamento usado para verificar o funcionamento do ponto final. Exemplos: TCP, HTTP, HTTPS. |
healthState |
enum(HealthState) |
Estado de funcionamento atual do ponto final: HEALTHY ou
UNHEALTHY . |
previousHealthState |
enum(HealthState) |
O estado de saúde anterior do ponto final: HEALTHY ou
UNHEALTHY . |
detailedHealthState |
enum(DetailedHealthState) |
Estado de integridade detalhado atual do ponto final.
Para ver uma lista de possibilidades, consulte o artigo
Estados da verificação de saúde.
Não é suportado para verificações de estado do Envoy distribuídas para NEGs híbridos e NEGs de Internet regionais. |
previousDetailedHealthState |
enum(DetailedHealthState) |
O estado de saúde detalhado anterior do ponto final.
Para ver uma lista de possibilidades, consulte o artigo
Estados da verificação de saúde.
Não é suportado para verificações de estado do Envoy distribuídas para NEGs híbridos e NEGs de Internet regionais. |
probeRequest |
string |
Para HTTP, HTTPS e HTTP/2, este é o caminho do pedido de URL
(campo Para TCP/SSL, esta é a string opcional configurada que é
enviada após o estabelecimento da ligação de verificação do estado
(campo Não é suportado para verificações de estado do Envoy distribuídas para NEGs híbridos e NEGs de Internet regionais. |
probeCompletionTimestamp |
google.protobuf.Timestamp |
Data/hora de conclusão da sondagem. |
connectLatency |
google.protobuf.Duration |
Tempo gasto na configuração da ligação para protocolos de verificação de funcionamento orientados para a ligação TCP, SSL, HTTP, HTTPS e HTTP/2.
Não é suportado para verificações de estado do Envoy distribuídas para NEGs híbridos e NEGs de Internet regionais. |
responseLatency |
google.protobuf.Duration |
Latência entre o pedido e a resposta, medida pelo verificador.
Não suportado para verificações de estado do Envoy distribuídas para NEGs híbridos e NEGs de Internet regionais. |
probeResultText |
string |
Texto descritivo relacionado com o resultado da sondagem. Pode indicar algo
como "Tempo limite da ligação excedido" ou "Resposta HTTP: Bad Gateway" ou
pode estar vazio.
Não é suportado para verificações de estado do Envoy distribuídas para NEGs híbridos e NEGs de Internet regionais. |
probeSourceIp |
string |
O endereço IP a partir do qual foi enviada a sondagem de verificação de estado.
Para verificações de funcionamento do Envoy distribuídas, isto corresponde ao endereço IP do proxy da sub-rede apenas de proxy. |
probeSourceRegion |
string |
A região do ponto de observação da nuvem a partir da qual se originou a verificação de estado. Este campo só é preenchido para sondagens de políticas de encaminhamento do Cloud DNS se o campo |
targetIp |
string |
O endereço IP que é o destino da sondagem. Este pode ser
diferente de ipAddress .
O endereço IP de destino da sondagem depende do tipo de equilibrador de carga. Para ver detalhes, consulte o artigo
Destino dos pacotes de sondagem na vista geral das verificações de estado.
|
targetPort |
int |
A porta que foi o alvo da sondagem. Esta pode ser a porta predefinida da sondagem ou a porta que especificou quando criou a verificação de funcionamento. |
Exemplos de filtros
Esta secção fornece exemplos de filtros de registos comuns.
Encontre todos os resultados da verificação de estado de um grupo de instâncias específico
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" AND resource.type="gce_instance_group" AND resource.labels.instance_group_name="INSTANCE_GROUP_NAME"
Encontre todos os resultados da verificação de saúde de um NEG específico
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" AND resource.type="gce_network_endpoint_group" AND resource.labels.network_endpoint_group_id="ENDPOINT_GROUP_ID"
Encontre todas as transições de verificação de estado para o endereço IP da instância de back-end 10.128.15.201
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" jsonPayload.healthCheckProbeResult.ipAddress="10.128.15.201"
Encontre todos os pontos finais que estavam anteriormente em bom estado, mas que agora estão com tempo limite excedido
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" jsonPayload.healthCheckProbeResult.previousDetailedHealthState="HEALTHY" jsonPayload.healthCheckProbeResult.detailedHealthState="TIMEOUT"
Encontre registos de saúde de um intervalo de tempo específico
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" timestamp>"2019-02-14T02:20:00.0Z" timestamp<"2019-02-14T03:30:00.0Z"
Limitações
- Os registos são gerados apenas para a transição do estado de funcionamento do ponto final.
- As verificações de funcionamento antigas não são suportadas.
- Os conjuntos de alvos não são suportados.
- Os registos não são gerados quando o estado de funcionamento do ponto final é
UNKNOWN
. - No caso de migrações de VMs, pode não ver entradas de registo geradas quando o estado de funcionamento do ponto final transita para o estado
UNHEALTHY
. - Os registos não são gerados quando os pontos finais são eliminados. Por exemplo, quando para uma VM.
O que se segue?
- Leia informações conceptuais sobre as verificações de saúde.
- Crie uma verificação de funcionamento.
- Leia sobre o registo.