Geração de registros de verificação de integridade

É 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 registros do Grupo de instâncias do GCE e do Grupo de endpoints de rede são permitidos, consulte Como visualizar exclusões de tipo de recurso.

Limitações

  • A geração de registros de verificação de integridade em interfaces diferentes do nic0 de VMs conectadas a balanceadores de carga TCP/UDP internos não é aceita.
  • 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.

Ativar e desativar a geração de registros

Como ativar a geração de registros em uma nova verificação de integridade

Console

  1. Acesse a página "Verificação de integridade" no Console do Google Cloud.
    Acesse a página "Verificação de integridade"
  2. Clique em Criar verificação de integridade.
  3. Defina o botão de opção Registros como Ativado.
  4. Continue configurando sua verificação de integridade.

gcloud

gcloud compute health-checks create PROTOCOL HEALTH_CHECK_NAME \
   --enable-logging

onde

  • --enable-logging ativa a geração de registros para essa verificação de integridade.

Como ativar a geração de registros em uma verificação de integridade atual

Console

  1. Acesse a página "Verificação de integridade" no Console do Google Cloud.
    Acesse a página "Verificação de integridade"
  2. Clique no nome da sua verificação de integridade.
  3. Clique em Editar .
  4. Defina o botão de opção Registros como Ativado.
  5. Clique em Salvar.

gcloud

gcloud compute health-checks update PROTOCOL HEALTH_CHECK_NAME \
    --enable-logging

onde

  • --enable-logging ativa a geração de registros para essa verificação de integridade.

Como desativar ou modificar o registro em uma verificação de integridade atual

Console

  1. Acesse a página "Verificação de integridade" no Console do Google Cloud.
    Acesse a página "Verificação de integridade"
  2. Clique no nome da sua verificação de integridade.
  3. Clique em Editar .
  4. Defina o botão de opção Registros como Desativado.
  5. Clique em Salvar.

gcloud

Como desativar completamente a geração de registros

gcloud compute health-checks update PROTOCOL HEALTH_CHECK_NAME \
    --no-enable-logging

onde

  • --no-enable-logging desativa a geração de registros para essa verificação de integridade.

Como ver registros

Para visualizar os registros, vá para o Visualizador 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 primeiro menu suspenso, selecione Grupo de instâncias do GCEou Grupo de endpoints da rede, conforme seu tipo de back-end.

Outra opção é acessar o Visualizador de registros e colar a seguinte informação no campo Filtrar por rótulo ou campo de pesquisa de texto. Substitua PROJECT_ID pelo ID do seu projeto.

logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks"

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 booleano 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 forem UTF-8 serão substituídos por pontos de interrogação.

Você pode configurar a exportação de métricas com base em registros para verificações de integridade do balanceador de carga.

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 e número do projeto, carimbo de data e hora etc.
  • 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. 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:

  1. O servidor está fornecendo a resposta incorreta, portanto, o endpoint é considerado UNHEALTHY.
  2. Em seguida, o servidor interrompe a resposta, e o novo estado é TIMEOUT.
  3. O balanceador de carga ainda considera o endpoint como UNHEALTHY porque o estado detalhado TIMEOUT é mapeado para o estado UNHEALTHY 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 pode ser acessado. O endpoint obedece aos 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.

Você pode interagir com os registros usando a API Cloud Logging. A API de registro 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. Saiba mais sobre a API Cloud Logging em Como visualizar registros.

Entrada de registro de verificação de integridade

O LogEntry jsonPayload é preenchido com um campo healthCheckProbeResult com as seguintes informações:

Campos
ipAddress string Endereço IP interno principal associado à interface de rede principal de cada VM de back-end. Esta é uma string legível.
healthCheckProtocol HealthCheckProtocol O protocolo de verificação de integridade usado para a verificação de integridade do endpoint. Exemplos: TCP, HTTP, HTTPS
healthState HealthState Status de integridade atual do endpoint: HEALTHY ou UNHEALTHY.
previousHealthState HealthState Status de integridade anterior do endpoint: HEALTHY ou UNHEALTHY.
detailedHealthState DetailedHealthState Status de integridade atual detalhado do endpoint. Veja uma lista de possibilidades em Estados de verificação de integridade.
previousDetailedHealthState DetailedHealthState Status de integridade anterior detalhado do endpoint. Veja uma lista de possibilidades em Estados de verificação de integridade.
probeRequest string Para HTTP, HTTPS e HTTP/2, este é o caminho de solicitação do URL (campo requestPath na configuração do recurso). Para TCP/SSL esta é a string opcional configurada que é enviada depois que a conexão de verificação de integridade é estabelecida (campo request na configuração do recurso).
probeCompletionTimestamp Timestamp Carimbo de data/hora da conclusão da sondagem.
connectLatency Duration Tempo gasto na configuração da conexão para protocolos de verificação de integridade orientados a conexões: TCP, SSL, HTTP, HTTPS, HTTP/2.
responseLatency Duration Latência entre solicitação e resposta medida pela sondagem.
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 ficar vazio.
probeSourceIp string IP do qual a sondagem de verificação de integridade foi enviada.
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 balanceadores de carga TCP/UDP e balanceadores de carga de rede internos, o destino dos pacotes de verificação de integridade é o endereço IP da regra de encaminhamento do balanceador de carga.
  • Para balanceadores de carga HTTP, proxy TCP e SSL externos que usam grupos de instâncias como back-ends, o destino dos pacotes de verificação de integridade é o endereço IP interno primário associado à interface de rede principal de cada VM de back-end.
  • Para balanceadores de carga HTTP, proxy TCP e SSL externos que usam grupos de endpoints de rede como back-ends, o destino dos pacotes de verificação de integridade é o endereço IP do endpoint, que pode ser um endereço (IP de alias) primário ou secundário.
targetPort int 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

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"

A seguir