Resolva problemas de verificações de tempo de atividade e monitorização sintética

Este documento fornece informações sobre como encontrar dados de registo e como resolver problemas de falhas de monitorização sintética e de verificação de tempo de atividade:

Encontre registos

Esta secção fornece informações sobre como encontrar registos para os seus monitores sintéticos e verificações de tempo de atividade:

  1. Na Google Cloud consola, aceda à página Explorador de registos:

    Aceda ao Explorador de registos

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é Registo.

  2. Na barra de ferramentas da Google Cloud consola, selecione o seu Google Cloud projeto. Para configurações do App Hub, selecione o projeto anfitrião ou o projeto de gestão do App Hub.
  3. Realize uma das seguintes ações:

    • Para encontrar todos os registos associados aos seus monitorizadores sintéticos ou verificações de tempo de atividade, consulte por tipo de recurso. Pode usar o menu Recurso ou introduzir uma consulta.

      Para verificações de tempo de atividade, no menu Recurso, selecione URL de verificação de tempo de atividade ou introduza a seguinte consulta no editor de consultas e, de seguida, clique em Executar consulta:

      resource.type="uptime_url"
      

      Para monitores sintéticos, no menu Recurso, selecione Revisão do Cloud Run ou introduza a seguinte consulta no editor de consultas e, de seguida, clique em Executar consulta:

      resource.type="cloud_run_revision"
      
    • Para encontrar registos que contenham informações sobre a resposta recebida durante a execução de uma verificação sintética ou de tempo de atividade, faça qualquer uma das seguintes ações:

      • Para consultar através do ID do monitor sintético ou da verificação de tempo de atividade, use o seguinte formato quando introduzir o ID no editor de consultas, e, em seguida, clique em Executar consulta

        labels.check_id="my-check-id"
        
      • Para consultar registos que contêm dados de resposta para pedidos emitidos por monitorizações sintéticas e verificações de tempo de atividade, introduza a seguinte consulta no editor de consultas e, de seguida, clique em Executar consulta

        "UptimeCheckResult"
        

        A consulta anterior corresponde a todas as entradas de registo que incluem a string "UptimeCheckResult".

      Estes registos incluem o seguinte:

      • O ID da monitorização sintética ou da verificação de tempo de atividade, que é armazenado no campo labels.check_id.

      • Para monitores sintéticos, o nome da sua função do Cloud Run, que é armazenado no campo resource.labels.service_name.

      • Quando são recolhidos dados de rastreio, o ID de um rastreio associado, que é armazenado no campo trace.

    • Para verificar se o seu serviço recebeu pedidos de servidores, copie a seguinte consulta para o editor de consultas e, em seguida, clique em Executar consulta: Google Cloud

      "GoogleStackdriverMonitoring-UptimeChecks"
      

      O campo protoPayload.ip contém um dos endereços usados pelos servidores de verificação de tempo de atividade. Para obter informações sobre como listar todos os endereços IP, consulte o artigo Liste endereços IP.

Resolva problemas com notificações

Esta secção descreve alguns erros que pode encontrar ao configurar políticas de alerta e fornece informações para os resolver.

Uma verificação falhou, mas as outras não

Está a rever as métricas de verificação do tempo de atividade e repara que um verificador comunicou uma falha quando todos os outros comunicaram êxito.

Não é necessária nenhuma ação para resolver esta situação.

Quando apenas um verificador comunica uma falha, essa falha pode ser o resultado do tempo limite do comando do verificador devido a um problema de rede. Ou seja, em vez de o comando falhar, o comando não é concluído dentro do limite de tempo especificado.

As políticas de alerta que usam a configuração predefinida requerem falhas de, pelo menos, dois verificadores antes de criarem um incidente e enviarem uma notificação. Uma falha comunicada por um único verificador não resulta numa notificação.

Recebeu uma notificação e quer depurar a falha

  1. Para identificar quando a falha começou, efetue uma das seguintes ações:

    • Para verificações de tempo de atividade, para determinar quando ocorreu a falha, consulte a página Detalhes do tempo de atividade:

      1. Na Google Cloud consola, aceda à página  Verificações de tempo de atividade:

        Aceda a Verificações de tempo de atividade

        Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

      2. Na barra de ferramentas da Google Cloud consola, selecione o seu Google Cloud projeto. Para configurações do App Hub, selecione o projeto anfitrião ou o projeto de gestão do App Hub.
      3. Encontre e selecione a verificação de tempo de atividade.

        O gráfico Verificações aprovadas apresenta o histórico das verificações. Para identificar quando a verificação de tempo de atividade falhou pela primeira vez, pode ter de modificar o intervalo de tempo do gráfico. O seletor do intervalo de tempo encontra-se na barra de ferramentas da página Detalhes do tempo de atividade.

    • Para os monitorizadores sintéticos, para determinar quando ocorreu a falha, consulte a página Detalhes de tempo de atividade:

      1. Na Google Cloud consola, aceda à página  Monitorização sintética:

        Aceda à monitorização sintética

        Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

      2. Na barra de ferramentas da Google Cloud consola, selecione o seu Google Cloud projeto. Para configurações do App Hub, selecione o projeto anfitrião ou o projeto de gestão do App Hub.
      3. Encontre e selecione a monitorização sintética.
  2. Para obter informações sobre como encontrar dados de registo associados, consulte a secção desta página intitulada Encontrar registos.

Não recebe uma notificação a indicar que uma verificação de tempo de atividade falhou

Configurou uma verificação de tempo de atividade e está a ver a página Detalhes do tempo de atividade dessa verificação. Repara que o gráfico Verificações aprovadas mostra que, pelo menos, uma verificação falhou. No entanto, não recebeu uma notificação.

Por predefinição, a política de alertas está configurada para criar um incidente e enviar uma notificação quando os verificadores em, pelo menos, duas regiões não recebem uma resposta a uma verificação de tempo de atividade. Estas falhas têm de ocorrer em simultâneo.

Pode editar a condição da política de alertas para receber uma notificação quando uma única região não receber uma resposta. No entanto, recomendamos que use a configuração predefinida, que reduz o número de notificações que pode receber devido a falhas transitórias.

Para ver ou editar uma política de alertas, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Alertas:

    Aceder a Alertas

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. Na barra de ferramentas da Google Cloud consola, selecione o seu Google Cloud projeto. Para configurações do App Hub, selecione o projeto anfitrião ou o projeto de gestão do App Hub.
  3. Clique em Ver todas as políticas no painel Políticas.
  4. Encontre a política que quer ver ou editar e, de seguida, clique no nome da política.

    Pode ver e editar a política na página Detalhes da política.

Resolva problemas com as verificações de tempo de atividade públicas

Esta secção descreve alguns erros que pode encontrar quando usa verificações de tempo de atividade públicas e fornece informações para os resolver.

As suas verificações de tempo de atividade públicas estão a falhar

Configura uma verificação de tempo de atividade pública, mas recebe um erro quando executa o passo de validação.

Seguem-se algumas possíveis causas de uma falha na verificação do tempo de atividade:

  • Erro de ligação – Recusado: se estiver a usar o tipo de ligação HTTP predefinido, verifique se tem um servidor Web instalado que esteja a responder a pedidos HTTP. Pode ocorrer um erro de ligação numa nova instância se não tiver instalado um servidor Web. Consulte o início rápido do Compute Engine. Se usar um tipo de ligação HTTPS, pode ter de realizar passos de configuração adicionais. Para problemas de firewall, consulte o artigo Liste os endereços IP do servidor de verificação de tempo de atividade.
  • Nome ou serviço não encontrado: o nome de anfitrião pode estar incorreto.
  • 403 Forbidden: o serviço está a devolver um código de erro ao verificador de tempo de atividade. Por exemplo, a configuração predefinida do servidor Web Apache devolve este código no Amazon Linux, mas devolve o código 200 (êxito) noutras versões do Linux. Consulte o tutorial LAMP para o Amazon Linux ou a documentação do seu servidor Web.
  • 404 Não encontrado: o caminho pode estar incorreto.
  • 408 Pedido excedeu o limite de tempo ou sem resposta: o número da porta pode estar incorreto, o serviço pode não estar em execução, o serviço pode estar inacessível ou o limite de tempo pode ser demasiado baixo. Verifique se a sua firewall permite o tráfego dos servidores de tempo de atividade. Consulte o artigo Liste os endereços IP dos servidores de verificação de tempo de atividade. O limite de tempo limite é especificado como parte das opções de validação de respostas.

Para ajudar a resolver problemas de verificações de tempo de atividade públicas com falhas, pode configurar as verificações de tempo de atividade para enviar até 3 pings ICMP durante a verificação. Os pings podem ajudar a distinguir entre falhas causadas, por exemplo, por problemas de conetividade de rede e por limites de tempo na sua aplicação. Para mais informações, consulte o artigo Use pings ICMP.

Resolva problemas de verificações de tempo de atividade privadas

Esta secção descreve alguns erros que pode encontrar quando usa verificações de tempo de atividade privadas e fornece informações para os resolver.

A criação da verificação de tempo de atividade falha

As definições do seu projeto podem impedir a modificação das funções atribuídas à conta de serviço que as verificações de tempo de atividade usam para gerir as interações com o serviço Service Directory. Google Cloud Nesta situação, a criação da verificação de tempo de atividade falha.

Esta secção descreve como pode conceder as funções que a conta de serviço requer:

Google Cloud consola

Quando usa a Google Cloud consola para criar a verificação de tempo de atividade privada, a Google Cloud consola emite os comandos para conceder as funções do Service Directory à conta de serviço.

Para obter informações sobre como conceder funções a uma conta de serviço, consulte o artigo Autorize a conta de serviço.

API: definição do âmbito do projeto

Quando cria uma verificação de tempo de atividade privada pela primeira vez para um serviço do Service Directory e recursos privados num único Google Cloud projeto, o pedido pode ter êxito ou falhar. O resultado depende de ter desativado as concessões automáticas de funções para contas de serviço no seu projeto:

  • A primeira criação de uma verificação de tempo de atividade é bem-sucedida se o seu projeto permitir concessões automáticas de funções para contas de serviço. É criada uma conta de serviço para si e são-lhe concedidas as funções necessárias.

  • A primeira criação de uma verificação de tempo de atividade falha se o seu projeto não permitir concessões automáticas de funções para contas de serviço. É criada uma conta de serviço, mas não são concedidas funções.

Se a criação da verificação de tempo de atividade falhar, faça o seguinte:

  1. Autorize a conta de serviço.
  2. Aguarde alguns minutos para que as autorizações se propaguem.
  3. Tente criar novamente a verificação de tempo de atividade privada.

API: projeto monitorizado

Quando cria uma verificação de tempo de atividade privada que segmenta um serviço do Service Directory num projeto monitorizado ou recursos privados num projeto Google Cloud diferente, o pedido falha e resulta na criação de uma conta de serviço do Monitoring.

A forma como autoriza a conta de serviço depende do número de Google Cloud projetos que está a usar e das respetivas relações. Pode ter até quatro projetos envolvidos:

  • O projeto no qual definiu a verificação privada do tempo de atividade.
  • O projeto monitorizado no qual configurou o serviço Service Directory.
  • O projeto no qual configurou a rede VPC.
  • O projeto no qual os recursos de rede, como VMs ou balanceadores de carga, estão configurados. Este projeto não tem nenhuma função na autorização da conta de serviço abordada aqui.

Quando a criação da primeira verificação de tempo de atividade falha, faça o seguinte:

  1. Autorize a conta de serviço.
  2. Aguarde alguns minutos para que as autorizações se propaguem.
  3. Tente criar novamente a verificação de tempo de atividade privada.

Acesso negado

As suas verificações de tempo de atividade estão a falhar com resultados VPC_ACCESS_DENIED. Este resultado significa que algum aspeto da configuração de rede ou da autorização da conta de serviço não está correto.

Verifique a autorização da conta de serviço para usar um projeto de âmbito ou um projeto monitorizado, conforme descrito em A criação da verificação de tempo de atividade falha.

Para mais informações sobre o acesso a redes privadas, consulte o artigo Configure o projeto de rede.

Resultados anómalos de verificações privadas do tempo de atividade

Tem um serviço do Service Directory com várias VMs e a configuração do seu serviço contém vários pontos finais. Quando desliga uma das VMs, a verificação do tempo de atividade continua a indicar êxito.

Quando a configuração do serviço contém vários pontos finais, é escolhido um aleatoriamente. Se a VM associada ao ponto final escolhido estiver em execução, a verificação de tempo de atividade é bem-sucedida, mesmo que uma das VMs esteja inativa.

Cabeçalhos predefinidos

As verificações de tempo de atividade estão a devolver erros ou resultados inesperados. Isto pode ocorrer se tiver substituído os valores predefinidos dos cabeçalhos.

Quando é enviado um pedido de verificação de tempo de atividade privada para um ponto final de destino, o pedido inclui os seguintes cabeçalhos e valores:

Cabeçalho Valor
HTTP_USER_AGENT GoogleStackdriverMonitoring-UptimeChecks(https://cloud.google.com/monitoring)
HTTP_CONNECTION keep-alive
HTTP_HOST IP do ponto final do Service Directory
HTTP_ACCEPT_ENCODING gzip, deflate, br
CONTENT_LENGTH Calculado a partir dos dados de publicação do tempo de atividade

Se tentar substituir estes valores, podem ocorrer as seguintes situações:

  • A verificação de tempo de atividade comunica erros
  • Os valores de substituição são ignorados e substituídos pelos valores na tabela

Não existem dados visíveis

Não vê dados no painel de controlo da verificação de tempo de atividade quando a verificação de tempo de atividade está num projeto diferente do serviço Service Directory. Google Cloud

Certifique-se de que o Google Cloud projeto que contém a verificação de tempo de atividade monitoriza o Google Cloud projeto que contém o serviço Service Directory.

Para mais informações sobre como listar projetos monitorizados e adicionar outros, consulte o artigo Configure um âmbito de métricas para vários projetos.

Resolva problemas com monitores sintéticos

Esta secção fornece informações que pode usar para ajudar a resolver problemas dos seus monitores sintéticos.

Mensagem de erro após ativar as APIs

Abre o fluxo de criação de um monitor sintético e é-lhe pedido que ative, pelo menos, uma API. Depois de ativar as APIs, é apresentada uma mensagem semelhante à seguinte:

An error occurred during fetching available regions: Cloud Functions API has
not been used in project PROJECT_ID before or it is disabled.

A mensagem de erro recomenda que verifique se a API está ativada e, em seguida, aconselha a aguardar e repetir a ação.

Para verificar se a API está ativada, aceda à página APIs e serviços do seu projeto:

Aceda a APIs e serviços

Depois de verificar se a API está ativada, pode continuar com o fluxo de criação. A condição resolve-se automaticamente depois de a ativação da API ser propagada através do back-end.

Os pedidos HTTP de saída não estão a ser rastreados

Configura o monitor sintético para recolher dados de rastreio para pedidos HTTP de saída. Os dados de rastreio mostram apenas um intervalo, semelhante à seguinte captura de ecrã:

O Cloud Trace apresenta apenas um rastreio.

Para resolver esta situação, certifique-se de que à sua conta de serviço foi concedida a função de agente do Cloud Trace (roles/cloudtrace.agent). Uma função de editor (roles/editor) também é suficiente.

Para ver as funções concedidas à sua conta de serviço, faça o seguinte:

  1. Na Google Cloud consola, aceda à página IAM:

    Aceda ao IAM

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é IAM e administração.

  2. Na barra de ferramentas da Google Cloud consola, selecione o seu Google Cloud projeto. Para configurações do App Hub, selecione o projeto anfitrião ou o projeto de gestão do App Hub.
  3. Selecione Incluir concessões de funções fornecidas pela Google.
  4. Se a conta de serviço usada pelo seu monitor sintético não estiver listada ou não lhe tiver sido concedida uma função que inclua as autorizações na função de agente do Cloud Trace (roles/cloudtrace.agent), conceda esta função à sua conta de serviço.

    Se não souber o nome da sua conta de serviço, no menu de navegação, selecione Contas de serviço.

Estado em curso

A página Monitorizações sintéticas apresenta uma monitorização sintética com o estado In progress. O estado In progress significa que o monitor sintético foi criado recentemente e não existem dados para apresentar, ou que a implementação da função falhou.

Para determinar se a implementação da função falhou, experimente o seguinte:

  • Certifique-se de que o nome da função do Cloud Run não contém um caráter de sublinhado. Se estiver presente um caráter de sublinhado, remova-o e volte a implementar a função do Cloud Run.

  • Abra a página Detalhes do monitor sintético para o monitor sintético.

    Se vir a seguinte mensagem, elimine o monitor sintético.

    Cloud Function not found for this Synthetic monitor. Please confirm it exists or delete this monitor.
    

    A mensagem de erro indica que a função foi eliminada e, por isso, o monitor sintético não consegue executar a função.

  • Abra a página de funções do Cloud Run para a função. Para abrir esta página a partir da página Detalhes do monitor sintético, clique em Código e, de seguida, clique no nome da função.

    Se vir uma mensagem semelhante à seguinte, significa que a implementação da função falhou.

    This function has failed to deploy and will not work correctly. Please edit and redeploy
    

    Para resolver esta falha, reveja o código da função e corrija os erros que estão a impedir a criação ou a implementação da função.

Quando cria um monitor sintético, a função pode demorar vários minutos a ser implementada e executada.

Estado de aviso

A página Monitorizações sintéticas apresenta uma monitorização sintética com o estado Warning. Um estado de Warning significa que os resultados da execução são inconsistentes. Isto pode indicar um problema de design com o seu teste ou que o que está a ser testado tem um comportamento inconsistente.

Estado de falha

A página Monitorizações sintéticas apresenta uma monitorização sintética com o estado Failing. Para ver mais informações sobre o motivo da falha, consulte o histórico de execuções mais recente.

  • Se for apresentada a mensagem de erro Request failed with status code 429, significa que o destino do pedido HTTP rejeitou o comando. Para resolver esta falha, tem de alterar o destino da sua monitorização sintética.

    O ponto final https://www.google.com rejeita pedidos feitos por monitores sintéticos.

  • Se a falha estiver a devolver um tempo de execução de 0ms, a função do Cloud Run pode estar a ficar sem memória. Para resolver esta falha, edite a sua função do Cloud Run e, em seguida, aumente a memória para, pelo menos, 2 GiB e defina o campo de CPU como 1.

A eliminação falha para uma monitorização sintética

Usa a API Cloud Monitoring para eliminar um monitor sintético, mas a chamada da API falha com uma resposta semelhante à seguinte:

{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.DebugInfo",
        "detail": "[ORIGINAL ERROR] generic::invalid_argument: Cannot delete check 1228258045726183344. One or more alerting policies is using it.Delete the alerting policy with id projects/myproject/alertPolicies/16594654141392976482 and any other policies using this uptime check and try again."
      }
    ]
  }
}

Para resolver a falha, elimine as políticas de alerta que monitorizam os resultados do monitor sintético e, em seguida, elimine o monitor sintético.

Não é possível editar a configuração de um verificador de links quebrados

Criou um verificador de links quebrados através da Google Cloud consola e quer alterar os elementos HTML que são testados ou quer modificar o tempo limite do URI, as novas tentativas, a espera pelo seletor e as opções por link. No entanto, quando edita o verificador de links quebrados, a Google Cloud consola não apresenta os campos de configuração.

Para resolver esta falha, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Monitorização sintética:

    Aceda à monitorização sintética

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. Na barra de ferramentas da Google Cloud consola, selecione o seu Google Cloud projeto. Para configurações do App Hub, selecione o projeto anfitrião ou o projeto de gestão do App Hub.
  3. Localize o monitor sintético que quer editar, clique em Mais opções e, de seguida, selecione Editar.
  4. Clique em Editar função.
  5. Edite o objeto options no ficheiro index.js e, de seguida, clique em Aplicar função.

    Para obter informações sobre os campos e a sintaxe deste objeto, consulte broken-links-ok/index.js.

  6. Clique em Guardar.

AGoogle Cloud consola apresenta que as capturas de ecrã não são guardadas

Criou um verificador de links quebrados e configurou-o para guardar capturas de ecrã. No entanto, a Google Cloud consola apresenta uma das seguintes mensagens de aviso juntamente com informações mais detalhadas:

  • InvalidStorageLocation
  • StorageValidationError
  • BucketCreationError
  • ScreenshotFileUploadError

Para resolver estas falhas, experimente o seguinte:

  • Se vir a mensagem InvalidStorageLocation, valide a existência do contentor do Cloud Storage especificado no campo com o nome options.screenshot_options.storage_location.

  • Veja os registos relacionados com a sua função do Cloud Run. Para mais informações, consulte o artigo Encontrar registos.

  • Verifique se a conta de serviço que está a ser usada na função do Cloud Run correspondente tem uma função de gestão de identidades e acessos que lhe permite criar, aceder e escrever em contentores do Cloud Storage.