Se você trouxer suas próprias licenças para sistemas operacionais como o Windows Server, as obrigações contratuais poderão exigir que você monitore e relate em quantas instâncias de VM, servidores físicos e núcleos de CPU físicos você está usando essas licenças.
Este artigo descreve como você pode usar a ferramenta de código aberto License Tracker para monitorar o número de instâncias de VM, servidores físicos e núcleos de CPU física que você está usando e como você pode visualizar os resultados usando o Looker Studio.
A ferramenta License Tracker analisa os registros de auditoria do Compute Engine para determinar os posicionamentos de cada instância de VM. Uma veiculação descreve o período durante o qual uma instância de VM está em execução em um servidor físico específico. Cada vez que uma VM é migrada de um servidor físico para outro marca o fim de uma colocação e inicia outra.
Por exemplo, considere uma instância de VM que é iniciada e, vários meses depois, interrompida novamente. Em algum momento durante seu tempo de execução, a VM é automaticamente migrada do Server 1
para Server 2
e, posteriormente, de volta para Server 1
. Este histórico corresponde a 3 canais:
Quando você executa a ferramenta License Tracker 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 adequadamente.
A ferramenta License Tracker substitui o recurso de relatório de uso fornecido pelo IAP Desktop .
Custos
Este guia usa componentes faturáveis de Google Cloud, incluindo:
Use a calculadora de preços para gerar uma estimativa de custo com base no uso projetado.
Implantar a ferramenta License Tracker
Esta seção descreve como configurar o Cloud Run e o Cloud Scheduler para executar automaticamente a ferramenta License Tracker uma vez por dia.
O diagrama a seguir ilustra a solução descrita neste artigo:
- A ferramenta License Tracker é 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 License Tracker atualize um conjunto de dados do BigQuery.
- Um painel do Looker Studio visualiza os dados do BigQuery e os disponibiliza aos usuários.
Crie 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, Cloud Logging, Resource Manager, Cloud Build, Cloud Scheduler, and Cloud Run APIs.
Implantar o aplicativo
Agora você implanta a ferramenta License Tracker no Cloud Run:
No console do Google Cloud, abra o Cloud Shell clicando em Ativar Cloud Shell
botão.
Defina uma variável de ambiente para conter o ID do seu projeto :
gcloud config set project PROJECT_ID
Substitua PROJECT_ID pelo ID do seu projeto.
Defina a região do Cloud Run para implantação:
gcloud config set run/region REGION
Substitua REGION por uma região compatível com Cloud Run e 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 execute 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 GitHub e mude para o branch
latest
:git clone https://github.com/GoogleCloudPlatform/gce-license-tracker.git cd gce-license-tracker git checkout latest
Envie uma versão para o Cloud Build:
gcloud builds submit . --substitutions=_REGION=$(gcloud config get-value run/region)
A compilação implanta o aplicativo License Tracker no Cloud Run e configura o Cloud Scheduler para acionar o job uma vez por dia.
A compilação leva cerca de 3 minutos para ser concluída.
Selecione projetos para analisar
A ferramenta License Tracker analisa todos Google Cloud projetos aos quais se aplicam todas as seguintes condições:
- A API Compute Engine está ativada.
- O projeto concede ao Compute Viewer (
roles/compute.viewer
) e ao Logs Viewer (roles/logging.viewer
) acesso à 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 Google Cloudprojeto que você deseja que a ferramenta License Tracker 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ê deseja que a ferramenta License Tracker 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 sua organização .
Comece a análise inicial
Agora você pode iniciar uma análise inicial:
No console do Google Cloud, acesse Cloud Run > Jobs .
Selecione o trabalho do rastreador de licença para abrir os detalhes do trabalho.
Clique em Executar .
Dependendo do número e do tamanho dos projetos selecionados, a análise inicial poderá levar várias horas para ser concluída.
Quando o job for concluído, seu projeto conterá um conjunto de dados do BigQuery chamado
license_usage
.Se preferir, visualize os registros no Cloud Logging:
Crie um painel
Agora você cria um painel do Looker Studio criando uma cópia de um painel de amostra:
Copie as fontes de dados do painel:
Para cada fonte de dados, faça o seguinte:
- Clique no link acima para abrir a fonte de dados.
- Clique em Fazer uma cópia desta fonte de dados .
- Clique em Copiar fonte de dados .
- Se você for promovido para conectar o painel ao BigQuery, clique em Autorizar .
- Opcionalmente, clique no cabeçalho e renomeie a fonte de dados.
- Na lista de projetos de cobrança, selecione o projeto usado para implantar a ferramenta License Tracker.
- Clique em Reconectar .
- Na caixa de diálogo Aplicar alterações de conexão , selecione Aplicar .
Copie o painel:
Abra o painel de amostra .
O painel não está conectado a uma fonte de dados, portanto não mostra nenhum dado.
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.
Conceda acesso ao painel a outros usuários
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ê deve:
- Compartilhe o painel e conceda permissão ao usuário para visualizar o relatório.
- Conceda os papéis de visualizador de dados do BigQuery (
roles/bigquery.dataViewer
) e usuário do job do BigQuery (roles/bigquery.jobUser
) ao usuário. Você pode conceder essas funções no nível do conjunto de dados ou do projeto .
Personalize o painel
Você pode personalizar o painel usando o editor de relatórios do Looker Studio para modificar gráficos existentes ou adicionar gráficos adicionais.
Todos os gráficos no painel de amostra são baseados na visualização placements
no conjunto de dados do BigQuery. Esta visualização contém todas as veiculações em todos os projetos e usa o seguinte esquema:
Coluna | Tipo de dados | Descrição |
---|---|---|
ID_da_instância | INTEIRO | ID da instância |
nome_da_instância | CORDA | Nome da instância |
zona_de_instância | CORDA | ID da zona da instância |
instância_projeto_id | CORDA | ID do projeto da instância |
arrendamento | CORDA | S se estiver executando em um nó de locatário individual, F caso contrário |
tipo_de_nó | CORDA | Tipo de nó de locatário individual |
node_project_id | CORDA | ID do projeto do nó; esse valor pode ser diferente de instance_project_id no caso de nós de locatário individual compartilhados |
ID_do_servidor | CORDA | ID exclusivo do servidor físico |
família_do_sistema_operacional | CORDA | WIN , LINUX ou null se não for reconhecido |
licença | CORDA | String de licença usada pela imagem |
tipo_de_licença | CORDA | BYOL , SPLA ou null se não for reconhecido |
tipo_máquina | CORDA | Tipo de máquina da instância |
memória_mb | INTEIRO | Quantidade de RAM (em MB) alocada para a instância |
vcpu_count | INTEIRO | Número de vCPUs alocadas à instância |
vcpu_min_allocated | INTEIRO | Número mínimo de vCPUs alocadas para instância; esse valor pode ser diferente de vcpu_count quando você está sobrecarregando CPUs em VMs de locatário individual |
política_de_manutenção | CORDA | Política de manutenção, por exemplo |
data_inicial | TIMESTAMP | Início da colocação |
data_fim | TIMESTAMP | Fim da veiculação |
Você pode usar a visualização placement
ao personalizar gráficos existentes ou adicionar seus próprios gráficos ao painel.
Atualizar a ferramenta License Tracker
Esta seção descreve como você pode atualizar uma implantação existente da ferramenta License Tracker para usar uma versão mais recente do aplicativo ou para usar uma configuração diferente.
No console do Google Cloud, abra o Cloud Shell clicando em Ativar Cloud Shell
botão.
Defina uma variável de ambiente para conter o ID do seu projeto :
gcloud config set project PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto que contém sua implantação existente.
Selecione a região do Cloud Run da sua implantação existente:
gcloud config set run/region REGION
Clone o repositório GitHub e mude para o branch
latest
:git clone https://github.com/GoogleCloudPlatform/gce-license-tracker.git cd gce-license-tracker git checkout latest
Envie uma versão para o Cloud Build:
gcloud builds submit . --substitutions=_REGION=$(gcloud config get-value run/region)
A compilação atualiza sua implantação existente e leva cerca de 3 minutos para ser concluída.