Resolver problemas de monitores sintéticos e verificações de tempo de atividade

Neste documento, você encontra informações sobre como encontrar dados de registro e como solucionar falhas de monitor sintético e verificação de tempo de atividade:

Encontrar registros

Nesta seção, você encontra informações sobre como encontrar registros para monitores sintéticos e verificações de tempo de atividade:

  1. No painel de navegação do console do Google Cloud, selecione Logging e clique em Análise de registros:

    Acessar a Análise de registros

  2. Execute um dos seguintes procedimentos:

    • Para encontrar todos os registros associados aos monitores sintéticos ou às verificações de tempo de atividade, consulte por tipo de recurso. Use o menu Recurso ou insira uma consulta.

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

      resource.type="uptime_url"
      

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

      resource.type="cloud_run_revision"
      
    • Os registros de localização que contêm informações sobre a resposta recebida durante a execução de um monitor sintético ou de verificação de tempo de atividade podem realizar uma das seguintes ações:

      • Para consultar usando o ID do monitor sintético ou a verificação de tempo de atividade, use o formato a seguir ao inserir o ID no editor de consultas e clique em Executar consulta.

        labels.check_id="my-check-id"
        
      • Para consultar registros que contêm dados de resposta para solicitações emitidas por monitores sintéticos e verificações de tempo de atividade, insira a seguinte consulta no editor de consultas e clique em Executar consulta

        "UptimeCheckResult"
        

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

      Esses registros incluem o seguinte:

      • O ID do monitor sintético ou da verificação de tempo de atividade, armazenado no campo labels.check_id.

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

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

    • Para verificar se o serviço recebeu solicitações dos servidores do Google Cloud, copie a consulta a seguir no editor de consultas e clique em Executar consulta:

      "GoogleStackdriverMonitoring-UptimeChecks"
      

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

Resolver problemas de notificações

Nesta seção, descrevemos alguns erros que podem ser encontrados ao configurar políticas de alertas e fornecemos informações para resolvê-los.

Você recebeu uma notificação e quer depurar a falha

  1. Para identificar quando a falha começou, siga um destes procedimentos:

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

      1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Verificações de tempo de atividade:

        Acesse Verificações de tempo de atividade

      2. Encontre e selecione a verificação de tempo de atividade.

        O gráfico Verificações aprovadas mostra o histórico de verificações. Para identificar quando a verificação de tempo de atividade falhou pela primeira vez, talvez seja necessário modificar o intervalo de tempo do gráfico. O seletor de intervalo de tempo está localizado na barra de ferramentas da página Detalhes do tempo de atividade.

    • No caso de monitores sintéticos, para determinar quando a falha ocorreu, consulte a página Detalhes do tempo de atividade:

      1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Monitoramento sintético:

        Acesse Monitoramento sintético

      2. Encontre e selecione o monitor sintético.
  2. Para informações sobre como encontrar dados de registros associados, consulte a seção desta página intitulada Como encontrar registros.

Você não recebe notificação de que uma verificação de tempo de atividade falhou

Você configurou uma verificação de tempo de atividade e está visualizando a página Detalhes do tempo de atividade para essa verificação. O gráfico Verificações aprovadas mostra que pelo menos um verificador falhou. No entanto, você não recebeu uma notificação.

Por padrão, a política de alertas é configurada para criar um incidente e enviar uma notificação quando os verificadores em pelo menos duas regiões não receberem uma resposta a uma verificação de tempo de atividade. Essas falhas precisam ocorrer simultaneamente.

É possível editar a condição da política de alertas para ser notificado quando uma única região não receber uma resposta. No entanto, recomendamos que você use a configuração padrão, que reduz o número de notificações que você pode receber devido a falhas temporárias.

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

  1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Alertas:

    Acessar Alertas

  2. Clique em Mostrar todas as políticas no painel Políticas.
  3. Encontre a política que você quer conferir ou editar e clique no nome dela.

    Confira e edite a política na página Detalhes da política.

Resolver problemas de verificações de tempo de atividade particulares

Esta seção descreve alguns erros que podem ser encontrados ao usar verificações de tempo de atividade públicas e fornece informações para resolvê-los.

Falha nas verificações de tempo de atividade público

Você configura uma verificação de tempo de atividade pública, mas recebe um erro ao executar a etapa de verificação.

Veja a seguir algumas possíveis causas de falha na verificação de tempo de atividade:

  • Connection Error - Refused: se você usa o tipo de conexão padrão HTTP, verifique se há um servidor da Web instalado que esteja respondendo a solicitações HTTP. Um erro de conexão pode ocorrer em uma nova instância se você não tiver instalado um servidor da Web. Consulte o Guia de início rápido do Compute Engine. Se você usa um tipo de conexão HTTPS, talvez tenha que executar mais algumas etapas de configuração. Se tiver problemas de firewall, consulte Listar endereços IP do servidor de verificação de tempo de atividade.
  • Nome ou serviço não encontrado: o nome do host pode estar incorreto.
  • 403 Proibido: o serviço está retornando um código de erro para o verificador de tempo de atividade. Por exemplo, a configuração do servidor da Web Apache padrão retorna esse código no Amazon Linux, mas retorna 200 (Success) em algumas outras versões do Linux. Consulte o Tutorial de LAMP para Amazon Linux (em inglês) ou a documentação do servidor da Web.
  • 404 Não encontrado: o caminho pode estar incorreto.
  • 408 Tempo esgotado da solicitação ou sem resposta: o número da porta pode estar incorreto, o serviço pode não estar em execução ou estar inacessível ou o tempo limite pode estar muito baixo. Verifique se o firewall permite tráfego proveniente dos servidores de tempo de atividade. Consulte Listar endereços IP do servidor de verificação de tempo de atividade. O tempo limite é especificado como parte das opções de Validação de resposta.

Para ajudar a solucionar problemas em verificações de tempo de atividade públicas com falha, é possível configurar suas verificações de tempo de atividade para enviar até três pings de ICMP durante a verificação. Os pings ajudam a distinguir entre falhas causadas, por exemplo, por problemas de conectividade de rede e por tempos limite no aplicativo. Para mais informações, consulte Usar pings do ICMP.

Resolver problemas de verificações de tempo de atividade particulares

Esta seção descreve alguns erros que podem ser encontrados ao usar verificações de tempo de atividade particulares e fornece informações para resolvê-los.

Falha na criação da verificação de tempo de atividade

As configurações do projeto do Google Cloud podem impedir a modificação dos papéis atribuídos à conta de serviço que as verificações de tempo de atividade usam para gerenciar interações com o serviço do Diretório de serviços. Nessa situação, a criação da verificação de tempo de atividade falha.

Nesta seção, descrevemos como conceder os papéis exigidos pela conta de serviço:

Console do Google Cloud

Quando você usa o console do Google Cloud para criar a verificação de tempo de atividade particular, o console do Google Cloud emite os comandos para conceder os papéis do Diretório de serviços à conta de serviço.

Para mais informações sobre como conceder papéis a uma conta de serviço, consulte Autorizar a conta de serviço.

API: projeto do escopo

Na primeira vez que você cria uma verificação de tempo de atividade particular para um serviço do Diretório de serviços e recursos particulares em um único projeto do Google Cloud, a solicitação pode ser bem-sucedida ou falhar. O resultado depende da desativação das concessões automáticas de papéis para contas de serviço no projeto:

  • A primeira criação da verificação de tempo de atividade será bem-sucedida se o projeto permitir concessões automáticas de papéis para contas de serviço. Ela é criada para você e recebe os papéis necessários.

  • A primeira criação da verificação de tempo de atividade falhará se o projeto não permitir concessões automáticas de papéis para contas de serviço. Uma conta de serviço é criada, mas nenhum papel é concedido.

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 até que as permissões sejam propagadas.
  3. Tente criar a verificação de tempo de atividade particular outra vez.

API: projeto monitorado

Na primeira vez que você cria uma verificação de tempo de atividade particular que tem como alvo um serviço do Diretório de serviços em um projeto monitorado ou recursos privados em um projeto diferente do Google Cloud, a solicitação falha e resulta na criação de uma conta de serviço do Monitoring.

A forma como você autoriza a conta de serviço depende do número de projetos do Google Cloud que você está usando e das relações entre eles. É possível ter até quatro projetos envolvidos:

  • O projeto em que você definiu a verificação de tempo de atividade particular.
  • O projeto monitorado em que você configurou o serviço do Diretório de serviços.
  • O projeto em que você configurou a rede VPC.
  • O projeto em que os recursos de rede, como VMs ou balanceadores de carga, são configurados. Este projeto não tem papel na autorização da conta de serviço discutida aqui.

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

  1. Autorize a conta de serviço.
  2. Aguarde alguns minutos até que as permissões sejam propagadas.
  3. Tente criar a verificação de tempo de atividade particular outra vez.

Acesso negado

Suas verificações de tempo de atividade estão falhando com resultados de VPC_ACCESS_DENIED. Esse resultado significa que algum aspecto 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 escopo ou monitorado, conforme descrito em Falha na criação da verificação de tempo de atividade.

Saiba mais sobre como acessar redes privadas em Configurar o projeto de rede.

Resultados anômalos nas verificações de tempo de atividade particulares

Você tem um serviço do Diretório de serviços com várias VMs e sua configuração de serviço contém vários endpoints. Quando você encerra uma das VMs, a verificação de tempo de atividade ainda indica sucesso.

Quando sua configuração de serviço contém vários endpoints, um deles é escolhido aleatoriamente. Se a VM associada ao endpoint escolhido estiver em execução, a verificação de tempo de atividade será bem-sucedida mesmo que uma das VMs esteja inativa.

Cabeçalhos padrão

As verificações de tempo de atividade estão retornando erros ou resultados inesperados. Isso pode ocorrer se você tiver substituído os valores de cabeçalho padrão.

Quando uma solicitação é enviada para uma verificação de tempo de atividade particular para um endpoint de destino, a solicitação 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 endpoint do Diretório de serviços
HTTP_ACCEPT_ENCODING gzip, deflate, br
CONTENT_LENGTH Calculado com base nos dados após o tempo de atividade

Se você tentar substituir esses valores, poderá acontecer o seguinte:

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

Nenhum dado visível

Você não vê dados no painel de verificação de tempo de atividade quando ela está em um projeto do Google Cloud diferente do serviço do Diretório de serviços.

Garanta que o projeto do Google Cloud que contém a verificação de tempo de atividade monitore o projeto do Google Cloud que contém o serviço do Diretório de serviços.

Para mais informações sobre como listar projetos monitorados e adicionar outros, consulte Configurar um escopo de métricas para vários projetos.

Resolver problemas em monitores sintéticos

Esta seção fornece informações que podem ser usadas para ajudar a resolver problemas de monitores sintéticos.

Mensagem de erro depois de ativar as APIs

Você abre o fluxo de criação para um monitor sintético e é solicitado a ativar pelo menos uma API. Depois de ativar as APIs, uma mensagem semelhante a esta será exibida:

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 você verifique se a API está ativada e informa que você precisa aguardar e repetir a ação.

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

Acessar APIs e serviços

Depois de verificar se a API está ativada, continue com o fluxo de criação. A condição é resolvida automaticamente após a ativação da API ser propagada pelo back-end.

As solicitações HTTP de saída não estão sendo rastreadas

Configure o monitor sintético para coletar dados de trace para solicitações HTTP de saída. Seus dados de trace mostram apenas um período, semelhante à seguinte captura de tela:

Cloud Trace mostrando apenas um trace.

Para resolver essa situação, verifique se a conta de serviço recebeu o papel de Agente do Cloud Trace (roles/cloudtrace.agent). Um papel de Editor (roles/editor) também é suficiente.

Para visualizar os papéis concedidos à conta de serviço, faça o seguinte:

  1. No painel de navegação do console do Google Cloud, selecione IAM:

    Acessar o IAM

  2. Selecione Incluir concessões de papel fornecidas pelo Google.
  3. Se a conta de serviço usada pelo monitor sintético não estiver listada ou se ele não tiver recebido um papel que inclua as permissões no papel do Agente do Cloud Trace (roles/cloudtrace.agent), conceda esse papel à sua conta de serviço.

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

Status em andamento

A página Monitores sintéticos lista um monitor sintético com status de In progress. Um status In progress significa que o monitor sintético foi criado recentemente e não há dados para exibir ou que a função falhou ao ser implantada.

Para determinar se a implantação da função falhou, tente o seguinte:

  • Verifique se o nome da função do Cloud não contém um sublinhado. Se um sublinhado estiver presente, remova-o e reimplante a função do Cloud.

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

    Se a mensagem a seguir for exibida, exclua 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 excluída e, portanto, o monitor sintético não pode executar a função.

  • Abra a página do Cloud Functions para a função. Para abrir essa página na página Detalhes do monitor sintético, clique em Código e no nome da função.

    Se for exibida uma mensagem semelhante à seguinte, a função não foi implantada.

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

    Para resolver essa falha, revise o código da função e corrija os erros que estão impedindo a criação ou implantação da função.

Quando você cria um monitor sintético, pode levar vários minutos para que a função seja implantada e executada.

Status do alerta

O painel Monitores sintéticos lista um monitor sintético com status Warning. Um status Warning significa que os resultados da execução são inconsistentes. Isso pode indicar um problema de design com o teste ou que o que está sendo testado tem um comportamento inconsistente.

Status com falha

A guia Monitores sintéticos lista um monitor sintético com um status de Failing. Para mais informações sobre o motivo da falha, consulte o histórico de execução mais recente.

  • Se a mensagem de erro Request failed with status code 429 for exibida, o destino da solicitação HTTP rejeitou o comando. Para resolver essa falha, você precisa alterar o destino do monitor sintético.

    O endpoint https://www.google.com rejeita solicitações feitas por monitores sintéticos.

  • Se a falha estiver retornando um tempo de execução de 0ms, é possível que a função do Cloud esteja ficando sem memória. Para resolver essa falha, edite a função do Cloud, aumente a memória para pelo menos 2 GiB e defina o campo da CPU como 1.

A exclusão falha para um monitor sintético

Você usa a API Cloud Monitoring para excluir um monitor sintético, mas a chamada de API falha com uma resposta semelhante a esta:

{
  "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, exclua as políticas de alertas que monitoram os resultados do monitor sintético e, em seguida, exclua o monitor sintético.

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

Você criou um verificador de links corrompidos usando o console do Google Cloud e quer alterar os elementos HTML testados ou modificar o tempo limite do URI, novas tentativas, aguardar o seletor e as opções por link. No entanto, quando você edita o verificador de links corrompidos, o console do Google Cloud não exibe os campos de configuração.

Para resolver essa falha, faça o seguinte:

  1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Monitoramento sintético:

    Acesse Monitoramento sintético

  2. Localize o monitor sintético que você quer editar, clique em Mais opções e selecione Editar.
  3. Clique em Editar função.
  4. Edite o objeto options no arquivo index.js e clique em Aplicar função.

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

  5. Clique em Salvar.

O console do Google Cloud mostra que falha ao salvar capturas de tela

Você criou um verificador de links corrompidos e o configurou para salvar capturas de tela. No entanto, o console do Google Cloud está exibindo uma das seguintes mensagens de aviso com informações mais detalhadas:

  • InvalidStorageLocation
  • StorageValidationError
  • BucketCreationError
  • ScreenshotFileUploadError

Para resolver essas falhas, tente o seguinte:

  • Se a mensagem InvalidStorageLocation for exibida, verifique a existência do bucket do Cloud Storage especificado no campo options.screenshot_options.storage_location.

  • Exiba os registros relacionados à sua função do Cloud. Para mais informações, consulte Como encontrar registros.

  • Verifique se a conta de serviço usada na função do Cloud correspondente tem um papel do Identity and Access Management que permite criar, acessar e gravar nos buckets do Cloud Storage.