É possível receber registros de verificações de integridade de balanceamento de carga quando o status de integridade de um endpoint muda. Use os registros de verificação de integridade para:
- depurações e solução de problemas de status de integridade do endpoint em tempo real;
- conseguir visibilidade do status de integridade de seu endpoint;
- Para fins de auditoria e conformidade
As verificações de integridade registram informações de transição de integridade no Logging. Você ativa ou desativa o registro por verificação.
Para ver os registros de verificação de integridade no Logging, verifique se
não há uma exclusão de registros que se aplique a verificações de integridade. Para instruções
sobre como verificar se os registros GCE Instance Group
e
Network Endpoint Group
são permitidos, consulte
Filtros de exclusão.
Ativar e desativar a geração de registros
Nesta seção, descrevemos como ativar a geração de registros em uma verificação de integridade nova ou existente e como desativar a geração de registros em uma verificação de integridade existente.
Ativar a geração de registros em uma nova verificação de integridade
Console
No console do Google Cloud, acesse a página Verificações de integridade.
Clique em Criar verificação de integridade.
Em Registros, selecione Ativado.
Continue configurando sua verificação de integridade.
gcloud
gcloud compute health-checks create PROTOCOL HEALTH_CHECK_NAME \ --enable-logging
A sinalização --enable-logging
ativa a geração de registros para essa verificação de integridade.
Terraform
Para criar uma verificação de integridade para diferentes protocolos com geração de registros, 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 Comandos básicos do Terraform.
Ativar a geração de registros em uma verificação de integridade atual
Console
No console do Google Cloud, acesse a página Verificações de integridade.
Clique no nome da sua verificação de integridade.
Clique em
Editar.Em Registros, selecione Ativado.
Clique em Save.
gcloud
gcloud compute health-checks update PROTOCOL HEALTH_CHECK_NAME \ --enable-logging
A sinalização --enable-logging
ativa a geração de registros para essa verificação de integridade.
Desativar a geração de registros em uma verificação de integridade existente
Console
No console do Google Cloud, acesse a página Verificações de integridade.
Clique no nome da sua verificação de integridade.
Clique em
Editar.Em Registros, selecione Desativado.
Clique em Save.
gcloud
gcloud compute health-checks update PROTOCOL HEALTH_CHECK_NAME \ --no-enable-logging
A sinalização --no-enable-logging
desativa a geração de registros para essa verificação de integridade.
Ver registros
Para visualizar os registros, acesse o Explorador de registros.
Os registros de verificação de integridade são indexados por grupo de instâncias ou grupo de endpoints da rede.
Para ver todos os registros, no menu Recurso, selecione
GCE Instance Group
ouNetwork Endpoint Group
, dependendo do tipo de back-end.Como alternativa, cole o código abaixo no campo Consulta. Substitua
PROJECT_ID
pelo ID do projeto.logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks"
Você pode configurar a exportação de métricas com base em registros para verificações de integridade do balanceador de carga.
Usar filtros para ver os registros
Também é possível receber registros com base em pesquisas mais específicas. Por exemplo, o filtro a seguir mostra todos os registros 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 registro do tipo boolean normalmente só aparecem se tiverem um valor true
.
Se um campo booleano tem um valor false
, esse campo é omitido do registro.
A codificação UTF-8 é aplicada aos campos de registro. Os caracteres que não sejam UTF-8 são substituídos por pontos de interrogação.
O que é registrado
As entradas de registro de verificação de integridade contêm informações úteis para monitorar e depurar o estado dos endpoints. As entradas de registro contêm:
- Informações gerais exibidas na maioria dos registros, como gravidade, ID do projeto, número do projeto e carimbo de data/hora.
- Campos específicos para verificações de integridade, descritos nas tabelas a seguir.
Estados de verificação de integridade
Um endpoint é considerado HEALTHY
ou UNHEALTHY
. Estes são os estados
básicos. Dentro de cada um desses estados básicos, há vários outros mais
detalhados.
NEGs híbridos e NEGs regionais da Internet que usam verificações de integridade distribuídas do Envoy não são compatíveis com estados de integridade detalhados.
Na tabela a seguir, mostramos o mapeamento entre estados de integridade básicos e detalhados.
Estado de integridade básico | Estado de integridade detalhado |
---|---|
HEALTHY |
HEALTHY DRAINING
|
UNHEALTHY |
UNKNOWN UNHEALTHY TIMEOUT
|
As mudanças de estado nem sempre alteram o comportamento do balanceador de carga. Considere o seguinte caso:
- O servidor está fornecendo a resposta incorreta, portanto, o endpoint é considerado
UNHEALTHY
. - O servidor para de responder e o novo estado é
TIMEOUT
. - O balanceador de carga ainda considera o endpoint como
UNHEALTHY
porque o estado detalhadoTIMEOUT
é mapeado para o estadoUNHEALTHY
básico.
Veja na tabela a seguir uma definição de cada estado de integridade.
Estado detalhado da verificação de integridade | Significado | Estado básico |
---|---|---|
HEALTHY
|
O endpoint é acessível e está em conformidade com os requisitos definidos pela verificação de integridade. | HEALTHY
|
UNHEALTHY
|
O endpoint está acessível, mas não está em conformidade com os requisitos definidos pela verificação de integridade. | UNHEALTHY
|
DRAINING
|
O endpoint está sendo reduzido. As conexões existentes com o endpoint
podem ser concluídas, mas as novas estão sendo recusadas. O endpoint
é considerado HEALTHY .
|
HEALTHY
|
TIMEOUT
|
O endpoint não pode ser acessado. De acordo com o tipo de verificação de integridade,
não é possível estabelecer uma conexão com o endpoint ou o servidor não
respondeu dentro do tempo limite especificado. O endpoint é considerado
UNHEALTHY .
|
UNHEALTHY
|
UNKNOWN
|
O sistema de verificação de integridade está ciente do endpoint, mas a integridade dele é
desconhecida. O endpoint é considerado UNHEALTHY .
|
UNHEALTHY
|
Há vários verificadores de integridade examinando cada endpoint. O Google Cloud desfaz a duplicação das entradas de registro antes da geração de registros para que apenas registros exclusivos sejam gerados.
Se um verificador de integridade for reiniciado, será possível que o estado de integridade registrado
mude ocasionalmente de UNKNOWN
para um dos estados conhecidos listados anteriormente, mesmo que o
estado de integridade do endpoint não tenha sido alterado. O Google Cloud usa
a heurística de melhor esforço para suprimir essas entradas de registro.
Se você estiver usando a
diminuição da conexão, os registros de verificação de integridade não serão gerados com o status de integridade do endpoint
DRAINING
. Os registros de verificação de integridade refletem os resultados observados pelas sondagens de verificação de integridade, e a diminuição da conexão não afeta os resultados observados. A diminuição da conexão funciona apenas informando
ao balanceador de carga que o novo estado é DRAINING
e substitui
o verdadeiro estado de integridade do endpoint, conforme observado pelo verificador de integridade.
Você pode interagir com os registros usando a API Cloud Logging. A API fornece maneiras de filtrar de forma interativa registros que têm campos específicos definidos e exportar registros correspondentes para o Cloud Logging, Cloud Storage, BigQuery ou Pub/Sub. Para mais informações sobre a API Cloud Logging, consulte Visão geral da API Cloud Logging.
Entrada de registro da verificação de integridade
O
LogEntry
jsonPayload
é preenchido com um campo healthCheckProbeResult
que contém
as informações a seguir.
Campo | Tipo | Descrição |
---|---|---|
ipAddress |
string |
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 integridade usado para a verificação de integridade do endpoint. Exemplos: TCP, HTTP, HTTPS. |
healthState |
enum(HealthState) |
Status de integridade atual do endpoint: HEALTHY ou
UNHEALTHY . |
previousHealthState |
enum(HealthState) |
Status de integridade anterior do endpoint: HEALTHY ou
UNHEALTHY . |
detailedHealthState |
enum(DetailedHealthState) |
Status de integridade atual detalhado do endpoint.
Para ver uma lista de possibilidades, consulte
Estados de verificação de integridade.
Não compatível com verificações de integridade distribuídas do Envoy para NEGs híbridos e NEGs regionais da Internet. |
previousDetailedHealthState |
enum(DetailedHealthState) |
Status de integridade anterior detalhado do endpoint.
Para ver uma lista de possibilidades, consulte
Estados de verificação de integridade.
Não compatível com verificações de integridade distribuídas do Envoy para NEGs híbridos e NEGs regionais da Internet. |
probeRequest |
string |
Para HTTP, HTTPS e HTTP/2, este é o caminho de solicitação do URL
(campo Para TCP/SSL, esta é a string opcional configurada que é
enviada depois que a conexão de verificação de
integridade é estabelecida
(campo Não compatível com verificações de integridade distribuídas do Envoy para NEGs híbridos e NEGs regionais da Internet. |
probeCompletionTimestamp |
google.protobuf.Timestamp |
Carimbo de data/hora da conclusão da sondagem. |
connectLatency |
google.protobuf.Duration |
Tempo gasto na configuração da conexão de protocolos de verificação de integridade
orientados a conexões: TCP, SSL, HTTP, HTTPS, HTTP/2.
Não compatível com verificações de integridade distribuídas do Envoy para NEGs híbridos e NEGs regionais da Internet. |
responseLatency |
google.protobuf.Duration |
Latência entre solicitação e resposta medida pela sondagem.
Não compatível com verificações de integridade distribuídas do Envoy para NEGs híbridos e NEGs regionais da Internet. |
probeResultText |
string |
Texto descritivo relacionado ao resultado da sondagem. Pode ser algo
como "Tempo limite de conexão atingido" ou "Resposta HTTP: gateway inválido" ou
pode estar vazio.
Não compatível com verificações de integridade distribuídas do Envoy para NEGs híbridos e NEGs regionais da Internet. |
probeSourceIp |
string |
Endereço IP do qual a sondagem de verificação de integridade foi enviada.
Em verificações de integridade distribuídas do Envoy, isso corresponde ao endereço IP do proxy da sub-rede somente proxy. |
targetIp |
string |
Endereço IP que é o destino da sondagem. Pode ser
diferente de ipAddress .
O endereço IP de destino da sondagem depende do tipo de balanceador de carga. Para mais detalhes, consulte
Destino para pacotes de sondagem na visão geral das verificações de integridade.
|
targetPort |
int |
A porta que foi o destino da sondagem. Pode ser a porta padrão da sondagem ou a porta que você especificou ao criar a verificação de integridade. |
Exemplos de filtros
Nesta seção, apresentamos exemplos de filtros de registro comuns.
Encontrar todos os resultados da verificação de integridade para um determinado grupo de instâncias
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" AND resource.type="gce_instance_group" AND resource.labels.instance_group_name="INSTANCE_GROUP_NAME"
Encontrar todos os resultados da verificação de integridade 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"
Encontrar todas as transições de verificação de integridade para o endereço IP 10.128.15.201
da instância de back-end
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" jsonPayload.healthCheckProbeResult.ipAddress="10.128.15.201"
Encontrar todos os endpoints que estavam ÍNTEGROS, mas agora chegaram ao TEMPO LIMITE
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" jsonPayload.healthCheckProbeResult.previousDetailedHealthState="HEALTHY" jsonPayload.healthCheckProbeResult.detailedHealthState="TIMEOUT"
Encontrar registros de integridade de um período 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 registros são gerados apenas para a transição da integridade do endpoint.
- Verificações de integridade legadas não são compatíveis.
- Os pools de destino não são compatíveis.
- Os registros não são gerados quando o estado de integridade do endpoint é
UNKNOWN
. - No caso de migrações de VM, talvez você não veja nenhuma entrada de registro gerada quando
a integridade do endpoint passar para o estado
UNHEALTHY
. - Registros não são gerados quando os endpoints são excluídos. Por exemplo, quando você interrompe uma VM.
A seguir
- Leia informações conceituais sobre verificações de integridade.
- Crie uma verificação de integridade.
- Leia sobre o Cloud Logging.