Neste documento, descrevemos como configurar uma verificação de tempo de atividade privada. As verificações de tempo de atividade privadas permitem solicitações HTTP ou TCP em uma rede de nuvem privada virtual (VPC) do cliente, aplicando 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 (ILB) L4.
Os endereços IP internos dos recursos na rede privada são registrados pelos serviços do Service Directory com o acesso de rede privada ativado. Para usar verificações de tempo de atividade privadas, configure o acesso à rede privada usando o produto Diretório de serviços.
Os projetos Google Cloud e Google Cloud , que armazenam a verificação de disponibilidade privada e o serviço do Service Directory, respectivamente, podem ser diferentes. Com o Cloud Monitoring, é possível monitorar recursos em vários projetosGoogle Cloud usando um escopo de métricas. O projeto em que a verificação de tempo de atividade é definida é o projeto de escopo de um escopo de métricas. O escopo de métricas é uma lista de todos os projetos que o projeto de escopo monitora. O serviço do Service Directory pode ser definido no projeto de escopo ou em um projeto no escopo de métricas. Para mais informações sobre escopos de métricas, consulte Visão geral dos escopos de métricas.
A rede particular e os recursos dela, como VMs ou balanceadores de carga, também podem estar em um projeto Google Cloud diferente. Não é necessário que ele esteja no escopo de métricas do projeto de escopo da verificação de tempo de atividade. O serviço do Service Directory coleta as métricas de tempo de atividade. Portanto, ele precisa estar no escopo de métricas, mas os recursos que ele encapsula não precisam.
Neste documento, descrevemos como configurar uma rede privada e configurar recursos do Service Directory para ela usando o console Google Cloud ou a API. Os exemplos de API pressupõem que a rede particular e o serviço do Service Directory estejam no projeto de escopo da verificação de disponibilidade. No entanto, Criar uma verificação de tempo de atividade privada também descreve como usar a API para criar uma verificação de tempo de atividade que usa um serviço do Service Directory no escopo de métricas.
Para informações sobre como configurar verificações de tempo de atividade que usam endereços IP públicos, consulte Criar verificações públicas de tempo de atividade. Para informações sobre como gerenciar e monitorar as verificações de tempo de atividade, consulte a seção Próximos passos deste documento.
Esse recurso só é compatível com projetos Google Cloud . Para configurações do App Hub, selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta habilitada para apps.
Antes de começar
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 o consoleGoogle Cloud . As guias a seguir descrevem como instalar a gcloud CLI e ativar a API Cloud Monitoring:
Console do Google Cloud
No console Google Cloud , selecione o projeto Google Cloud em que você quer ativar a API e acesse a página APIs e serviços:
Clique no botão Ativar APIs e serviço.
Pesquise "Monitoring".
Nos resultados da pesquisa, clique em "API Stackdriver Monitoring".
Se for exibido "API ativada", a API já está ativada. Caso contrário, clique em Ativar.
CLI da gcloud
Se você ainda não instalou a Google Cloud CLI na sua estação de trabalho, consulte Como instalar a CLI gcloud.
Para verificar se a API Monitoring está ativada, execute o seguinte comando 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.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
.
Você pode usar as mesmas etapas para ativar as outras APIs:
- Para usar o console 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
.
- API Cloud Monitoring:
Configure os canais de notificação que você quer usar para receber notificações. Recomendamos que você crie vários tipos de canais de notificação. Para saber mais, consulte Criar e gerenciar canais de notificação.
Configure uma rede particular e uma VM ou um ILB para ter acesso a essa rede particular. Para mais informações, consulte Acesso a serviços privados.
As verificações particulares que segmentam ILBs são limitadas às regiões com verificadores de tempo de atividade. A região de verificação de tempo de atividade
USA
inclui as regiõesUSA_OREGON
,USA_IOWA
eUSA_VIRGINIA
. Cada uma das regiõesUSA_*
tem um verificador, eUSA
inclui todos os três. As outras regiões de verificação de tempo de atividade,EUROPE
,SOUTH_AMERICA
eASIA_PACIFIC
, têm um verificador cada uma. Para remover essa limitação, configure o acesso global ao balanceador de carga. Para mais informações sobre como configurar o acesso global, consulte a guia ILB na seção Configurar recursos do Service Directory deste documento.Se você planeja verificar um ILB que não permite acesso global, selecione uma das seguintes regiões para ele:
us-east4
us-central1
us-west1
europe-west1
southamerica-east1
asia-southeast1
Determine qual interface usar:
Google Cloud console: permite criar uma verificação de tempo de atividade quando uma VM está atendendo solicitações. Essa interface orienta você na configuração dos recursos do Service Directory, na autorização da conta de serviço e na configuração das regras de firewall de rede.
Interfaces de linha de comando: é possível usar a CLI do Google Cloud e a API Cloud Monitoring para criar verificações de tempo de atividade particulares quando ILBs e VMs estão atendendo solicitações.
Se você planeja usar a linha de comando para configurar suas verificações de tempo de atividade particulares, siga as etapas de pré-requisito.
Criar uma verificação particular de tempo de atividade
Nesta seção, explicamos como criar e configurar verificações de tempo de atividade privadas dos serviços do Service Directory:
Para usar o console do Google Cloud , selecione a guia console doGoogle Cloud .
Para usar a API Cloud Monitoring e configurar o serviço Service Directory no mesmo projeto Google Cloud da verificação de tempo de atividade, selecione a guia API: projeto de escopo.
Para usar a API Cloud Monitoring e configurar o serviço Service Directory para estar em um projeto monitorado pelo escopo de métricas do projeto da verificação de disponibilidade, selecione a guia API: projeto monitorado.
Console do Google Cloud
Para criar uma verificação de tempo de atividade usando o console Google Cloud , faça o seguinte:
-
No console 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 Monitoring.
- Na barra de ferramentas do console Google Cloud , selecione seu projeto Google Cloud . Para configurações do App Hub, selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta habilitada para apps.
Clique em Criar verificação de tempo de atividade.
Especifique uma verificação de tempo de atividade particular:
Selecione o protocolo, que pode ser HTTP, HTTPS ou TCP.
Escolha o tipo de recurso IP interno.
Se você não tiver um serviço do Service Directory configurado para seu projeto ou se quiser criar um serviço do Service Directory, clique em Visualizar e preencha o painel Pré-requisitos da verificação privada de disponibilidade:
Se solicitado, ative a API Compute Engine ou a API Service Directory. A ativação das APIs pode levar um minuto para ser concluída.
Expanda arrow_drop_down Conta de serviço, se mostrado, e clique em Criar conta de serviço.
Quando uma conta de serviço do Monitoring não existe, uma é criada. Em seguida, o Monitoring concede à conta de serviço dois papéis do Service Directory.
Abra o menu arrow_drop_down Service Directory e faça o seguinte:
- Expanda arrow_drop_down Região e selecione a região da VM que está atendendo às solicitações.
- Expanda arrow_drop_down Namespace e selecione um namespace do Diretório de serviços ou clique em Criar namespace.
- Clique em Nome do serviço e digite um nome. Os serviços são os destinos das verificações particulares de tempo de atividade.
- Clique em Nome do endpoint e insira um nome para o endpoint. Um endpoint é um par de valores de endereço IP e porta que um serviço pode usar para processar solicitações. Quando o serviço tem vários endpoints, um deles é escolhido aleatoriamente.
- Abra arrow_drop_down Rede e selecione sua rede particular.
- Expanda arrow_drop_down Instância e selecione a VM na rede particular que está atendendo às solicitações. Depois que você selecionar a instância, o endereço IP interno dela será exibido.
- Clique em Concluído.
Expanda arrow_drop_down Regras de firewall:
Expanda arrow_drop_down Rede e selecione a rede a que a regra de rede está anexada.
Clique em Criar regras de firewall.
A regra de firewall permite o tráfego TCP de entrada das rotas 35.199.192.0/19. Uma rota de 35.199.192.0/19 oferece suporte à conectividade com destinos de encaminhamento que usam roteamento privado. Para mais informações, consulte Rotas da VPC.
No painel Verificação de tempo de atividade privada, para especificar o serviço do Diretório de serviços a ser usado, faça o seguinte:
Selecione Usar um nome de serviço totalmente qualificado e insira o nome totalmente 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 os menus. Se você criou um serviço, esses campos são selecionados automaticamente.
No painel Verificação de tempo de atividade privada, conclua a descrição do destino da verificação de tempo de atividade:
Opcional: insira um componente de caminho para a solicitação.
As verificações de tempo de atividade privadas que usam o protocolo HTTP ou HTTPS enviam uma solicitação para
http://target/path
. Nessa expressão,target
é o endereço IP interno configurado no endpoint do Service Directory.Se você deixar o campo Caminho em branco ou definir o valor como
/
, a solicitação será emitida comohttp://target/
.Opcional: para definir a frequência com que a verificação de tempo de atividade é executada, use o campo Frequência de verificação.
Opcional: para selecionar regiões do verificador ou configurar autenticação, cabeçalhos para verificações HTTP e HTTPS e outros valores, clique em Mais opções de destino:
- 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 verificadores. A configuração padrão, Global, inclui todas as regiões.
- Método de solicitação: selecione
GET
ouPOST
. - Corpo: para verificações HTTP
POST
, insira o corpo codificado em URL. Você precisa fazer a codificação por conta própria. Para todas as outras verificações, deixe esse campo vazio. - Cabeçalho do host: não defina esse campo ao configurar verificações de tempo de atividade particulares.
- Porta: qualquer valor definido aqui substitui a porta na configuração do endpoint do Diretório de serviços. Não defina um valor aqui se quiser que a configuração do endpoint seja usada.
- Cabeçalhos personalizados: forneça cabeçalhos personalizados e, se quiser, criptografe-os. 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.
Clique em Continuar e configure os requisitos de resposta. Todas as configurações nesta seção têm valores padrão:
Para definir um período de tempo limite para a verificação de tempo de atividade, use o campo Tempo limite de resposta. Uma verificação de tempo de atividade falhará se nenhuma resposta for recebida de mais de um local dentro desse período.
Para configurar a verificação de tempo de atividade para realizar a correspondência de conteúdo, verifique se o rótulo do botão é 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 de conteúdo seja Contém. A verificação de tempo de atividade será bem-sucedida somente quando os dados da resposta contiveremabcd
. Para mais informações, consulte Validar dados de resposta. - Digite o Conteúdo da resposta. O conteúdo da resposta precisa ser uma string com até 1.024 bytes. Na API, esse campo é o objeto
ContentMatcher
.
- 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
Para impedir que entradas de registro sejam criadas devido a verificações de tempo de atividade, desmarque Registrar falhas de verificação.
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 marcam qualquer resposta
2xx
como bem-sucedida.
Clique em Continuar e configure as 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 configure canais de notificação para ela:
- Opcional: atualize o nome da política de alertas.
- Opcional: no campo Duração, selecione por quanto tempo as verificações de tempo de atividade precisam falhar antes que as notificações sejam enviadas. Por padrão, as notificações são enviadas quando pelo menos duas regiões informam falhas de verificação de tempo de atividade por um período de pelo menos um minuto.
Na caixa Canais de notificação, expanda arrow_drop_down Menu, selecione os canais que você quer adicionar 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, verifique se o texto do botão de alternância é Não criar um alerta.
Clique em Continuar e conclua a verificação de tempo de atividade:
Insira um título descritivo para a verificação de tempo de atividade.
Opcional: para adicionar rótulos definidos pelo usuário à verificação de tempo de atividade, faça o seguinte:
- Clique em expand_more Mostrar identificadores dos usuários.
- No campo Chave, insira 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, números, sublinhados e traços. Por exemplo, insira
severity
. - No campo Valor, insira um valor para o rótulo. Os valores de rótulo podem conter letras minúsculas, números, sublinhados e traços. Por exemplo, insira
critical
. - Para cada rótulo adicional, clique em Adicionar rótulo do usuário e insira a chave e o valor do rótulo.
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 a configuração e repita a etapa de verificação.
Clique em Criar.
API: projeto de escopo
Para criar a configuração de uma verificação de tempo de atividade privada, crie um objeto
UptimeCheckConfig
e transmita-o ao método uptimeCheckConfigs.create
na API Cloud Monitoring.
O objeto UptimeCheckConfig
de uma verificação de tempo de atividade particular difere do objeto de uma verificação de tempo de atividade pública das seguintes maneiras:
O recurso monitorado especificado na configuração de verificação de tempo de atividade precisa ser do tipo
servicedirectory_service
. Esse tipo de recurso tem os seguintes rótulos:project_id
: o ID do projeto associado ao serviço do Service Directory.location
: a região da nuvem associada ao serviço.namespace_name
: o namespace do Service Directory.service_name
: o nome do serviço do Service Directory.
Não é necessário especificar um valor
port
na configuração da verificação de tempo de atividade. O valor da porta do endpoint do Diretório de serviços substitui qualquer valor definido na configuração de verificação de tempo de atividade, e a verificação falha se nenhuma porta for especificada na configuração do Diretório de serviços.A configuração de verificação de tempo de atividade precisa especificar o campo
checker_type
com o valorVPC_CHECKERS
. Esse valor é obrigatório para verificações privadas de tempo de atividade. Por padrão, as verificações de tempo de atividade são públicas, então não é necessário especificar esse campo.
O código JSON a seguir ilustra um objeto UptimeCheckConfig
para uma verificação de tempo de atividade particular usando os recursos do Service Directory configurados para uma instância de VM em uma rede particular:
{ "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 Google Cloud que a verificação de tempo de atividade, faça o seguinte:
Defina o projeto Google Cloud padrão para a CLI gcloud:
gcloud config set project PROJECT_ID
Crie uma variável de ambiente para armazenar o ID do projeto:
export PROJECT_ID=$(gcloud config get-value core/project)
Crie uma variável de ambiente para armazenar um token de acesso:
export TOKEN=`gcloud auth print-access-token`
Use a ferramenta
curl
para invocar o métodouptimeCheckConfigs.create
e postar 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, verifique se a conta de serviç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 privada, crie um objeto
UptimeCheckConfig
e transmita-o ao método uptimeCheckConfigs.create
na API Cloud Monitoring.
O objeto UptimeCheckConfig
de uma verificação de tempo de atividade particular difere do objeto de uma verificação de tempo de atividade pública das seguintes maneiras:
O recurso monitorado especificado na configuração de verificação de tempo de atividade precisa ser do tipo
servicedirectory_service
. Esse tipo de recurso tem os seguintes rótulos:project_id
: o ID do projeto associado ao serviço do Service Directory.location
: a região da nuvem associada ao serviço.namespace_name
: o namespace do Service Directory.service_name
: o nome do serviço do Service Directory.
Não é necessário especificar um valor
port
na configuração da verificação de tempo de atividade. O valor da porta do endpoint do Diretório de serviços substitui qualquer valor definido na configuração de verificação de tempo de atividade, e a verificação falha se nenhuma porta for especificada na configuração do Diretório de serviços.A configuração de verificação de tempo de atividade precisa especificar o campo
checker_type
com o valorVPC_CHECKERS
. Esse valor é obrigatório para verificações privadas de tempo de atividade. Por padrão, as verificações de tempo de atividade são públicas, então não é necessário especificar esse campo.
O código JSON a seguir ilustra um objeto UptimeCheckConfig
para uma verificação de tempo de atividade particular usando os recursos do Service Directory configurados para uma instância de VM em uma rede particular:
{ "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 em um projeto Google Cloud monitorado pelo escopo de métricas do projetoGoogle Cloud da verificação de tempo de atividade, faça o seguinte:
Configure a CLI gcloud para usar por padrão o projeto Google Cloud em que a verificação de tempo de atividade será criada:
gcloud config set project PROJECT_ID
Crie uma variável de ambiente para armazenar o ID do projeto:
export PROJECT_ID=$(gcloud config get-value core/project)
Crie uma variável de ambiente para armazenar o ID do projeto Google Cloud project em que o serviço do Service Directory está definido:
export MONITORED_PROJECT_ID=MONITORED_PROJECT_ID
Esse projeto precisa estar no escopo de métricas do projeto da verificação de tempo de atividade.
Crie uma variável de ambiente para armazenar um token de acesso:
export TOKEN=`gcloud auth print-access-token`
Use a ferramenta
curl
para invocar o métodouptimeCheckConfigs.create
e postar 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, verifique se a conta de serviç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 Google Cloud , acesse Criar uma verificação de tempo de atividade privada. O consoleGoogle Cloud guia você por todas as etapas de pré-requisito.
Se você planeja usar a linha de comando para configurar suas verificações de tempo de atividade particulares, siga estas etapas antes de criar a verificação:
Configurar recursos do Service Directory
As verificações de tempo de atividade particulares determinam a disponibilidade de um recurso usando um endereço IP interno registrado por um serviço do Diretório de serviços. É possível configurar um Service Directory para os seguintes recursos:
- VMs em uma rede particular
- Balanceadores de carga internos (ILBs) L4
Para usar verificações de tempo de atividade particulares, configure os seguintes recursos do Diretório de serviços:
- Endpoint: um endpoint é um par de valores de endereço IP e porta que um serviço pode usar para processar solicitações. Quando o serviço tem vários endpoints, um deles é escolhido aleatoriamente.
- Serviço: um serviço é um conjunto de endpoints que fornecem um conjunto de comportamentos. Os serviços são os destinos das verificações particulares de tempo de atividade.
- Namespace: um namespace contém um conjunto de nomes de serviço e os endpoints associados. Os namespaces permitem agrupar serviços para um gerenciamento consistente.
É possível configurar esses recursos com a CLI gcloud ou o Google Cloud console. Ao usar o console, as etapas de configuração são incluídas na caixa de diálogo Criar verificação de tempo de atividade.
Console do Google Cloud
Ao usar o console Google Cloud , depois de selecionar IP interno como o tipo de recurso para uma verificação de tempo de atividade, você vai receber uma solicitação para criar um Diretório de serviços e um serviço.
gcloud CLI: VM
Para informações sobre os comandos usados neste documento para serviços, namespaces e endpoints, consulte o grupo de comandos gcloud service-directory
.
Para criar recursos do Service Directory para uma VM, faça o seguinte:
Configure a Google Cloud CLI para usar por padrão o projeto Google Cloud em que os recursos do Service Directory serão criados:
gcloud config set project PROJECT_ID
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)')
Crie um namespace do Diretório de serviços:
gcloud service-directory namespaces create PRIVATE_NAMESPACE --location=REGION
Crie um serviço do Service Directory no namespace:
gcloud service-directory services create PRIVATE_SERVICE \ --namespace PRIVATE_NAMESPACE --location=REGION
Crie uma variável de ambiente para armazenar o endereço IP da VM na rede particular:
export INTERNAL_IP=$(gcloud compute instances describe --zone=ZONE \ PRIVATE_SERVICE_INSTANCE --format='get(networkInterfaces[0].networkIP)')
Crie um endpoint do Service Directory 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
gcloud CLI: ILB de camada 4
Para informações sobre os comandos usados neste documento para serviços, namespaces e endpoints, consulte o grupo de comandos gcloud service-directory
.
É possível usar verificações de tempo de atividade particulares para monitorar a disponibilidade de um balanceador de carga interno (ILB) da camada 4 criando recursos do Service Directory para o ILB da camada 4.
Ao criar novos ILBs L4, você pode 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.
Se você tiver ILBs de camada 4 criados sem usar a integração automática fornecida pelo Diretório de serviços, configure manualmente os recursos do Diretório de serviços fazendo o seguinte:
Configure a Google Cloud CLI para usar por padrão o projeto Google Cloud em que os recursos do Service Directory serão criados:
gcloud config set project PROJECT_ID
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)')
Para permitir que todos os verificadores de tempo de atividade transfiram dados para o ILB L4, ative o acesso global ao ILB:
gcloud compute forwarding-rules update ILB_FORWARDING_RULE_NAME \ --region=ILB_REGION --allow-global-access
Se o ILB L4 não permitir acesso global, as métricas de tempo de atividade estarão disponíveis apenas se ILB_REGION for um dos seguintes:
us-east4
us-central1
us-west1
europe-west1
southamerica-east1
asia-southeast1
Crie um namespace do Diretório de serviços:
gcloud service-directory namespaces create PRIVATE_NAMESPACE_FOR_ILB\ --location=REGION
Crie um serviço do Service Directory no namespace:
gcloud service-directory services create PRIVATE_SERVICE_FOR_ILB \ --namespace PRIVATE_NAMESPACE_FOR_ILB --location=REGION
Crie uma variável de ambiente para armazenar o endereço IP do balanceador de carga na rede particular:
export INTERNAL_IP=$( gcloud compute forwarding-rules describe ILB_FORWARDING_RULE_NAME\ --region=ILB_REGION --format='get(IPAddress)')
Crie um endpoint do Service Directory 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 de propriedade do Monitoring para gerenciar interações com o serviço do Service Directory. 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 a cria quando você cria a verificação de tempo de atividade privada. Não é possível criar essa conta de serviço.
Ao criar uma verificação de disponibilidade privada, o Monitoring tenta conceder à conta de serviço dois papéis do Service Directory. No entanto, ao usar a API, as configurações do projeto Google Cloud podem impedir que o Monitoring conceda papéis à conta de serviço. Nessa situação, a criação da verificação de tempo de atividade falha.
Nesta seção, descrevemos como conceder os papéis necessários a uma conta de serviço atual:
Console do Google Cloud
Ao usar o console Google Cloud , depois de selecionar IP interno como o tipo de recurso para uma verificação de tempo de atividade, você vai receber uma solicitação para autorizar a conta de serviço.
API: projeto de escopo
Para conceder os papéis do Service Directory a uma conta de serviço atual, faça o seguinte:
Configure a CLI gcloud para usar por padrão o projeto Google Cloud em que a verificação de tempo de atividade será criada:
gcloud config set project PROJECT_ID
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)')
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 Service Directory a uma conta de serviço atual, faça o seguinte:
Configure a CLI gcloud para usar por padrão o projeto Google Cloud em que a verificação de tempo de atividade será criada:
gcloud config set project PROJECT_ID
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)')
Crie uma variável de ambiente para armazenar o ID do projeto em que o serviço do Service Directory está definido:
export MONITORED_PROJECT_ID=MONITORED_PROJECT_ID
Esse projeto precisa estar no escopo de métricas do projeto da verificação de tempo de atividade.
Crie uma variável de ambiente para manter o ID do projeto em que a rede está definida:
export NETWORK_PROJECT_ID=NETWORK_PROJECT_ID
Esse projeto não precisa estar no escopo de métricas do projeto da verificação de disponibilidade.
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 serviço do Service Directory 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
É necessário criar 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 oferece suporte à conectividade com destinos de encaminhamento que usam roteamento privado. Para mais informações, consulte Rotas da VPC.
Console do Google Cloud
Ao usar o console do Google Cloud , depois de selecionar IP interno como o tipo de recurso para uma verificação de tempo de atividade, você vai precisar configurar as 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:
Configure a CLI gcloud para usar por padrão o projeto Google Cloud em que a verificação de tempo de atividade será criada:
gcloud config set project PROJECT_ID
Crie variáveis de ambiente para armazenar o ID e o número do projeto:
export PROJECT_ID=$(gcloud config get-value core/project)
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 a que essa regra está anexada, enquanto PRIVATE_CHECK_NETWORK_HOPE_RULE é o nome da regra de firewall.
Para mais informações sobre esta etapa, consulte Configurar o projeto de rede.
Limitações
Ao usar verificações de tempo de atividade particulares, a validação de certificados SSL é desativada, independente da configuração.
As verificações de disponibilidade particulares não são compatíveis com endpoints que têm redirecionamentos.
Solução de problemas
Esta seção descreve alguns erros que podem ocorrer ao usar verificações de disponibilidade particulares e fornece informações para resolvê-los.
Falha na criação da verificação de tempo de atividade
As configurações do projeto Google Cloud podem impedir a modificação dos papéis atribuídos à conta de serviço usada pelas verificações de tempo de atividade para gerenciar interações com o serviço do Service Directory. Nessa situação, a criação da verificação de tempo de atividade falha.
Nesta seção, descrevemos como conceder os papéis necessários à conta de serviço:
Console do Google Cloud
Quando você usa o console Google Cloud para criar a verificação de tempo de atividade privada, o console Google Cloud emite os comandos para conceder os papéis do Diretório de serviços à conta de serviço.
Para informações sobre como conceder papéis a uma conta de serviço, consulte Autorizar a conta de serviço.
API: projeto de escopo
Na primeira vez que você cria uma verificação de disponibilidade privada para um serviço do Diretório de serviços e recursos particulares em um único projeto Google Cloud , a solicitação pode ser concluída ou falhar. O resultado depende de você ter desativado as concessões automáticas de papéis para contas de serviço no projeto:
A primeira criação de 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. Uma conta de serviço é criada para você e recebe os papéis necessários.
A primeira criação de verificação de tempo de atividade falha 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:
- Autorize a conta de serviço.
- Aguarde alguns minutos para que as permissões sejam propagadas.
- Tente criar a verificação particular de tempo de atividade novamente.
API: projeto monitorado
A primeira vez que você cria uma verificação de disponibilidade privada que tem como destino um serviço do Service Directory em um projeto monitorado ou recursos particulares em um projeto Google Cloud diferente, a solicitação falha e resulta na criação de uma conta de serviço do Monitoring.
A autorização da conta de serviço depende do número de projetosGoogle Cloud que você está usando e das relações entre eles. Você pode ter até quatro projetos envolvidos:
- O projeto em que você definiu a verificação particular de tempo de atividade.
- O projeto monitorado em que você configurou o serviço do Service Directory.
- 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. Esse projeto não tem função 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:
- Autorize a conta de serviço.
- Aguarde alguns minutos para que as permissões sejam propagadas.
- Tente criar a verificação particular de tempo de atividade novamente.
Acesso negado
Suas verificações de tempo de atividade estão falhando com resultados VPC_ACCESS_DENIED
. Isso 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 disponibilidade.
Para mais informações sobre como acessar redes particulares, consulte Configurar o projeto de rede.
Resultados anômalos de verificações particulares de tempo de atividade
Você tem um serviço do Service Directory com várias VMs, e a configuração do serviço contém vários endpoints. Quando você desliga uma das VMs, a verificação de tempo de atividade ainda indica sucesso.
Quando a configuração do 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
Suas verificações de tempo de atividade estão retornando erros ou resultados inesperados. Isso pode acontecer se você tiver substituído os valores de cabeçalho padrão.
Quando uma solicitação de uma verificação de disponibilidade privada é enviada a um endpoint de destino, ela 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 de postagem de tempo de atividade |
Se você tentar substituir esses valores, poderá acontecer o seguinte:
- 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
Nenhum dado aparece no painel de verificação de tempo de atividade quando a verificação está em um projeto Google Cloud diferente do serviço do Diretório de serviços.
Verifique se o projeto Google Cloud que contém a verificação de tempo de atividade monitora o projeto Google Cloud que contém o serviço do Service Directory.
Para mais informações sobre como listar projetos monitorados e adicionar outros, consulte Configurar um escopo de métricas para vários projetos.
A seguir
- Gerenciar verificações de tempo de atividade
- Criar políticas de alertas para verificações de tempo de atividade
- Criar gráficos de métricas de verificação de tempo de atividade
- Preços e limites