Criar verificações de tempo de atividade particulares

Neste documento, descrevemos como configurar uma verificação de tempo de atividade particular. As verificações de tempo de atividade particulares permitem solicitações HTTP ou TCP em um cliente rede de nuvem privada virtual (VPC) ao aplicar Restrições do Identity and Access Management (IAM) e Perímetros do VPC Service Controls. As verificações de tempo de atividade privadas podem enviar solicitações pela rede privada a recursos como uma máquina virtual (VM) ou um balanceador de carga interno L4 (ILB).

Os endereços IP internos dos recursos na rede privada são registrados por serviços do Diretório de serviços com acesso à rede privada ativado. Para usar o tempo de atividade particular você precisa configurar o acesso à rede privada usando o Diretório de serviços.

O projeto do Google Cloud que armazena a verificação de tempo de atividade particular e o projeto do Google Cloud que armazena o diretório de serviços podem ser projetos diferentes. O Cloud Monitoring permite monitorar recursos em várias projetos do Google Cloud de um projeto usando um escopo de métricas. O projeto em que a verificação de tempo de atividade está definida é o projeto de escopo de um escopo de métricas; o escopo das métricas é uma lista de todos os projetos o projeto de escopo monitora. O serviço do Diretório de serviços pode ser definido no do projeto do escopo ou em um projeto no escopo das métricas. Para mais informações sobre escopos de métricas, consulte Visão geral dos escopos de métricas.

A rede privada e os recursos dela, como VMs ou balanceadores de carga, podem estar em outro projeto do Google Cloud. Este projeto não tem estejam no escopo de métricas do projeto da verificação de tempo de atividade. O serviço do Diretório de serviços coleta as métricas de tempo de atividade para que precisa estar no escopo das métricas, mas os recursos que ele encapsula não.

Este documento descreve como configurar uma rede privada e configurar Recursos do diretório de serviços usando o console do Google Cloud ou a API. Os exemplos de API presumem que a rede privada e o serviço do Diretório de serviços o projeto de escopo da verificação de tempo de atividade. No entanto, criar um verificação de tempo de atividade também descreve como usar a API para criar uma verificação de tempo de atividade que use um serviço do Diretório de serviços no escopo das métricas.

Para mais informações sobre como configurar verificações de tempo de atividade que usam endereços IP, consulte Criar verificações de tempo de atividade públicas. Para informações sobre como gerenciar e monitorar suas verificações de tempo de atividade, consulte a Próximas etapas deste documento.

Antes de começar

  1. Ative as APIs a seguir:

    • API Cloud Monitoring: monitoring.googleapis.com
    • API Service Directory: servicedirectory.googleapis.com
    • API Service Networking: servicenetworking.googleapis.com
    • API Compute Engine: compute.googleapis.com

    É possível ativar as APIs usando a CLI gcloud ou console do Google Cloud. As guias a seguir descrevem como instalar o CLI gcloud e ativar a API Cloud Monitoring:

    Console do Google Cloud

    1. No console do Google Cloud, selecione o projeto do Google Cloud para em que você quer ativar a API, e acesse a página APIs e Serviços:

      Vá para APIs e Serviços

    2. Clique no botão Ativar APIs e serviço.

    3. Pesquise "Monitoring".

    4. Nos resultados da pesquisa, clique em "API Stackdriver Monitoring".

    5. Se for exibido "API ativada", a API já está ativada. Se não, clique em Ativar.

    CLI da gcloud

    1. Se você ainda não instalou a Google Cloud CLI no seu estação de trabalho, consulte Como instalar a CLI gcloud.

    2. Para ver se a API Monitoring está ativada, execute o seguinte na estação de trabalho, depois de substituir PROJECT_ID pelo ID do projeto em que você quer ativar a API:

      gcloud services list --project=PROJECT_ID
      

      Se monitoring.googleapis.com aparecer na saída, a API está ativada.

    3. Se a API não estiver ativada, execute o seguinte comando para ativá-la:

      gcloud services enable monitoring --project=PROJECT_ID
      

      Para ver mais informações, consulte gcloud services.

    Siga as mesmas etapas para ativar as outras APIs:

    • Para usar o console do Google Cloud, pesquise o nome de exibição, por exemplo: "API Service Directory".
    • Para usar a CLI gcloud, especifique o primeiro elemento do Nome googleapis.com, por exemplo, servicedirectory.
  2. Configure os canais de notificação que você quer usar para receber notificações. Recomendamos que você crie vários tipos de notificação canais. Para mais informações, consulte Criar e gerenciar canais de notificação.

  3. Configurar uma rede privada e configurar uma VM ou ILB para ter acesso a ela. Para mais informações, consulte Acesso a serviços particulares.

    As verificações particulares que segmentam ILBs estão limitadas a as regiões com verificadores de tempo de atividade. A região de verificação de tempo de atividade USA inclui USA_OREGON, USA_IOWA e USA_VIRGINIA regiões. Cada um dos USA_* regiões tem um verificador, e USA inclui todos os três. As outras regiões de verificação de tempo de atividade, EUROPE, SOUTH_AMERICA e ASIA_PACIFIC têm uma verificador de segurança. Para remover essa limitação, será preciso configurar o acesso global ao balanceador de carga. Para mais informações sobre como configurar o acesso global, consulte a guia do ILB na seção Configurar recursos do Diretório de serviços, deste documento.

    Se você planeja verificar um ILB que não permite acesso global, selecione uma das seguintes regiões para seu ILB:

    • us-east4
    • us-central1
    • us-west1
    • europe-west1
    • southamerica-east1
    • asia-southeast1
  4. Determine qual interface usar:

    • Console do Google Cloud: permite criar um tempo de atividade verificam quando uma VM está atendendo às solicitações. Essa interface orienta você pela configuração de recursos do Diretório de serviços, autorizar a conta de serviço e configurar o firewall da rede regras de firewall.

    • Interfaces de linha de comando: é possível usar a Google Cloud CLI e a A API Cloud Monitoring para criar verificações de tempo de atividade particulares quando ILBs e VMs atender a solicitações.

  5. Se você planeja usar a linha de comando para configurar as verificações de tempo de atividade particulares, Em seguida, conclua as etapas de pré-requisito.

Criar uma verificação de tempo de atividade particular

Nesta seção, explicamos como criar e configurar verificações de tempo de atividade particulares de serviços do Diretório de serviços:

  • Para usar o console do Google Cloud, selecione a guia Console do Google Cloud.

  • Para usar a API Cloud Monitoring e configurar o o serviço do Diretório de serviços precisa estar no mesmo projeto do Google Cloud que verificação de tempo de atividade, selecione a guia API: Projeto do escopo.

  • Para usar a API Cloud Monitoring e configurar o O serviço do Diretório de serviços precisa estar em um projeto monitorado pelo escopo das métricas da verificação de tempo de atividade, selecione a guia API: Monitored project.

Console do Google Cloud

Para criar uma verificação de tempo de atividade usando o console do Google Cloud, faça o seguinte:

  1. No console do Google Cloud, acesse a página  Verificações de tempo de atividade:

    Acesse Verificações de tempo de atividade

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. Clique em Criar verificação de tempo de atividade.

    Crie uma caixa de diálogo da verificação de tempo de atividade.

  3. Especifique uma verificação de tempo de atividade particular:

    1. Selecione o protocolo, que pode ser HTTP, HTTPS ou TCP.

    2. Escolha o tipo de recurso IP interno.

  4. Se você não tiver um serviço do Diretório de serviços configurado para seu projeto ou se quiser criar um serviço do Diretório de serviços, clique em Visualizar e preencha Painel Pré-requisitos da verificação de tempo de atividade particular:

    1. Se solicitado, ative a API Compute Engine ou a a API Service Directory. A ativação das APIs pode levar um minuto para ser concluída.

    2. Abra a opção Service Account (Conta de serviço) se ela aparecer. e clique em Criar conta de serviço.

      Quando não existe uma conta de serviço do Monitoring, é criada. Em seguida, o Monitoring concede à conta de serviço dois papéis do Diretório de serviços.

    3. Expanda o menu Diretório de serviços e faça o seguinte:

      1. Expanda Região e e selecione a região da VM que está veiculando solicitações.
      2. Expanda o Namespace e selecione um namespace atual do Diretório de serviços ou Clique em Criar namespace e crie um namespace.
      3. Clique em Nome do serviço e digite um serviço. nome. Os serviços são os destinos das verificações de tempo de atividade privadas.
      4. Clique em Nome do endpoint e digite um nome para o endpoint. Um endpoint é um par de endereços IP e valores de porta que que um serviço pode usar para lidar com solicitações. Quando seu serviço contém vários endpoints, um endpoint é escolhido aleatoriamente.
      5. Expanda Rede e depois selecione sua rede privada.
      6. Expanda a instância e selecione a VM. na rede privada que está veiculando solicitações. Depois de selecionar instância, o endereço IP interno dela é exibido.
      7. Clique em Concluído.
    4. Expanda Regras de firewall:

      1. Expanda Rede e selecione a rede em que a regra de rede está anexada.

      2. Clique em Criar regras de firewall.

        A regra de firewall permite o tráfego TCP de entrada de rotas 35.199.192.0/19. Uma rota de 35.199.192.0/19 suporta conectividade com encaminhamento que usam roteamento particular. Para mais informações, consulte Rotas de VPC.

  5. No painel Verificação de tempo de atividade particular, para especificar o Serviço do Diretório de serviços a ser usado, siga um destes procedimentos:

    • Selecione Usar nome de serviço totalmente qualificado e insira o nome nome qualificado do serviço:

      projects/SERVICE_DIRECTORY_PROJECT_ID/locations/REGION/namespaces/PRIVATE_NAMESPACE/services/PRIVATE_SERVICE
      
    • Selecione a Região, o Namespace e o Serviço usando o menus. Se você criou um serviço, esses campos são selecionados para você.

  6. No painel Private Uptime Check, preencha a descrição do da verificação de tempo de atividade:

    1. Opcional: insira um componente de caminho para a solicitação.

      Verificações de tempo de atividade particulares que usam o protocolo HTTP ou HTTPS envie uma solicitação para http://target/path. Neste expressão target é o endereço IP interno configurado no endpoint do Diretório de serviços.

      Se você deixar o campo Caminho em branco ou definir o valor como /: a solicitação é enviada para http://target/.

    2. Opcional: para definir a frequência de execução da verificação de tempo de atividade, use o método Verificar frequência.

    3. Opcional: para selecionar as regiões do verificador ou configurar de autenticação, cabeçalhos para verificações HTTP e HTTPS e outros valores, Clique em Mais opções de segmentação:

      • Regiões: selecione as regiões em que as verificações de tempo de atividade devem receber solicitações. Uma verificação de tempo de atividade precisa ter pelo menos três verificadores. Há um verificador em todas as regiões, exceto nos Estados Unidos, que tem três verificações. A configuração padrão, Global, inclui todas as regiões.
      • Request Method: selecione GET ou POST.
      • Corpo: para verificações HTTP POST, insira o corpo codificado para URL. você fazer a codificação por conta própria. Para todas as outras verificações, deixe este campo em branco.
      • Cabeçalho do host: não defina este campo ao configurar verificações de tempo de atividade particulares.
      • Porta: qualquer valor definido aqui substitui a porta na sua Configuração de endpoint do Diretório de serviços. Não definir um valor aqui se quiser que a configuração do endpoint seja usada.
      • Cabeçalhos personalizados: forneça cabeçalhos personalizados e, como opção, criptografá-las. A criptografia oculta os valores no cabeçalho do formulário. Use a criptografia para cabeçalhos relacionados à autenticação que você não quer que outras pessoas vejam.
      • Autenticação: forneça um único nome de usuário e senha. Esses valores são enviados como um cabeçalho de autorização. Se você definir os valores, não configure um cabeçalho de autorização separado. Se definir um cabeçalho de autorização, não configure valores no campo. As senhas sempre estarão ocultas no formulário.
  7. Clique em Continuar e configure os requisitos de resposta. Todas as configurações nesta seção têm valores padrão:

    • Para definir um tempo limite para a verificação de tempo de atividade, use o Tempo limite de resposta. Uma verificação de tempo de atividade falha resposta seja recebida de mais de um local nesse período.

    • Para configurar a verificação de tempo de atividade para realizar a correspondência de conteúdo, Verifique se o marcador de alternância está A correspondência de conteúdo está ativada:

      • Selecione o Tipo de correspondência de conteúdo de resposta no menu de opções. Esse campo determina como o conteúdo da resposta é comparado aos dados retornados. Por exemplo, suponha que o conteúdo da resposta seja abcd, e o tipo de correspondência do conteúdo é Contém. A verificação de tempo de atividade é bem-sucedido apenas quando os dados de resposta contêm abcd. Para mais informações, consulte Validar os dados de resposta.
      • Digite o Conteúdo da resposta. O conteúdo da resposta precisa ser uma string não pode ter mais de 1.024 bytes. Na API, esse campo é o Objeto ContentMatcher.
    • Para evitar a criação de entradas de registro devido a verificações de tempo de atividade, Desmarque Falhas na verificação de registros.

    • Para as verificações de tempo de atividade HTTP, configure os códigos de resposta aceitáveis. Por padrão, as verificações de tempo de atividade HTTP 2xx como uma resposta bem-sucedida.

  8. Clique em Continuar e configure políticas de alertas e notificações.

    Para receber uma notificação quando uma verificação de tempo de atividade falhar, crie uma política de alertas e configurar canais de notificação para essa política:

    1. Opcional: atualize o nome da política de alertas.
    2. Opcional: no campo Duração, selecione a duração das verificações de tempo de atividade. devem falhar antes do envio das notificações. Por padrão, as notificações são enviado quando pelo menos duas regiões relatam falhas na verificação de tempo de atividade para um duração mínima de um minuto.
    3. Na caixa Canais de notificação, expanda Menu, selecione os canais a serem adicionados e clique em OK.

      No menu, os canais de notificação são agrupados em ordem alfabética para cada tipo de canal.

    Se você não quiser criar uma política de alertas, se o texto do botão ativar/desativar é Não criar um alerta.

  9. Clique em Continuar e conclua a verificação de tempo de atividade:

    1. Digite um título descritivo para a verificação de tempo de atividade.

    2. Opcional: para adicionar rótulos definidos pelo usuário à verificação de tempo de atividade, faça o seguinte:

      1. Clique em Mostrar rótulos de usuário.
      2. No campo Chave, digite um nome para o rótulo. Os nomes de rótulos precisam começar com uma letra minúscula e podem conter letras minúsculas, numerais, sublinhados e traços. Por exemplo, insira severity.
      3. No campo Valor, digite um valor para o marcador. Valores de rótulo pode conter letras minúsculas, numerais, sublinhados e traços. Por exemplo, insira critical.
      4. Para cada rótulo adicional, clique em Adicionar rótulo de usuário e digite a chave e o valor do rótulo.
    3. Para verificar a configuração da verificação de tempo de atividade, clique em Test. Se o resultado não for o esperado, consulte Solução de problemas. corrija sua configuração e repita a etapa de verificação.

    4. Clique em Criar.

API: projeto do escopo

Para criar a configuração de uma verificação de tempo de atividade particular, crie um objeto UptimeCheckConfig e transmita esse para o método uptimeCheckConfigs.create na API Cloud Monitoring.

O objeto UptimeCheckConfig de uma verificação de tempo de atividade particular é diferente do objeto para uma verificação de tempo de atividade pública das seguintes maneiras:

  • O recurso monitorado especificado na configuração da verificação de tempo de atividade precisa ser do tipo servicedirectory_service. Este tipo de recurso tem os seguintes rótulos:

    • project_id: o ID do projeto associado ao Diretório de serviços.
    • location: a região do Google Cloud associada ao serviço.
    • namespace_name: o namespace do Diretório de serviços.
    • service_name: o nome do serviço do Diretório de serviços.
    .
  • Não é preciso especificar um valor port na configuração da verificação de tempo de atividade. O valor da porta das modificações de endpoint do Diretório de serviços qualquer valor definido na configuração da verificação de tempo de atividade, e ela falhará se nenhuma porta foi especificada na configuração do Diretório de serviços.

  • A configuração da verificação de tempo de atividade precisa especificar o campo checker_type com o valor VPC_CHECKERS. Este valor é obrigatório para o tempo de atividade particular e verificações de tempo de atividade. Por padrão, as verificações de tempo de atividade são públicas. não é necessário especificar esse campo.

O código JSON a seguir ilustra um objeto UptimeCheckConfig para um verificações de tempo de atividade particulares usando os recursos do Diretório de serviços configurados para uma instância de VM em uma rede privada:

{
  "displayName": "private-check-demo",
  "monitoredResource": {
    "type": "servicedirectory_service",
    "labels": {
      "project_id": "SERVICE_DIRECTORY_PROJECT_ID",
      "service_name": "PRIVATE_SERVICE",
      "namespace_name": "PRIVATE_NAMESPACE",
      "location": "REGION"
    }
  },
  "httpCheck": {
    "requestMethod": "GET"
  },
  "period": "60s",
  "timeout": "10s",
  "checker_type": "VPC_CHECKERS"
}'

Para criar uma verificação de tempo de atividade particular quando o Serviço do Diretório de serviços estiver no mesmo projeto do Google Cloud que a verificação de tempo de atividade, faça o seguinte:

  1. Defina o projeto padrão do Google Cloud para a CLI gcloud:

    gcloud config set project PROJECT_ID
    
  2. Crie uma variável de ambiente para armazenar o ID do projeto:

    export PROJECT_ID=$(gcloud config get-value core/project)
    
  3. Crie uma variável de ambiente com um token de acesso:

    export TOKEN=`gcloud auth print-access-token`
    
  4. Use a ferramenta curl para invocar o Método uptimeCheckConfigs.create e publicar um objeto de configuração nele:

    curl https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/uptimeCheckConfigs \
    -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    --request POST --data '{
    "displayName": "private-check-demo",
    "monitoredResource": {
      "type": "servicedirectory_service",
      "labels": {
        "project_id": "'"$PROJECT_ID"'",
        "service_name": "PRIVATE_SERVICE",
        "namespace_name": "PRIVATE_NAMESPACE",
        "location": "REGION"
      }
    },
    "httpCheck": {
      "requestMethod": "GET"
    },
    "period": "60s",
    "timeout": "10s",
    "checker_type": "VPC_CHECKERS"
    }'
    

Se a criação da verificação de tempo de atividade falhar, confirme se o tem os papéis necessários. Para mais informações, consulte Falha na criação da verificação de tempo de atividade.

API: projeto monitorado

Para criar a configuração de uma verificação de tempo de atividade particular, crie um objeto UptimeCheckConfig e transmita esse para o método uptimeCheckConfigs.create na API Cloud Monitoring.

O objeto UptimeCheckConfig de uma verificação de tempo de atividade particular é diferente do objeto para uma verificação de tempo de atividade pública das seguintes maneiras:

  • O recurso monitorado especificado na configuração da verificação de tempo de atividade precisa ser do tipo servicedirectory_service. Este tipo de recurso tem os seguintes rótulos:

    • project_id: o ID do projeto associado ao Diretório de serviços.
    • location: a região do Google Cloud associada ao serviço.
    • namespace_name: o namespace do Diretório de serviços.
    • service_name: o nome do serviço do Diretório de serviços.
    .
  • Não é preciso especificar um valor port na configuração da verificação de tempo de atividade. O valor da porta das modificações de endpoint do Diretório de serviços qualquer valor definido na configuração da verificação de tempo de atividade, e ela falhará se nenhuma porta foi especificada na configuração do Diretório de serviços.

  • A configuração da verificação de tempo de atividade precisa especificar o campo checker_type com o valor VPC_CHECKERS. Este valor é obrigatório para o tempo de atividade particular e verificações de tempo de atividade. Por padrão, as verificações de tempo de atividade são públicas. não é necessário especificar esse campo.

O código JSON a seguir ilustra um objeto UptimeCheckConfig para um verificações de tempo de atividade particulares usando os recursos do Diretório de serviços configurados para uma instância de VM em uma rede privada:

{
  "displayName": "private-check-demo",
  "monitoredResource": {
    "type": "servicedirectory_service",
    "labels": {
      "project_id": "SERVICE_DIRECTORY_PROJECT_ID",
      "service_name": "PRIVATE_SERVICE",
      "namespace_name": "PRIVATE_NAMESPACE",
      "location": "REGION"
    }
  },
  "httpCheck": {
    "requestMethod": "GET"
  },
  "period": "60s",
  "timeout": "10s",
  "checker_type": "VPC_CHECKERS"
}'

Para criar uma verificação de tempo de atividade particular quando o O serviço do Diretório de serviços está em um projeto do Google Cloud que é monitorada pelo escopo de métricas da verificação projeto do Google Cloud, faça o seguinte:

  1. Configurar a CLI gcloud como padrão para o projeto do Google Cloud em que a verificação de tempo de atividade será criada:

    gcloud config set project PROJECT_ID
    
  2. Crie uma variável de ambiente para armazenar o ID do projeto:

    export PROJECT_ID=$(gcloud config get-value core/project)
    
  3. Crie uma variável de ambiente para armazenar o ID do projeto da Projeto do Google Cloud em que o serviço do Diretório de serviços está definido:

    export MONITORED_PROJECT_ID=MONITORED_PROJECT_ID
    

    O projeto precisa estar no escopo de métricas da verificação projeto.

  4. Crie uma variável de ambiente com um token de acesso:

    export TOKEN=`gcloud auth print-access-token`
    
  5. Use a ferramenta curl para invocar o Método uptimeCheckConfigs.create e publicar um objeto de configuração nele:

    curl https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/uptimeCheckConfigs \
    -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    --request POST --data '{
    "displayName": "private-check-demo",
    "monitoredResource": {
      "type": "servicedirectory_service",
      "labels": {
        "project_id": "'"$MONITORED_PROJECT_ID"'",
        "service_name": "PRIVATE_SERVICE",
        "namespace_name": "PRIVATE_NAMESPACE",
        "location": "REGION"
      }
    },
    "httpCheck": {
      "requestMethod": "GET"
    },
    "period": "60s",
    "timeout": "10s",
    "checker_type": "VPC_CHECKERS"
    }'
    

Se a criação da verificação de tempo de atividade falhar, confirme se o tem os papéis necessários. Para mais informações, consulte Falha na criação da verificação de tempo de atividade.

Pode haver um atraso de até cinco minutos antes que os resultados da verificação de tempo de atividade comecem a ser transmitidos para o Monitoring. Durante esse tempo, o painel da verificação de tempo de atividade informa o status como "no data available".

Etapas de pré-requisito

Se você planeja usar a interface do console do Google Cloud, Depois acesse Criar uma verificação de tempo de atividade particular. O O console do Google Cloud vai orientar você em todas as etapas de pré-requisito.

Se você planeja usar linha de comando para configurar as verificações de tempo de atividade particulares, Conclua as etapas a seguir antes de criar a verificação de tempo de atividade:

  1. Configurar recursos do Diretório de serviços
  2. Autorizar a conta de serviço
  3. Configurar regras de firewall

Configurar recursos do Diretório de serviços

As verificações de tempo de atividade particulares determinam a disponibilidade de um recurso usando uma endereço IP interno registrado por uma Diretório de serviços. É possível configurar um Diretório de serviços para os seguintes recursos:

  • VMs em uma rede privada
  • Balanceadores de carga internos L4 (ILBs, na sigla em inglês)

Para usar verificações de tempo de atividade particulares, você precisa configurar o seguinte: Recursos do Diretório de serviços:

  • Endpoint: um endpoint é um par de endereços IP e valores de porta que que um serviço pode usar para lidar com solicitações. Quando seu serviço contém várias endpoints, um endpoint é escolhido aleatoriamente.
  • Serviço: um serviço é uma coleção de endpoints que fornecem um conjunto de comportamentos. Os serviços são os destinos das verificações de tempo de atividade privadas.
  • Namespace: um namespace contém um conjunto de nomes de serviço e os respectivos endpoints. os namespaces permitem agrupar serviços para garantir de projetos.

É possível configurar esses recursos com a CLI gcloud ou console do Google Cloud. Quando você usa o console, as etapas de configuração estão incluídas na caixa de diálogo Criar verificação de tempo de atividade.

Console do Google Cloud

Quando você usa o console do Google Cloud, depois de selecionar IP interno como o tipo de recurso para uma verificação de tempo de atividade, será preciso criar um Diretório de serviços e um serviço.

CLI gcloud - VM

Para obter informações sobre os comandos usados neste documento para serviços, namespaces e endpoints, consulte a Grupo de comandos gcloud service-directory.

Para criar recursos do Diretório de serviços para uma VM, faça o seguinte:

  1. Configurar a Google Cloud CLI para usar como padrão o projeto do Google Cloud em que os recursos do Diretório de serviços devem ser criados:

    gcloud config set project PROJECT_ID
    
  2. Crie variáveis de ambiente para armazenar o ID e o número do projeto:

    export PROJECT_ID=$(gcloud config get-value core/project)
    
    export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
    
  3. Crie um namespace do Diretório de serviços:

    gcloud service-directory namespaces create PRIVATE_NAMESPACE --location=REGION
    
  4. Crie um serviço do Diretório de serviços no namespace:

    gcloud service-directory services create PRIVATE_SERVICE \
    --namespace PRIVATE_NAMESPACE --location=REGION
    
  5. Crie uma variável de ambiente para armazenar o endereço IP da VM na rede privada:

    export INTERNAL_IP=$(gcloud compute instances describe --zone=ZONE \
    PRIVATE_SERVICE_INSTANCE --format='get(networkInterfaces[0].networkIP)')
    
  6. Crie um endpoint do Diretório de serviços que contenha o endereço IP interno e uma porta:

    gcloud service-directory endpoints create PRIVATE_ENDPOINT \
    --location=REGION --namespace=PRIVATE_NAMESPACE \
    --service=PRIVATE_SERVICE \
    --network=projects/$PROJECT_NUMBER/locations/global/networks/PRIVATE_CHECK_NETWORK \
    --address=$INTERNAL_IP --port=80
    

CLI gcloud: ILB L4

Para obter informações sobre os comandos usados neste documento para serviços, namespaces e endpoints, consulte a Grupo de comandos gcloud service-directory.

É possível usar verificações de tempo de atividade privadas para monitorar a disponibilidade de um sistema interno L4 balanceador de carga (ILB) com a criação de recursos do Diretório de serviços para o ILB L4.

Ao criar novos ILBs L4, é possível usar a integração automática fornecida pelo Diretório de serviços para mais informações, consulte Configurar balanceadores de carga internos no Diretório de serviços para mais informações.

Se você tiver ILBs L4 que foram criados sem usar a integração automática pelo Diretório de serviços, poderá configurar manualmente os recursos do Diretório de serviços fazendo o seguinte:

  1. Configurar a Google Cloud CLI para usar como padrão o projeto do Google Cloud em que os recursos do Diretório de serviços devem ser criados:

    gcloud config set project PROJECT_ID
    
  2. Crie variáveis de ambiente para armazenar o ID e o número do projeto:

    export PROJECT_ID=$(gcloud config get-value core/project)
    
    export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
    
  3. Para permitir que todos os verificadores de tempo de atividade transfiram dados para seu ILB L4, ative o acesso global ao ILB:

    gcloud compute forwarding-rules update ILB_FORWARDING_RULE_NAME \
    --region=ILB_REGION --allow-global-access
    

    Caso seu ILB L4 não permita o acesso global, as métricas de tempo de atividade são disponível somente se ILB_REGION for uma das seguintes opções:

    • us-east4
    • us-central1
    • us-west1
    • europe-west1
    • southamerica-east1
    • asia-southeast1
  4. Crie um namespace do Diretório de serviços:

    gcloud service-directory namespaces create PRIVATE_NAMESPACE_FOR_ILB\
    --location=REGION
    
  5. Crie um serviço do Diretório de serviços no namespace:

    gcloud service-directory services create PRIVATE_SERVICE_FOR_ILB \
    --namespace PRIVATE_NAMESPACE_FOR_ILB --location=REGION
    
  6. Crie uma variável de ambiente para armazenar o endereço IP do balanceador de carga na rede privada:

    export INTERNAL_IP=$( gcloud compute forwarding-rules describe ILB_FORWARDING_RULE_NAME\
    --region=ILB_REGION --format='get(IPAddress)')
    
  7. Crie um endpoint do Diretório de serviços que contenha o endereço IP interno e uma porta:

    gcloud service-directory endpoints create PRIVATE_ENDPOINT_FOR_ILB \
    --location=ILB_REGION --namespace=PRIVATE_NAMESPACE_FOR_ILB \
    --service=PRIVATE_SERVICE_FOR_ILB \
    --network=projects/$PROJECT_NUMBER/locations/global/networks/PRIVATE_CHECK_NETWORK \
    --address=$INTERNAL_IP --port=80
    

Autorizar a conta de serviço

As verificações de tempo de atividade usam uma conta de serviço do Monitoring para gerenciar interações com o serviço do Diretório de serviços. O nome da conta de serviço tem o seguinte formato:

service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com

Quando essa conta de serviço não existe, o Monitoring cria a conta de serviço ao criar a verificação de tempo de atividade particular. Você não pode criar esta conta de serviço.

Quando você cria uma verificação de tempo de atividade particular, o Monitoring tenta para conceder à conta de serviço dois papéis do Diretório de serviços. No entanto, quando você usa a API, as configurações do seu projeto do Google Cloud podem impedem que o Monitoring conceda papéis à conta de serviço. Nessa situação, a criação da verificação de tempo de atividade falha.

Esta seção descreve como conceder os papéis necessários a uma conta de serviço atual:

Console do Google Cloud

Quando você usa o console do Google Cloud, depois de selecionar IP interno como o tipo de recurso para uma verificação de tempo de atividade, você terá que autorizar o conta de serviço.

API: projeto do escopo

Para conceder os papéis do Diretório de serviços a uma conta de serviço atual, faça o seguinte:

  1. Configurar a CLI gcloud como padrão para o projeto do Google Cloud em que a verificação de tempo de atividade será criada:

    gcloud config set project PROJECT_ID
    
  2. Crie variáveis de ambiente para armazenar o ID e o número do projeto:

    export PROJECT_ID=$(gcloud config get-value core/project)
    
    export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
    
  3. Execute os comandos a seguir:

    gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \
    --role='roles/servicedirectory.viewer'
    
    gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \
    --role='roles/servicedirectory.pscAuthorizedService'
    

    Os comandos anteriores concedem os seguintes papéis à conta de serviço:

    • roles/servicedirectory.viewer
    • roles/servicedirectory.pscAuthorizedService

API: projeto monitorado

Para conceder os papéis do Diretório de serviços a uma conta de serviço atual, faça o seguinte:

  1. Configurar a CLI gcloud como padrão para o projeto do Google Cloud em que a verificação de tempo de atividade será criada:

    gcloud config set project PROJECT_ID
    
  2. Crie variáveis de ambiente para armazenar o ID e o número do projeto:

    export PROJECT_ID=$(gcloud config get-value core/project)
    
    export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
    
  3. Crie uma variável de ambiente e mantenha o ID do projeto em que o serviço do Diretório de serviços está definido:

    export MONITORED_PROJECT_ID=MONITORED_PROJECT_ID
    

    O projeto precisa estar no escopo de métricas da verificação projeto.

  4. Crie uma variável de ambiente e mantenha o ID do projeto em que a rede está definida:

    export NETWORK_PROJECT_ID=NETWORK_PROJECT_ID
    

    Este projeto não precisa estar no escopo de métricas do do projeto da verificação de tempo de atividade.

  5. Execute os comandos a seguir:

    gcloud projects add-iam-policy-binding $MONITORED_PROJECT_ID \
    --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \
    --role='roles/servicedirectory.viewer'
    
    gcloud projects add-iam-policy-binding $NETWORK_PROJECT_ID \
    --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \
    --role='roles/servicedirectory.pscAuthorizedService'
    

    Os comandos anteriores concedem os seguintes papéis à conta de serviço:

    • roles/servicedirectory.viewer para o projeto monitorado em que o o serviço do Diretório de serviços está configurado, $SERVICE_MONITORED_PROJECT_ID.
    • roles/servicedirectory.pscAuthorizedService para o projeto em que a rede privada está configurada ($NETWORK_PROJECT_ID).

Configurar regras de firewall

crie uma regra de firewall que permita o tráfego TCP de entrada das rotas 35.199.192.0/19. Uma rota de 35.199.192.0/19 suporta conectividade com de encaminhamento de chamadas que usam roteamento particular. Para mais consulte Rotas de VPC.

Console do Google Cloud

Quando você usa o console do Google Cloud, depois de selecionar IP interno como o tipo de recurso para uma verificação de tempo de atividade, você terá que configurar o regras de firewall.

CLI da gcloud

Para criar uma regra de firewall que permita o tráfego TCP de entrada pelo firewall para acesso à rede privada, execute o seguinte comando:

  1. Configurar a CLI gcloud como padrão para o projeto do Google Cloud em que a verificação de tempo de atividade será criada:

    gcloud config set project PROJECT_ID
    
  2. Crie variáveis de ambiente para armazenar o ID e o número do projeto:

    export PROJECT_ID=$(gcloud config get-value core/project)
    
  3. Crie a regra de rede:

    gcloud compute firewall-rules create PRIVATE_CHECK_NETWORK_HOPE_RULE \
    --network="PRIVATE_CHECK_NETWORK"  \
    --action=allow   --direction=ingress   --source-ranges="35.199.192.0/19" \
    --rules=tcp   --project="$PROJECT_ID"
    

    No comando anterior, PRIVATE_CHECK_NETWORK é a rede em que essa regra está anexado, e PRIVATE_CHECK_NETWORK_HOPE_RULE é o nome da regra de firewall.

Para mais informações sobre essa etapa, consulte Configure o projeto de rede.

Limitações

Ao usar verificações de tempo de atividade particulares, a validação de certificados SSL é desativada, independentemente da configuração.

As verificações de tempo de atividade particular não são compatíveis com endpoints com redirecionamentos.

Solução de problemas

Esta seção descreve alguns erros que você pode encontrar ao usar verificações de tempo de atividade particulares e fornece informações para resolvê-las.

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

As configurações do seu 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 aos quais a conta de serviço requer:

Console do Google Cloud

Ao usar 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 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ços e recursos privados do Diretório de serviços em um único projeto do Google Cloud, a solicitação poderá ser bem-sucedida ou não. O resultado depende de você desativaram as concessões automáticas de papéis para contas de serviço; no seu projeto:

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

  • A primeira criação da verificação de tempo de atividade vai falhar se o projeto não permitir concessões automáticas de papéis para contas de serviço. Uma conta de serviço é é criado, 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 novamente.

API: projeto monitorado

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

A forma como você autoriza a conta de serviço depende do número de Os projetos do Google Cloud que você usa e as relações deles. É 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 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, configurada. Este projeto não tem papel na autorização da conta de serviço discutidos 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 novamente.

Acesso negado

Suas verificações de tempo de atividade estão falhando e gerando VPC_ACCESS_DENIED resultados. Este resultado significa que algum aspecto da configuração de rede ou da conta de serviço autorização não está correta.

Verifique a autorização da sua conta de serviço para usar um escopo ou um projeto monitorado, conforme descrito Falha na criação da verificação de tempo de atividade.

Para mais informações sobre como acessar redes privadas, consulte Configure o projeto de rede.

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

Você tem um serviço do Diretório de serviços com várias VMs e a 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 a configuração de serviço contém vários endpoints, um é escolhidos aleatoriamente. Se a VM associada ao endpoint escolhido estiver em execução, A verificação de tempo de atividade é concluída 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 se você tiver substituído os valores padrão do cabeçalho.

Quando uma solicitação de verificação de tempo de atividade particular é enviada 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 da postagem de tempo de atividade

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

  • A verificação de tempo de atividade informa 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 seu a verificação de tempo de atividade está em um projeto do Google Cloud diferente Diretório de serviços.

Confirme se o projeto do Google Cloud que contém a verificação de tempo de atividade monitora o projeto do Google Cloud que contém as Diretório de serviços.

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

A seguir