Se você trazer suas próprias licenças para sistemas operacionais como o Windows Server, as obrigações contratuais podem exigir que você rastreie e gere relatórios de quantas instâncias de VM, servidores físicos e núcleos de CPU física em que está usando essas licenças.
Neste artigo, descrevemos como usar o rastreador de licenças da ferramenta de código aberto para rastrear o número de instâncias de VM, servidores físicos e núcleos de CPU físicos que você está usando e como visualizar os resultados usando o Looker Studio.
A ferramenta Rastreador de licenças analisa os registros de auditoria do Compute Engine para determinar as posições de cada instância de VM. Uma posição descreve o período em que uma instância de VM é executada em um servidor físico específico. Cada vez que uma VM é migrada de um servidor físico para outro, ela marca o fim de uma posição e inicia outra.
Por exemplo, considere uma instância de VM iniciada e, vários meses depois,
interrompida novamente. Em algum momento durante o tempo de execução, a VM é migrada automaticamente de Server 1
para Server 2
e posteriormente para Server 1
novamente. Esse histórico corresponde a três posições:
Ao executar a ferramenta Rastreador de licenças pela primeira vez, ela analisa o uso do Compute Engine nos últimos 90 dias e grava o resultado no BigQuery. Nas execuções subsequentes, a ferramenta analisa o delta entre a última execução e o dia atual e atualiza o conjunto de dados do BigQuery conformemente.
A ferramenta Rastreador de licenças substitui o recurso de relatório de uso fornecido pelo IAP Desktop.
Custos
Este guia usa componentes faturáveis do Google Cloud, incluindo:
Use a calculadora de preços para gerar uma estimativa de custo com base na projeção de uso.
Implantar a ferramenta Rastreador de licenças
Nesta seção, descrevemos como configurar o Cloud Run e o Cloud Scheduler para executar automaticamente a ferramenta Rastreador de licenças uma vez por dia.
O diagrama a seguir ilustra a solução descrita neste artigo:
- A ferramenta Rastreador de licenças é implantada no Cloud Run e configurada para analisar os registros de um ou mais projetos.
- Uma vez por dia, o Cloud Scheduler aciona o job do Cloud Run, fazendo com que a ferramenta Rastreador de licenças atualize um conjunto de dados do BigQuery.
- O painel do Looker Studio visualiza os dados do BigQuery e os disponibiliza para os usuários.
Criar um projeto
Para configurar o Cloud Run e o Cloud Scheduler, crie um novo projeto:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Enable the BigQuery, Cloud Logging, Resource Manager, Cloud Build, Cloud Scheduler, and Cloud Run APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Enable the BigQuery, Cloud Logging, Resource Manager, Cloud Build, Cloud Scheduler, and Cloud Run APIs.
Implante o aplicativo
Agora você implanta a ferramenta Rastreador de licenças no Cloud Run:
No Console do Google Cloud Platform, abra o Cloud Shell clicando no botão Ativar o Cloud Shell .
Defina uma variável de ambiente que contenha o ID do projeto:
gcloud config set project PROJECT_ID
Substitua PROJECT_ID pelo ID do seu projeto.
Defina a região do Cloud Run para a implantação:
gcloud config set run/region REGION
Substitua REGION por uma região compatível com o Cloud Run e o Cloud Scheduler.
Crie uma conta de serviço para a ferramenta:
SERVICE_ACCOUNT=$(gcloud iam service-accounts create license-tracker \ --display-name "License Tracker" \ --format "value(email)")
Permita que o serviço crie e acesse um conjunto de dados do BigQuery e inicie jobs do Cloud Run no mesmo projeto:
gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/bigquery.admin" gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/run.invoker"
Permita que o Cloud Build realize implantações do Cloud Run e gerencie jobs do Cloud Scheduler:
PROJECT_NUMBER=$(gcloud projects describe $(gcloud config get-value core/project) --format='value(projectNumber)') \ gcloud iam service-accounts add-iam-policy-binding $SERVICE_ACCOUNT \ --member "serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \ --role "roles/iam.serviceAccountUser" gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \ --member "serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \ --role "roles/run.developer" gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \ --member "serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \ --role "roles/cloudscheduler.admin"
Clone o repositório do GitHub e mude para a ramificação
latest
:git clone https://github.com/GoogleCloudPlatform/gce-license-tracker.git cd gce-license-tracker git checkout latest
Envie um build para o Cloud Build:
gcloud builds submit . --substitutions=_REGION=$(gcloud config get-value run/region)
O build implanta o aplicativo Rastreador de licenças no Cloud Run e configura o Cloud Scheduler para acionar o job uma vez por dia.
A compilação leva cerca de três minutos para ser concluída.
Selecionar projetos para analisar
A ferramenta Rastreador de licenças analisa todos os projetos do Google Cloud a que todas as condições a seguir se aplicam:
- A API Compute Engine está ativada.
- O projeto concede acesso de Leitor de computação (
roles/compute.viewer
) e Visualizador de registros (roles/logging.viewer
) à conta de serviço da ferramenta.
Para incluir um projeto, uma pasta ou uma organização inteira na análise, faça o seguinte:
Projeto
SCOPE_ID=RESOURCE_PROJECT_ID SCOPE_TYPE=projects gcloud projects add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/compute.viewer" \ --condition None gcloud projects add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/logging.viewer" \ --condition None
Substitua RESOURCE_PROJECT_ID pelo ID do projeto do Google Cloud que você quer que o Rastreador de licenças analise.
Pasta
SCOPE_ID=RESOURCE_FOLDER_ID SCOPE_TYPE=folders gcloud resource-manager folders add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/compute.viewer" \ --condition None gcloud resource-manager folders add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/logging.viewer" \ --condition None
Substitua RESOURCE_FOLDER_ID pelo ID da pasta que contém os projetos que você quer que a ferramenta Rastreador de Licenças analise.
Organização
SCOPE_ID=ORGANIZATION_ID SCOPE_TYPE=organizations gcloud organizations add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/compute.viewer" \ --condition None gcloud organizations add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/logging.viewer" \ --condition None
Substitua ORGANIZATION_ID pelo ID da organização.
Iniciar a análise inicial
Agora é possível iniciar uma análise inicial:
No console do Google Cloud, acesse Cloud Run > Jobs.
Selecione o job licença-tracker para abrir os detalhes do job.
Clique em Executar.
Dependendo do número e do tamanho dos projetos selecionados, a análise inicial pode levar várias horas para ser concluída.
Quando o job for concluído, o projeto conterá um conjunto de dados do BigQuery chamado
license_usage
.Se quiser, veja os registros no Cloud Logging:
Criar um painel
Agora, você cria um painel do Looker Studio com uma cópia de um painel de amostra:
Copie as fontes de dados do painel:
Para cada uma das fontes de dados, faça o seguinte:
- Clique no link acima para abrir a fonte de dados.
- Clique em Fazer uma cópia dessa fonte de dados.
- Clique em Copiar fonte de dados.
- Se você receber uma promoção para conectar o painel ao BigQuery, clique em Autorizar.
- Se quiser, clique no cabeçalho e renomeie a fonte de dados.
- Na lista de projetos de faturamento, selecione o projeto que você usou para implantar a ferramenta Rastreador de licenças.
- Clique em Reconectar.
- Na caixa de diálogo Aplicar alterações de conexão, selecione Aplicar.
Copie o painel:
Abra o painel de amostra.
Como o painel não está conectado a uma fonte de dados, ele não mostra dados.
Clique em ... > Fazer uma cópia
Na caixa de diálogo Copiar este relatório, selecione suas cópias das fontes de dados:
Clique em Copiar relatório.
O painel agora mostra os dados do seu conjunto de dados do BigQuery.
Conceder a outros usuários acesso ao painel
As fontes de dados do painel são configuradas para usar as credenciais do visualizador para acessar o BigQuery. Para conceder acesso ao painel a outro usuário, você precisa:
- Compartilhar o painel e conceder permissão ao usuário para ver o relatório.
- Conceder os papéis de Leitor de dados do BigQuery (
roles/bigquery.dataViewer
) e Usuário de jobs do BigQuery (roles/bigquery.jobUser
) ao usuário. É possível conceder esses papéis no nível do conjunto de dados ou do projeto.
Personalizar o painel
É possível personalizar o painel usando o editor de relatórios do Looker Studio para modificar os gráficos existentes ou adicionar outros.
Todos os gráficos no painel de amostra se baseiam na visualização placements
do
conjunto de dados do BigQuery. Essa visualização contém todas as posições em todos os projetos e usa o seguinte esquema:
Coluna | Data type | Descrição |
---|---|---|
instance_id | INTEIRO | ID da instância |
instance_name | STRING | Nome da instância |
instance_zone | STRING | ID da zona da instância |
instance_project_id | STRING | ID do projeto da instância |
locação | STRING | S se estiver sendo executado em um nó de locatário individual, F caso contrário |
node_type | STRING | Tipo de nó de locatário individual |
node_project_id | STRING | ID do projeto do nó este valor pode ser diferente de instance_project_id no caso de nós de locatário individual compartilhados |
server_id | STRING | ID exclusivo do servidor físico |
operating_system_family | STRING | WIN , LINUX ou null se não forem reconhecidos |
licença | STRING | String de licença usada pela imagem |
license_type | STRING | BYOL , SPLA ou null se não forem reconhecidos |
machine_type | STRING | Tipo de máquina da instância |
memory_mb | INTEIRO | Quantidade de RAM (em MB) alocada para a instância |
vcpu_count | INTEIRO | Número de vCPUs alocadas na instância |
vcpu_min_allocated | INTEIRO | Número mínimo de vCPUs alocadas na instância esse valor pode ser diferente de vcpu_count quando você sobrecarrega CPUs em VMs de locatário individual. |
maintenance_policy | STRING | Política de manutenção para instância |
start_date | TIMESTAMP | Início da posição |
end_date | TIMESTAMP | Fim da posição |
Use a visualização placement
ao personalizar os gráficos existentes ou adicionar seus próprios gráficos ao painel.
Fazer upgrade da ferramenta Rastreador de licenças
Esta seção descreve como fazer upgrade de uma implantação da ferramenta Rastreador de licença para usar uma versão mais recente do aplicativo ou uma configuração diferente.
No Console do Google Cloud Platform, abra o Cloud Shell clicando no botão Ativar o Cloud Shell .
Defina uma variável de ambiente que contenha o ID do projeto:
gcloud config set project PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto que contém a implantação.
Selecione a região do Cloud Run da implantação:
gcloud config set run/region REGION
Clone o repositório do GitHub e mude para a ramificação
latest
:git clone https://github.com/GoogleCloudPlatform/gce-license-tracker.git cd gce-license-tracker git checkout latest
Envie um build para o Cloud Build:
gcloud builds submit . --substitutions=_REGION=$(gcloud config get-value run/region)
A criação atualiza a implantação e leva cerca de 3 minutos para ser concluída.