Monitore o uso de nós de VM e de locatário individual para relatórios de licença


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:

Vários 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.

Arquitetura

Crie um projeto

Para configurar o Cloud Run e o Cloud Scheduler, crie um novo projeto:

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the BigQuery, Cloud Logging, Resource Manager, Cloud Build, Cloud Scheduler, and Cloud Run APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the BigQuery, Cloud Logging, Resource Manager, Cloud Build, Cloud Scheduler, and Cloud Run APIs.

    Enable the APIs

Implantar o aplicativo

Agora você implanta a ferramenta License Tracker no Cloud Run:

  1. No console do Google Cloud, abra o Cloud Shell clicando em Ativar Cloud ShellAtive o Cloud Shell. botão.

    Acesse o console do Google Cloud

  2. 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.

  3. 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 .

  4. 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)")
    
  5. 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"
    
  6. 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"
    
  7. 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
    
  8. 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:

  1. No console do Google Cloud, acesse Cloud Run > Jobs .

    Acesse jobs do Cloud Run

  2. Selecione o trabalho do rastreador de licença para abrir os detalhes do trabalho.

  3. 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 .

  4. Se preferir, visualize os registros no Cloud Logging:

    Vá para o registro

Crie um painel

Agora você cria um painel do Looker Studio criando uma cópia de um painel de amostra:

  1. Copie as fontes de dados do painel:

    1. Nós
    2. Nós licenciados
    3. Histograma de nós
    4. Histograma de instâncias

    Para cada fonte de dados, faça o seguinte:

    1. Clique no link acima para abrir a fonte de dados.
    2. Clique em Fazer uma cópia desta fonte de dados .
    3. Clique em Copiar fonte de dados .
    4. Se você for promovido para conectar o painel ao BigQuery, clique em Autorizar .
    5. Opcionalmente, clique no cabeçalho e renomeie a fonte de dados.
    6. Na lista de projetos de cobrança, selecione o projeto usado para implantar a ferramenta License Tracker.
    7. Clique em Reconectar .
    8. Na caixa de diálogo Aplicar alterações de conexão , selecione Aplicar .
  2. Copie o painel:

    1. Abra o painel de amostra .

      O painel não está conectado a uma fonte de dados, portanto não mostra nenhum dado.

    2. Clique em … > Fazer uma cópia

    3. Na caixa de diálogo Copiar este relatório , selecione suas cópias das fontes de dados:

      Caixa de diálogo Copiar

    4. 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:

  1. Compartilhe o painel e conceda permissão ao usuário para visualizar o relatório.
  2. 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.

  1. No console do Google Cloud, abra o Cloud Shell clicando em Ativar Cloud ShellAtive o Cloud Shell. botão.

    Acesse o console do Google Cloud

  2. 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.

  3. Selecione a região do Cloud Run da sua implantação existente:

    gcloud config set run/region REGION
    
  4. 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
    
  5. 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.