Este documento descreve como configurar uma verificação do tempo de atividade privada. As verificações de tempo de atividade privadas permitem pedidos HTTP ou TCP numa rede da nuvem virtual privada (VPC) do cliente, ao mesmo tempo que aplicam restrições da gestão de identidade e de acesso (IAM) e perímetros dos VPC Service Controls. As verificações de tempo de atividade privadas podem enviar pedidos através da rede privada para recursos, como uma máquina virtual (VM) ou um equilibrador de carga interno (ILB) de nível 4.
Os endereços IP internos dos recursos na rede privada são registados pelos serviços do Service Directory com o acesso à rede privada ativado. Para usar verificações de tempo de atividade privadas, tem de configurar o acesso à rede privada através do produto Service Directory.
O Google Cloud projeto que armazena a verificação de tempo de atividade privada e o Google Cloud projeto que armazena o serviço do Service Directory podem ser projetos diferentes. O Cloud Monitoring permite-lhe monitorizar recursos em váriosGoogle Cloud projetos a partir de um projeto através de um âmbito de métricas. O projeto no qual a verificação de tempo de atividade está definida é o projeto de âmbito de um âmbito de métricas. O âmbito de métricas é uma lista de todos os projetos que o projeto de âmbito monitoriza. O serviço Service Directory pode ser definido no projeto de âmbito ou num projeto no âmbito das métricas. Para mais informações sobre os âmbitos das métricas, consulte o artigo Vista geral dos âmbitos das métricas.
A rede privada e os respetivos recursos, como VMs ou balanceadores de carga, também podem estar num Google Cloud projeto diferente. Este projeto não tem de estar no âmbito das métricas do projeto de âmbito da verificação de tempo de atividade. O serviço Service Directory recolhe as métricas de tempo de atividade, pelo que tem de estar no âmbito das métricas, mas os recursos que encapsula não.
Este documento descreve como configurar uma rede privada e configurar os recursos do Service Directory para a mesma através da Google Cloud consola ou da API. Os exemplos de API pressupõem que a rede privada e o serviço do Service Directory estão no projeto de âmbito da verificação de tempo de atividade. No entanto, o artigo Crie 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 âmbito das métricas.
Para ver informações sobre como configurar verificações de tempo de atividade que usam endereços IP públicos, consulte o artigo Crie verificações de tempo de atividade públicas. Para obter informações sobre a gestão e a monitorização das verificações de tempo de atividade, consulte a secção O que se segue deste documento.
Esta funcionalidade só é suportada para projetos do Google Cloud . Para configurações do App Hub, selecione o projeto anfitrião do App Hub ou o projeto de gestão da pasta com apps ativadas.
Antes de começar
Ative as seguintes APIs:
- Cloud Monitoring API:
monitoring.googleapis.com
- API Service Directory:
servicedirectory.googleapis.com
- API Service Networking:
servicenetworking.googleapis.com
- API Compute Engine:
compute.googleapis.com
Pode ativar as APIs através da CLI gcloud ou da Google Cloud consola. Os separadores seguintes descrevem como instalar a CLI gcloud e ativar a API Cloud Monitoring:
Google Cloud consola
Na Google Cloud consola, selecione o Google Cloud projeto para o qual quer ativar a API e, de seguida, aceda à página APIs e serviços:
Clique no botão Ativar APIs e serviços.
Pesquise "Monitorização".
Nos resultados da pesquisa, clique para aceder a "API Stackdriver Monitoring".
Se for apresentada a mensagem "API ativada", significa que a API já está ativada. Caso contrário, clique em Ativar.
CLI gcloud
Se ainda não tiver instalado a CLI Google Cloud na sua estação de trabalho, consulte o artigo Instalar a CLI gcloud.
Para ver se a API Monitoring está ativada, execute o seguinte comando na sua estação de trabalho, depois de substituir PROJECT_ID pelo ID do projeto para o qual quer ativar a API:
gcloud services list --project=PROJECT_ID
Se
monitoring.googleapis.com
aparecer no resultado, a API está ativada.Se a API não estiver ativada, execute o seguinte comando para a ativar:
gcloud services enable monitoring --project=PROJECT_ID
Para mais informações, consulte
gcloud services
.
Pode usar os mesmos passos para ativar as outras APIs:
- Para usar a Google Cloud consola, pesquise o nome a apresentar, por exemplo, "API Service Directory".
- Para usar a CLI gcloud, especifique o primeiro elemento do nome, por exemplo,
servicedirectory
.googleapis.com
- Cloud Monitoring API:
Configure os canais de notificação que quer usar para receber notificações. Recomendamos que crie vários tipos de canais de notificação. Para mais informações, consulte o artigo Crie e faça a gestão de canais de notificação.
Configure uma rede privada e configure uma VM ou um ILB para ter acesso a essa rede privada. Para mais informações, consulte o artigo Acesso a serviços privados.
As verificações privadas que segmentam ILBs estã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 dasUSA_*
regiões tem um verificador eUSA
inclui os três. As outras regiões de verificação do tempo de atividade,EUROPE
,SOUTH_AMERICA
eASIA_PACIFIC
, têm cada uma um verificador. Para remover esta limitação, tem de configurar o acesso global ao equilibrador de carga. Para mais informações sobre como configurar o acesso global, consulte o separador ILB na secção Configure recursos do Service Directory deste documento.Se planeia verificar um ILB que não permite o acesso global, selecione uma das seguintes regiões para o seu ILB:
us-east4
us-central1
us-west1
europe-west1
southamerica-east1
asia-southeast1
Determine que interface usar:
Google Cloud console: permite-lhe criar uma verificação de tempo de atividade quando uma VM está a processar pedidos. Esta interface explica-lhe como configurar os recursos do Service Directory, autorizar a conta de serviço e configurar as regras da firewall de rede.
Interfaces de linha de comandos: pode usar a CLI Google Cloud e a API Cloud Monitoring para criar verificações de tempo de atividade privadas quando os ILBs e as VMs estão a processar pedidos.
Se planeia usar a linha de comandos para configurar as verificações de tempo de atividade privadas, conclua os passos de pré-requisito.
Crie uma verificação de tempo de atividade privada
Esta secção explica como criar e configurar verificações de tempo de atividade privadas dos serviços do diretório de serviços:
Para usar a Google Cloud consola, selecione o separador Google Cloud consola.
Para usar a Cloud Monitoring API e configurar o serviço Service Directory para estar no mesmo Google Cloud projeto que a verificação de tempo de atividade, selecione o separador API: projeto de âmbito.
Para usar a API Cloud Monitoring e configurar o serviço Service Directory para estar num projeto monitorizado pelo âmbito das métricas do projeto da verificação de tempo de atividade, selecione o separador API: projeto monitorizado.
Google Cloud consola
Para criar uma verificação de tempo de atividade através da Google Cloud consola, faça o seguinte:
-
Na Google Cloud consola, aceda à página
Verificações de tempo de atividade:
Aceda a Verificações de tempo de atividade
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.
- Na barra de ferramentas da Google Cloud consola, selecione o seu Google Cloud projeto. Para configurações do App Hub, selecione o projeto anfitrião do App Hub ou o projeto de gestão da pasta com apps ativadas.
Clique em Criar verificação de tempo de atividade.
Especifique uma verificação de tempo de atividade privada:
Selecione o protocolo, que pode ser HTTP, HTTPS ou TCP.
Escolha o tipo de recurso IP interno.
Se não tiver um serviço do Service Directory configurado para o seu projeto ou quiser criar um serviço do Service Directory, clique em Ver e conclua o painel Pré-requisitos da verificação de tempo de atividade privada:
Se lhe for pedido, ative a API Compute Engine ou a API Service Directory. A ativação das APIs pode demorar um minuto.
Expanda arrow_drop_down Conta de serviço, se for apresentado, e, de seguida, clique em Criar conta de serviço.
Quando não existe uma conta de serviço de monitorização, é criada uma. Em seguida, o Monitoring concede à conta de serviço duas funções do Service Directory.
Expanda o menu arrow_drop_down Diretório de serviços e, em seguida, faça o seguinte:
- Expanda arrow_drop_down Região e, em seguida, selecione a região da VM que está a processar pedidos.
- Expanda arrow_drop_down Espaço de nomes e, em seguida, selecione um espaço de nomes do Service Directory existente ou clique em Criar espaço de nomes e crie um espaço de nomes.
- Clique em Nome do serviço e introduza um nome do serviço. Os serviços são os alvos das verificações privadas do tempo de atividade.
- Clique em Nome do ponto final e introduza um nome para o nome do ponto final. Um ponto final é um par de valores de endereço IP e porta que um serviço pode usar para processar pedidos. Quando o seu serviço contém vários pontos finais, é escolhido um ponto final aleatoriamente.
- Expanda arrow_drop_down Rede e, de seguida, selecione a sua rede privada.
- Expanda arrow_drop_down Instância e, em seguida, selecione a VM na rede privada que está a processar pedidos. Depois de selecionar a instância, é apresentado o respetivo endereço IP interno.
- Clique em Concluído.
Expanda arrow_drop_down Regras de firewall:
Expanda arrow_drop_down Rede e selecione a rede à qual a regra de rede está anexada.
Clique em Criar regras de firewall.
A regra de firewall ativa o tráfego TCP de entrada a partir das rotas 35.199.192.0/19. Uma rota de 35.199.192.0/19 suporta a conetividade com destinos de encaminhamento que usam o encaminhamento privado. Para mais informações, consulte o artigo Rotas de VPC.
No painel Verificação de tempo de atividade privada, para especificar o serviço do Service Directory a usar, faça uma das seguintes ações:
Selecione Usar nome do serviço totalmente qualificado e, em seguida, introduza 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 Espaço de nomes e o Serviço através dos menus. Se criou um serviço, estes campos são selecionados automaticamente.
No painel Verificação privada do tempo de atividade, conclua a descrição do destino da verificação do tempo de atividade:
Opcional: introduza um componente do caminho para o pedido.
As verificações de tempo de atividade privadas que usam o protocolo HTTP ou HTTPS enviam um pedido para
http://target/path
. Nesta expressão,target
é o endereço IP interno configurado no ponto final do Service Directory.Se deixar o campo Caminho em branco ou se definir o valor como
/
, o pedido é emitido parahttp://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 de verificação ou configurar a autenticação, os cabeçalhos para verificações HTTP e HTTPS e outros valores, clique em Mais opções de destino:
- Regiões: selecione as regiões onde as verificações de tempo de atividade devem receber pedidos. Uma verificação de tempo de atividade tem de ter, pelo menos, três verificadores. Existe um verificador em todas as regiões, exceto nos Estados Unidos, que tem três verificadores. A predefinição, Global, inclui todas as regiões.
- Método de pedido: selecione
GET
ouPOST
. - Corpo: para verificações HTTP
POST
, introduza o corpo com codificação URL. Tem de fazer a codificação manualmente. Para todas as outras verificações, deixe este campo em branco. - Cabeçalho do anfitrião: não defina este campo quando configurar verificações de tempo de atividade privadas.
- Porta: qualquer valor que definir aqui substitui a porta na configuração do ponto final do Service Directory. Não defina um valor aqui se quiser usar a configuração do ponto final.
- Cabeçalhos personalizados: forneça cabeçalhos personalizados e, opcionalmente, encripta-os. A encriptação oculta os valores no cabeçalho do formulário. Use a encriptação para cabeçalhos relacionados com a autenticação que não quer que sejam visíveis para outras pessoas.
- Autenticação: forneça um único nome de utilizador e palavra-passe. Estes valores são enviados como um cabeçalho de autorização. Se definir valores aqui, não defina um cabeçalho de autorização separado. Se definir um cabeçalho de autorização, não defina valores aqui. As palavras-passe estão sempre ocultas no formulário.
Clique em Continuar e configure os requisitos de resposta. Todas as definições nesta secção têm valores predefinidos:
Para definir um período de limite de tempo para a verificação de tempo de atividade, use o campo Limite de tempo de resposta. Uma verificação de tempo de atividade falha quando não é recebida nenhuma resposta de mais de uma localização durante este período.
Para configurar a verificação de tempo de atividade para realizar a correspondência de conteúdo, certifique-se de que a etiqueta do botão está A correspondência de conteúdo está ativada:
- Selecione o Tipo de correspondência do conteúdo da resposta no menu de opções.
Este campo determina como o conteúdo da resposta é comparado com os dados devolvidos. Por exemplo, suponha que o conteúdo da resposta é
abcd
e o tipo de correspondência de conteúdo é Contém. A verificação do tempo de atividade só é bem-sucedida quando os dados de resposta contêmabcd
. Para mais informações, consulte o artigo Valide os dados de respostas. - Introduza o Conteúdo da resposta. O conteúdo da resposta tem de ser uma string com um tamanho não superior a 1024 bytes. Na API, este campo é o objeto
ContentMatcher
.
- Selecione o Tipo de correspondência do conteúdo da resposta no menu de opções.
Este campo determina como o conteúdo da resposta é comparado com os dados devolvidos. Por exemplo, suponha que o conteúdo da resposta é
Para impedir a criação de entradas de registo devido a verificações de tempo de atividade, limpe as Falhas de verificação de registo.
Para as verificações de tempo de atividade HTTP, configure os códigos de resposta aceitáveis. Por predefinição, as verificações de tempo de atividade HTTP marcam qualquer resposta
2xx
como uma resposta bem-sucedida.
Clique em Continuar e configure as políticas de alerta e as notificações.
Para receber uma notificação quando uma verificação de tempo de atividade falha, crie uma política de alertas e configure canais de notificação para essa política:
- Opcional: atualize o nome da política de alerta.
- Opcional: no campo Duração, selecione durante quanto tempo as verificações de tempo de atividade têm de falhar antes de serem enviadas notificações. Por predefinição, as notificações são enviadas quando, pelo menos, duas regiões comunicam falhas na verificação de tempo de atividade durante, pelo menos, um minuto.
Na caixa com a etiqueta Canais de notificação, expanda o arrow_drop_down Menu, selecione os canais a adicionar e, de seguida, clique em OK.
No menu, os canais de notificação estão agrupados por ordem alfabética para cada tipo de canal.
Se não quiser criar uma política de alerta, certifique-se de que o texto do botão de ativação/desativação é Não criar um alerta.
Clique em Continuar e conclua a verificação do tempo de atividade:
Introduza um título descritivo para a verificação de tempo de atividade.
Opcional: para adicionar etiquetas definidas pelo utilizador à verificação de tempo de atividade, faça o seguinte:
- Clique em expand_more Mostrar etiquetas do utilizador.
- No campo Chave, introduza um nome para a etiqueta.
Os nomes das etiquetas têm de começar por uma letra minúscula e podem conter
letras minúsculas, números, sublinhados e travessões. Por exemplo,
introduza
severity
. - No campo Valor, introduza um valor para a etiqueta. Os valores das etiquetas
podem conter
letras minúsculas, números, sublinhados e travessões. Por exemplo,
introduza
critical
. - Para cada etiqueta adicional, clique em Adicionar etiqueta do utilizador e, de seguida, introduza a chave e o valor da etiqueta.
Para validar a configuração da verificação de tempo de atividade, clique em Testar. Se o resultado não for o esperado, consulte a secção Resolução de problemas, corrija a configuração e, em seguida, repita o passo de validação.
Clique em Criar.
API: definição do âmbito do projeto
Para criar a configuração de uma verificação de tempo de atividade privada, crie um objeto UptimeCheckConfig
e transmita esse objeto ao método uptimeCheckConfigs.create
na API Cloud Monitoring.
O objeto UptimeCheckConfig
para uma verificação de tempo de atividade privada difere do objeto para uma verificação de tempo de atividade pública das seguintes formas:
O recurso monitorizado especificado na configuração da verificação de tempo de atividade tem de ser do tipo
servicedirectory_service
. Este tipo de recurso tem as seguintes etiquetas:project_id
: o ID do projeto associado ao serviço Service Directory.location
: a região da nuvem associada ao serviço.namespace_name
: o espaço de nomes do diretório de serviços.service_name
: o nome do serviço de diretório de serviços.
Não precisa de especificar um valor
port
na configuração da verificação de tempo de atividade. O valor da porta do ponto final do diretório de serviços substitui qualquer valor definido na configuração da verificação de tempo de atividade e a verificação falha se não for especificada nenhuma porta na configuração do diretório de serviços.A configuração da verificação de tempo de atividade tem de especificar o campo
checker_type
com o valorVPC_CHECKERS
. Este valor é obrigatório para verificações de tempo de atividade privadas. Por predefinição, as verificações de tempo de atividade são públicas, pelo que não é necessário especificar este campo para as verificações de tempo de atividade públicas.
O código JSON seguinte ilustra um objeto UptimeCheckConfig
para uma verificação de tempo de atividade privada que usa os recursos do Service Directory configurados para uma instância de VM numa 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 privada quando o serviço do Service Directory estiver no mesmo Google Cloud projeto que a verificação de tempo de atividade, faça o seguinte:
Defina o projeto Google Cloud predefinido 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 que contenha um token de acesso:
export TOKEN=`gcloud auth print-access-token`
Use a ferramenta
curl
para invocar o métodouptimeCheckConfigs.create
e publicar um objeto de configuração no mesmo: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 as funções necessárias. Para mais informações, consulte A criação da verificação de tempo de atividade falha.
API: projeto monitorizado
Para criar a configuração de uma verificação de tempo de atividade privada, crie um objeto UptimeCheckConfig
e transmita esse objeto ao método uptimeCheckConfigs.create
na API Cloud Monitoring.
O objeto UptimeCheckConfig
para uma verificação de tempo de atividade privada difere do objeto para uma verificação de tempo de atividade pública das seguintes formas:
O recurso monitorizado especificado na configuração da verificação de tempo de atividade tem de ser do tipo
servicedirectory_service
. Este tipo de recurso tem as seguintes etiquetas:project_id
: o ID do projeto associado ao serviço Service Directory.location
: a região da nuvem associada ao serviço.namespace_name
: o espaço de nomes do diretório de serviços.service_name
: o nome do serviço de diretório de serviços.
Não precisa de especificar um valor
port
na configuração da verificação de tempo de atividade. O valor da porta do ponto final do diretório de serviços substitui qualquer valor definido na configuração da verificação de tempo de atividade e a verificação falha se não for especificada nenhuma porta na configuração do diretório de serviços.A configuração da verificação de tempo de atividade tem de especificar o campo
checker_type
com o valorVPC_CHECKERS
. Este valor é obrigatório para verificações de tempo de atividade privadas. Por predefinição, as verificações de tempo de atividade são públicas, pelo que não é necessário especificar este campo para as verificações de tempo de atividade públicas.
O código JSON seguinte ilustra um objeto UptimeCheckConfig
para uma verificação de tempo de atividade privada que usa os recursos do Service Directory configurados para uma instância de VM numa 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 privada quando o serviço do Service Directory estiver num Google Cloud projetoGoogle Cloud que é monitorizado pelo âmbito das métricas do Google Cloud projetoGoogle Cloud da verificação de tempo de atividade, faça o seguinte:
Configure a CLI gcloud para usar como predefinição o Google Cloud projeto onde a verificação de tempo de atividade vai 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 do Google Cloud projeto no qual o serviço Service Directory está definido:
export MONITORED_PROJECT_ID=MONITORED_PROJECT_ID
Este projeto tem de estar no âmbito das métricas do projeto da verificação de tempo de atividade.
Crie uma variável de ambiente que contenha um token de acesso:
export TOKEN=`gcloud auth print-access-token`
Use a ferramenta
curl
para invocar o métodouptimeCheckConfigs.create
e publicar um objeto de configuração no mesmo: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 as funções necessárias. Para mais informações, consulte A criação da verificação de tempo de atividade falha.
Pode haver um atraso de até 5 minutos antes de os resultados da verificação de tempo de atividade começarem a fluir para a monitorização. Durante esse período, o painel de controlo da verificação de tempo de atividade indica o estado como "dados não disponíveis".
Passos previamente necessários
Se planeia usar a Google Cloud interface da consola, aceda a Crie uma verificação de tempo de atividade privada. A Google Cloud consola explica-lhe todos os passos pré-requisitos.
Se planeia usar a linha de comandos para configurar as verificações de tempo de atividade privadas, tem de concluir os passos seguintes antes de poder criar a verificação de tempo de atividade:
Configure recursos do Service Directory
As verificações de tempo de atividade privadas determinam a disponibilidade de um recurso através de um endereço IP interno registado por um serviço do Service Directory. Pode configurar um diretório de serviços para os seguintes recursos:
- VMs numa rede privada
- Balanceadores de carga internos (ILBs) de camada 4
Para usar verificações de tempo de atividade privadas, tem de configurar os seguintes recursos do Service Directory:
- Ponto final: um ponto final é um par de valores de endereço IP e porta que um serviço pode usar para processar pedidos. Quando o seu serviço contém vários pontos finais, é escolhido um ponto final aleatoriamente.
- Serviço: um serviço é uma coleção de pontos finais que fornecem um conjunto de comportamentos. Os serviços são os alvos das verificações privadas do tempo de atividade.
- Namespace: um namespace contém um conjunto de nomes de serviços e os respetivos pontos finais associados. Os espaços de nomes permitem-lhe agrupar serviços para uma gestão consistente.
Pode configurar estes recursos com a CLI gcloud ou a Google Cloud consola. Quando usa a consola, os passos de configuração estão incluídos na caixa de diálogo Criar verificação de tempo de atividade.
Google Cloud consola
Quando usa a Google Cloud consola, depois de selecionar IP interno como o tipo de recurso para uma verificação de tempo de atividade, é-lhe pedido que crie 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, espaços de nomes e pontos finais, consulte o gcloud service-directory
comando group.
Para criar recursos do Service Directory para uma VM, faça o seguinte:
Configure a CLI do Google Cloud para usar por predefinição o projeto Google Cloud onde os recursos do Service Directory vão ser 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 espaço de nomes do Service Directory:
gcloud service-directory namespaces create PRIVATE_NAMESPACE --location=REGION
Crie um serviço do Service Directory no espaço de nomes:
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 privada:
export INTERNAL_IP=$(gcloud compute instances describe --zone=ZONE \ PRIVATE_SERVICE_INSTANCE --format='get(networkInterfaces[0].networkIP)')
Crie um ponto final 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
CLI gcloud – ILB de camada 4
Para obter informações sobre os comandos usados neste documento para serviços, espaços de nomes e pontos finais, consulte o gcloud service-directory
comando group.
Pode usar verificações de tempo de atividade privadas para monitorizar a disponibilidade de um equilibrador de carga interno (ILB) de Nível 4 criando recursos do Service Directory para o ILB de Nível 4.
Quando cria novos ILBs de nível 4, pode usar a integração automática fornecida pelo Service Directory. Para mais informações, consulte o artigo Configure equilibradores de carga internos no Service Directory para mais informações.
Se tiver ILBs de nível 4 criados sem usar a integração automática fornecida pelo Service Directory, pode configurar manualmente os recursos do Service Directory da seguinte forma:
Configure a CLI do Google Cloud para usar por predefinição o projeto Google Cloud onde os recursos do Service Directory vão ser 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 de nível 4, ative o acesso global ao ILB:
gcloud compute forwarding-rules update ILB_FORWARDING_RULE_NAME \ --region=ILB_REGION --allow-global-access
Se o ILB de nível 4 não permitir o acesso global, as métricas de tempo de atividade só estão disponíveis se ILB_REGION for uma das seguintes opções:
us-east4
us-central1
us-west1
europe-west1
southamerica-east1
asia-southeast1
Crie um espaço de nomes do Service Directory:
gcloud service-directory namespaces create PRIVATE_NAMESPACE_FOR_ILB\ --location=REGION
Crie um serviço do Service Directory no espaço de nomes:
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 equilibrador de carga na rede privada:
export INTERNAL_IP=$( gcloud compute forwarding-rules describe ILB_FORWARDING_RULE_NAME\ --region=ILB_REGION --format='get(IPAddress)')
Crie um ponto final 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
Autorize a conta de serviço
As verificações de tempo de atividade usam uma conta de serviço pertencente ao Monitoring para gerir as interações com o serviço Service Directory. O nome da conta de serviço tem o seguinte formato:
service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
Quando esta conta de serviço não existe, o Monitoring cria a conta de serviço quando cria a verificação de tempo de atividade privada. Não pode criar esta conta de serviço.
Quando cria uma verificação de tempo de atividade privada, o Monitoring tenta conceder à conta de serviço duas funções do Service Directory. No entanto, quando usa a API, as Google Cloud definições do projeto podem impedir que o Monitoring conceda funções à conta de serviço. Nesta situação, a criação da verificação de tempo de atividade falha.
Esta secção descreve como pode conceder as funções necessárias a uma conta de serviço existente:
Google Cloud consola
Quando usa a Google Cloud consola, depois de selecionar IP interno como o tipo de recurso para uma verificação de tempo de atividade, é-lhe pedido que autorize a conta de serviço.
API: definição do âmbito do projeto
Para conceder as funções do diretório de serviços a uma conta de serviço existente, faça o seguinte:
Configure a CLI gcloud para usar como predefinição o Google Cloud projeto onde a verificação de tempo de atividade vai ser criada:
gcloud config set project PROJECT_ID
Crie variáveis de ambiente para armazenar o ID do projeto 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 seguintes comandos:
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 as seguintes funções à conta de serviço:
roles/servicedirectory.viewer
roles/servicedirectory.pscAuthorizedService
API: projeto monitorizado
Para conceder as funções do diretório de serviços a uma conta de serviço existente, faça o seguinte:
Configure a CLI gcloud para usar como predefinição o Google Cloud projeto onde a verificação de tempo de atividade vai ser criada:
gcloud config set project PROJECT_ID
Crie variáveis de ambiente para armazenar o ID do projeto 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 que contenha o ID do projeto no qual o serviço do Service Directory está definido:
export MONITORED_PROJECT_ID=MONITORED_PROJECT_ID
Este projeto tem de estar no âmbito das métricas do projeto da verificação de tempo de atividade.
Crie uma variável de ambiente que contenha o ID do projeto onde a rede está definida:
export NETWORK_PROJECT_ID=NETWORK_PROJECT_ID
Este projeto não tem de estar no âmbito das métricas do projeto da verificação de tempo de atividade.
Execute os seguintes comandos:
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 as seguintes funções à conta de serviço:
roles/servicedirectory.viewer
para o projeto monitorizado no qual o serviço Service Directory está configurado$SERVICE_MONITORED_PROJECT_ID
.roles/servicedirectory.pscAuthorizedService
para o projeto no qual a rede privada está configurada,$NETWORK_PROJECT_ID
.
Configure regras de firewall
Tem de criar uma regra de firewall que ative o tráfego TCP de entrada a partir das rotas 35.199.192.0/19. Um trajeto de 35.199.192.0/19 suporta a conetividade com destinos de encaminhamento que usam o encaminhamento privado. Para mais informações, consulte o artigo Rotas de VPC.
Google Cloud consola
Quando usa a Google Cloud consola, depois de selecionar IP interno como o tipo de recurso para uma verificação de tempo de atividade, é-lhe pedido que configure as regras da firewall.
CLI gcloud
Para criar uma regra de firewall que permita o tráfego TCP de entrada através da firewall para acesso à rede privada, execute o seguinte comando:
Configure a CLI gcloud para usar como predefinição o Google Cloud projeto onde a verificação de tempo de atividade vai ser criada:
gcloud config set project PROJECT_ID
Crie variáveis de ambiente para armazenar o ID do projeto 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 à qual esta regra está associada, enquanto PRIVATE_CHECK_NETWORK_HOPE_RULE é o nome da regra de firewall.
Para mais informações sobre este passo, consulte o artigo Configure o projeto de rede.
Limitações
Quando usa verificações de tempo de atividade privadas, a validação de certificados SSL está desativada, independentemente da configuração.
As verificações de tempo de atividade privadas não suportam pontos finais com redirecionamentos.
Resolução de problemas
Esta secção descreve alguns erros que pode encontrar quando usa verificações de tempo de atividade privadas e fornece informações para os resolver.
A criação da verificação de tempo de atividade falha
As definições do seu projeto podem impedir a modificação das funções atribuídas à conta de serviço que as verificações de tempo de atividade usam para gerir as interações com o serviço Service Directory. Google Cloud Nesta situação, a criação da verificação de tempo de atividade falha.
Esta secção descreve como pode conceder as funções que a conta de serviço requer:
Google Cloud consola
Quando usa a Google Cloud consola para criar a verificação de tempo de atividade privada, a Google Cloud consola emite os comandos para conceder as funções do Service Directory à conta de serviço.
Para obter informações sobre como conceder funções a uma conta de serviço, consulte o artigo Autorize a conta de serviço.
API: definição do âmbito do projeto
Quando cria uma verificação de tempo de atividade privada pela primeira vez para um serviço do Service Directory e recursos privados num único Google Cloud projeto, o pedido pode ter êxito ou falhar. O resultado depende de ter desativado as concessões automáticas de funções para contas de serviço no seu projeto:
A primeira criação de uma verificação de tempo de atividade é bem-sucedida se o seu projeto permitir concessões automáticas de funções para contas de serviço. É criada uma conta de serviço para si e são-lhe concedidas as funções necessárias.
A primeira criação de uma verificação de tempo de atividade falha se o seu projeto não permitir concessões automáticas de funções para contas de serviço. É criada uma conta de serviço, mas não são concedidas funções.
Se a criação da verificação de tempo de atividade falhar, faça o seguinte:
- Autorize a conta de serviço.
- Aguarde alguns minutos para que as autorizações se propaguem.
- Tente criar novamente a verificação privada do tempo de atividade.
API: projeto monitorizado
Quando cria uma verificação de tempo de atividade privada que segmenta um serviço do Service Directory num projeto monitorizado ou recursos privados num projeto Google Cloud diferente, o pedido falha e resulta na criação de uma conta de serviço do Monitoring.
A forma como autoriza a conta de serviço depende do número de Google Cloud projetos que está a usar e das respetivas relações. Pode ter até quatro projetos envolvidos:
- O projeto no qual definiu a verificação privada do tempo de atividade.
- O projeto monitorizado no qual configurou o serviço Service Directory.
- O projeto no qual configurou a rede VPC.
- O projeto no qual os recursos de rede, como VMs ou balanceadores de carga, estão configurados. Este projeto não tem nenhuma função na autorização da conta de serviço abordada aqui.
Quando a criação da primeira verificação de tempo de atividade falha, faça o seguinte:
- Autorize a conta de serviço.
- Aguarde alguns minutos para que as autorizações se propaguem.
- Tente criar novamente a verificação privada do tempo de atividade.
Acesso negado
As suas verificações de tempo de atividade estão a falhar com resultados VPC_ACCESS_DENIED
. Este resultado significa que algum aspeto da configuração de rede ou da autorização da conta de serviço não está correto.
Verifique a autorização da conta de serviço para usar um projeto de âmbito ou um projeto monitorizado, conforme descrito em A criação da verificação de tempo de atividade falha.
Para mais informações sobre o acesso a redes privadas, consulte o artigo Configure o projeto de rede.
Resultados anómalos de verificações privadas do tempo de atividade
Tem um serviço do Service Directory com várias VMs e a configuração do seu serviço contém vários pontos finais. Quando desliga uma das VMs, a verificação do tempo de atividade continua a indicar êxito.
Quando a configuração do serviço contém vários pontos finais, é escolhido um aleatoriamente. Se a VM associada ao ponto final escolhido estiver em execução, a verificação de tempo de atividade é bem-sucedida, mesmo que uma das VMs esteja inativa.
Cabeçalhos predefinidos
As verificações de tempo de atividade estão a devolver erros ou resultados inesperados. Isto pode ocorrer se tiver substituído os valores predefinidos dos cabeçalhos.
Quando é enviado um pedido de verificação de tempo de atividade privada para um ponto final de destino, o pedido inclui os seguintes cabeçalhos e valores:
Cabeçalho | Valor |
---|---|
HTTP_USER_AGENT |
GoogleStackdriverMonitoring-UptimeChecks(https://cloud.google.com/monitoring) |
HTTP_CONNECTION |
keep-alive |
HTTP_HOST |
IP do ponto final do Service Directory |
HTTP_ACCEPT_ENCODING |
gzip , deflate , br |
CONTENT_LENGTH |
Calculado a partir dos dados de publicação do tempo de atividade |
Se tentar substituir estes valores, podem ocorrer as seguintes situações:
- A verificação de tempo de atividade comunica erros
- Os valores de substituição são ignorados e substituídos pelos valores na tabela
Não existem dados visíveis
Não vê dados no painel de controlo da verificação de tempo de atividade quando a verificação de tempo de atividade está num projeto diferente do serviço Service Directory. Google Cloud
Certifique-se de que o Google Cloud projeto que contém a verificação de tempo de atividade monitoriza o Google Cloud projeto que contém o serviço Service Directory.
Para mais informações sobre como listar projetos monitorizados e adicionar outros, consulte o artigo Configure um âmbito de métricas para vários projetos.
O que se segue?
- Faça a gestão das verificações de tempo de atividade
- Crie políticas de alerta para verificações de tempo de atividade
- Crie gráficos de métricas de verificação de tempo de atividade
- Preços e limites