Como configurar o Cloud Monitoring com um agente independente

O Cloud Monitoring ajuda você a ganhar visibilidade do desempenho, da disponibilidade e da integridade de seus aplicativos e infraestrutura. É possível usar o Cloud Monitoring e outras partes da observabilidade do Google Cloud para monitorar, solucionar problemas e operar serviços do VMware Engine em escala.

Você define a configuração de encaminhamento de métricas separadamente para cada nuvem privada usando um agente independente. Cada nuvem privada requer um agente separado, hospedado em uma VM do Compute Engine ou em uma VM do VMware.

Depois de ativar o encaminhamento de métricas, você poderá vê-las no explorador de métricas do Metrics Explorer no Cloud Monitoring. Os tipos de recursos e métricas do VMware começam com external.googleapis.com/vmware/vcenter, e o FQDN do vCenter é marcado como parte do namespace.

Antes de começar

Nas etapas deste documento, presumimos que você fará o seguinte:

  1. Ative a API Cloud Monitoring.
  2. Identifique uma conta de usuário da solução para usar com o agente autônomo e defina uma senha forte para a conta de usuário da solução.
  3. Crie uma VM do Compute Engine ou uma VM da VMware para usar como host do agente autônomo. As VMs do Compute Engine precisam estar em uma rede de nuvem privada virtual (VPC) que faz peering com a rede VPC de nuvem privada que contém os recursos que você quer monitorar.

    Para ver um exemplo de como criar uma VM do Compute Engine, consulte o Guia de início rápido do Compute Engine usando uma VM do Linux. Veja um exemplo de como criar uma VM da VMware em Como criar uma VM da VMware.

Se você usa uma VM do Compute Engine para hospedar o agente independente, o Google gerencia a rotação de chaves da conta de serviço que você conecta. No entanto, pode ser mais econômico criar uma VM da VMware se você tiver capacidade não utilizada na nuvem privada e não se importar de gerenciar a rotação de chaves sozinho.

Independentemente de onde você cria a VM do host do agente, ela precisa atender aos seguintes requisitos:

Requisitos

A VM do host do agente precisa atender aos seguintes requisitos do sistema:

  • Sistema operacionais Linux compatíveis:
    • CentOS 6, 7 ou 8
    • Red Hat Enterprise Linux 6, 7 ou 8
    • SLES 12 ou 15
    • Ubuntu 14, 16, 18 ou 19
  • Pelo menos 4 GB de RAM
  • Espaço de instalação de 300 MB disponível
  • Diretório de instalação definido como /opt/bpagent
  • Utilitário de CLI curl instalado

A VM do host do agente também precisa acessar os seguintes endereços para coletar e enviar métricas e registros:

  • Porta 443 (TCP) para a conexão HTTPS com o servidor vCenter (padrão)
  • monitoring.googleapis.com:443 (external access)
  • logging.googleapis.com:443 (external access)

Como ativar o encaminhamento de métricas

O processo de configuração da VM do host do agente e ativação do encaminhamento de métricas consiste nas seguintes etapas:

  1. Instalar o agente na VM
  2. Especificar uma conta de serviço
  3. Configurar o agente para acessar sua nuvem privada para métricas
  4. Configure o agente para acessar a conta de serviço para gerar relatórios
  5. Coletar métricas e registros
  6. Configure uma nuvem privada para o encaminhamento syslog

Como instalar o agente independente

Para instalar o agente na VM do host, faça o seguinte:

  1. Conecte-se à VM do host do agente.
  2. Execute o script de instalação remotamente:

    sudo sh -c "$(curl -S https://storage.googleapis.com/gcve-observability-agent/latest/vmware-linux-amd64/installer/install.sh)"
    

Para sistemas em que a VM do host do agente talvez não tenha acesso de rede externa, faça o download do agente e do script de instalação usando os seguintes comandos:

  • Para conseguir o agente independente, execute o seguinte:

    curl -S https://storage.googleapis.com/gcve-observability-agent/latest/vmware-linux-amd64/artifacts/bpagent-headless-vmware.tar.gz > agent.tar.gz
    
  • Para receber o script de instalação, execute o seguinte:

    curl -S https://storage.googleapis.com/gcve-observability-agent/latest/vmware-linux-amd64/installer/install.sh > install.sh
    
  • Para instalar o agente, execute o seguinte na VM do host do agente:

    sudo sh install.sh agent.tar.gz
    

Especificar uma conta de serviço

Para encaminhar dados do agente para o Cloud Monitoring, é necessário ter uma conta de serviço do seu projeto do Google Cloud. Essa conta de serviço precisa ter o papel Administrador do Monitoring para métricas e o papel Gravador de registros para registros.

Se você não tiver uma conta de serviço para monitorar e registrar aplicativos, crie uma:

  1. No console do Google Cloud, acesse IAM e administrador > Contas de serviço.

    Acessar a página "Contas de serviço"

  2. Clique em Criar conta de serviço.

  3. Insira um nome, um ID e uma descrição para a conta do serviço. Recomendamos que você anote a conta usada na integração do BindPlane.

  4. Clique em Criar e continuar.

  5. Em Papel, selecione Administrador do Monitoring.

  6. Em Papel, selecione Gravador de registros.

  7. Clique em Continuar.

  8. Clique em Concluído.

Se você criou uma VM da VMware como a VM do host do agente, recupere a chave privada da conta de serviço para que possa usá-la para configurar o agente:

  1. No console do Google Cloud, acesse IAM e administrador > Contas de serviço.

    Acessar a página "Contas de serviço"

  2. Encontre sua conta de serviço na lista.

  3. Na coluna Ações, clique no menu de ações da conta de serviço e selecione Gerenciar chaves.

  4. Clique em Adicionar chave e selecione Criar nova chave.

  5. Selecione o tipo de chave JSON e clique em Criar.

  6. Abra o arquivo JSON gerado e copie todo o conteúdo dele. As métricas e a coleta de registros usam o mesmo arquivo de chave JSON.

  7. Na VM do host do agente, copie o arquivo de chave JSON para o diretório /opt/bpagent/config/destinations/google_cloud.

Configurar o agente para acessar sua nuvem privada para métricas

O agente independente precisa acessar sua nuvem privada para coletar métricas. Na VM do agente, configure o acesso copiando e configurando o arquivo vmware_vcenter.yaml:

  1. Copie vmware_vcenter.yaml para o diretório config/metrics/sources:

    cp /opt/bpagent/config/metrics/examples/vmware_vcenter.yaml /opt/bpagent/config/metrics/sources
    
  2. Edite o vmware_vcenter.yaml para corresponder às informações no seu ambiente do VMware Engine:

    collection_interval: 1m0s
    connection_info:
    connection_timeout: "30"
    enable_performance_counters: "true"
    host: VCSA_FQDN
    password: SOLUTION_USER_PASSWORD
    performance_counter_end_time: ""
    performance_counter_query_timeout: "15"
    performance_counter_start_time: ""
    port: "443"
    sdk_path: ""
    ssl_config: "No Verify"
    username: SOLUTION_USER_ACCOUNT
    

    Substitua:

    • VCSA_FQDN: o nome de domínio totalmente qualificado (FQDN, na sigla em inglês) do vCenter Server Appliance na nuvem privada
    • SOLUTION_USER_PASSWORD: a senha que corresponde à conta de usuário da solução que está sendo usada
    • SOLUTION_USER_ACCOUNT: a conta de usuário da solução que o agente usa para relatar informações

Configurar o agente para acessar a conta de serviço para gerar relatórios

O agente autônomo precisa de acesso à observabilidade do Google Cloud para enviar métricas e registros. Configure o agente para acessar o projeto usado para a geração de relatórios usando conta de serviço que tem permissões de monitoramento e geração de registros.

Na VM do host do agente, copie e configure o arquivo log_agent.yaml:

  1. Copie log_agent.example.yaml para log_agent.yaml antes de editar:

    cp /opt/bpagent/config/log_agent.example.yaml /opt/bpagent/config/log_agent.yaml
    
  2. Na parte inferior de log_agent.yaml, insira o nome do projeto e o caminho completo para o arquivo de chave JSON. Para VMs de host de agente criadas no Compute Engine, é possível remover ou comentar a linha credentials_file.

    ...
    - id: my_project_destination
      project_id: PROJECT_ID
      type: google_cloud_output
      credentials_file: /opt/bpagent/config/destinations/google_cloud/JSON_KEY_FILE
    

    Substitua:

    • PROJECT_ID: ID do projeto em que você quer gerar registros.
    • JSON_KEY_FILE: nome do arquivo de chave privada da conta de serviço. Remova ou comente essa linha para as VMs do host do agente criadas no Compute Engine.

Coletar métricas e registros

Para coletar métricas ou registros, o agente autônomo precisa estar em execução na VM do host do agente. Conecte-se à VM do host do agente e use os seguintes comandos para iniciar ou interromper o agente:

  • Para iniciar o agente na VM do host, execute o seguinte:

    systemctl start bpagent
    
  • Para interromper o agente na VM do host, execute o seguinte:

    systemctl stop bpagent
    

Configurar uma nuvem privada para o encaminhamento de syslog

O VMware Engine integra-se ao Cloud Logging encaminhando mensagens syslog do vCenter e NSX-T para o agente independente. O agente independente é configurado para analisar os registros do vCenter e do NSX-T para leitura do Cloud Logging.

Para encaminhar mensagens syslog do VMware Engine, faça o seguinte:

  • Para o encaminhamento syslog do vCenter, siga as etapas em Encaminhar mensagens syslog do vCenter. No campo Servidor, insira o endereço IP ou o nome do host da VM do host do agente. O agente autônomo usa o protocolo de comunicação TCP e detecta na porta 5142. O agente independente precisa estar em execução para que a configuração do syslog se conecte com êxito.
  • Para o encaminhamento de syslog NSX-T, siga as etapas em Encaminhar mensagens syslog NSX-T. No campo FQDN ou endereço IP, insira o endereço IP ou o nome do host da VM do host do agente. O agente autônomo usa o protocolo de comunicação TCP e detecta na porta 5142.

Como desinstalar o agente

Para remover o agente de uma VM, conecte-se à VM do agente e execute os seguintes comandos na linha de comando:

  1. Interrompa e desative o agente independente:

    systemctl stop bpagent
    
    systemctl disable bpagent
    
  2. Execute os seguintes comandos para remover o serviço do agente independente:

    rm /etc/systemd/system/bpagent.service
    
    rm -rf /opt/bpagent
    
  3. Atualize a configuração do sistema com base nas alterações do serviço e limpe as unidades com falha:

    systemctl daemon-reload
    
    systemctl reset-failed
    

Painéis do Cloud Monitoring

Depois de ativar o encaminhamento de métricas, instale painéis predefinidos para o VMware Engine. Os painéis a seguir fornecem informações agregadas em todas as fontes que você especificar:

  • Painel de visão geral: visualização de alto nível que lista os principais recursos, como data centers, clusters e VMs.
  • Painel de contenção: utilização de recursos para armazenamento, CPU, memória e rede para ajudar você a localizar as principais VMs e hosts por demanda de recursos.
  • Painel de desempenho de máquina virtual: indicadores de desempenho de instância de máquina virtual (VM) que podem ser filtrados por nome de instância e usados para comparar o desempenho de várias VMs entre si.

Para acessar um painel do VMware Engine, faça o seguinte:

  1. No console do Google Cloud, acesse Monitoramento > Painéis.

    Vá para Painéis

  2. Na guia Biblioteca de amostra, selecione a categoria VMware.

  3. Selecione o painel de interesse e clique em Importar.

As definições desses painéis estão armazenadas no GitHub. Para ver as etapas de instalação ou visualização das definições como painéis personalizados, consulte Instalar painéis de amostra.

Alertas do Cloud Monitoring

Use as métricas da integração para acionar alertas e notificações com base em limites personalizados e incidentes. Por exemplo, é possível fazer com que o Cloud Monitoring envie uma notificação por SMS quando alguém criar uma nova VM na nuvem privada.

Para saber mais detalhes, consulte Introdução aos alertas.

Lista de métricas coletadas

Depois de ativar o encaminhamento de métricas, você poderá vê-las no explorador de métricas do Metrics Explorer no Cloud Monitoring. Os tipos de recursos e métricas do VMware Engine começam com o prefixo external.googleapis.com/vmware/vcenter. no Metrics Explorer.

Esta é a lista completa de métricas coletadas para o VMware Engine, com o prefixo omitido:

Tipo de recurso e métrica Descrição
cluster.cpu.available CPU disponível em um cluster, em megahertz
cluster.memory.available Memória disponível em clusters em bytes
cluster.cpu.threads Número de threads de CPU em um cluster
cluster.cpu.effective CPU efetiva em um cluster de todos os hosts em execução. Os hosts que não respondem ou no modo de manutenção não são contados.
cluster.effective_hosts Número de hosts efetivos em um cluster. Os hosts que não respondem ou no modo de manutenção não são contados.
cluster.memory.effective Memória efetiva em um cluster de todos os hosts em execução. Os hosts que não respondem ou no modo de manutenção não são contados.
cluster.hosts Número de hosts em um cluster
cluster.vsan.latency Latência vSAN de um cluster, em microssegundos
cluster.vsan.throughput Capacidade de leitura e gravação da vSAN de um cluster, em bytes
cluster.vsan.iops IOPS vSAN de um cluster
cluster.vsan.congestions Valor de congestionamento vSAN de um cluster
cluster.vsan.oio E/S pendente do vSAN (oio) em um cluster
datacenter.cpu.average_host_utilization Utilização média de host de um data center, como porcentagem
datacenter.clusters Número de clusters em um data center
datacenter.datastores Número de armazenamentos de dados em um data center
datacenter.hosts Número de hosts em um data center
datacenter.host_systems Número de sistemas host em um data center
datacenter.hosts/powered_on Número de hosts ativados em um data center
datacenter.hosts/powered_off Número de hosts desligados em um data center
datacenter.disk/space Espaço total em disco em um data center, em terabytes
datastore.capacity_bytes Capacidade de um armazenamento de dados, em bytes
datastore.capacity_utilization Utilização da capacidade de um armazenamento de dados, como porcentagem
host_system.network.transmitted_packets Número de pacotes de rede transmitidos pelo sistema host
host_system.network.received_packets Número de pacotes de rede recebidos pelo sistema host
host_system.dropped_packets Número de pacotes de rede descartados pelo sistema host
host_system.network.adapters Número de adaptadores de rede do sistema host
host_system.memory.utilization Utilização de memória do sistema host, como uma porcentagem
host_system.memory.utilization_ratio Proporção de utilização de memória do sistema host
host_system.memory.used Memória usada pelo sistema host, em megabytes
host_system.disk.read Leitura de disco do sistema host, em kilobytes por segundo
host_system.disk_latency Latência do disco do sistema host em milissegundos
host_system.cpu.usage Uso de CPU do sistema host, como uma porcentagem
host_system.cpu.utilization_ratio Proporção de utilização da CPU do sistema host
host_system.cpu.capacity Capacidade de CPU do sistema host, em megahertz
host_system.cpu.reserved_capacity Capacidade reservada da CPU do sistema host, em megahertz
host_system.cpu.average_speed Velocidade média da CPU do sistema host, em megahertz
host_system.cpu.used CPU usada pelo sistema host, em megahertz
host_system.vsan.throughput Capacidade de leitura/gravação da vSAN do sistema host, em bytes
host_system.vsan.iops IOPS vSAN do sistema host
host_system.vsan.latency Latência da vSAN do sistema host, em microssegundos
host_system.vsan.client_cache_hits Ocorrências em cache do cliente da vSAN do sistema host
host_system.vsan.client_cache_hit_rate Taxa de ocorrência em cache do cliente da vSAN do sistema host, como uma porcentagem
host_system.vsan.congestions Valor de congestionamento da vSAN do sistema host
resource_pool.memory.swapped_bytes Memória trocada pelo vCenter, em megabytes
resource_pool.memory.shared_bytes Memória compartilhada do vCenter, em megabytes
resource_pool.memory.private_bytes Memória privada do vCenter, em megabytes
resource_pool.memory.shares Número de compartilhamentos de memória do vCenter
resource_pool.memory.overhead_usage_bytes Uso de sobrecarga de memória do vCenter, em megabytes
resource_pool.memory.host_usage_bytes Uso do host de memória do vCenter, em megabytes
resource_pool.memory.active_guest_usage_bytes Uso de convidado ativo da memória do vCenter, em megabytes
resource_pool.memory.balloon_size Tamanho da memória do balão do vCenter, em megabytes
resource_pool.cpu.usage CPU usada pelo vCenter, em megahertz
resource_pool.cpu.shares Número de compartilhamentos da CPU no pool de recursos em megabytes
vm.memory.ballooned Tamanho da memória do balão da VM, em megabytes
vm.network.throughput_bytes Capacidade de rede da VM, em kilobytes por segundo
vm.memory.used_percent Memória usada pela VM, como porcentagem da memória disponível
vm.memory.usage_bytes Memória usada pela VM, em megabytes
vm.disk.throughput_bytes Capacidade de leitura e gravação do disco da VM, em kilobytes por segundo
vm.disk.used_percent Uso de disco da VM, como uma porcentagem do armazenamento disponível
vm.disk.usage_bytes Uso do disco da VM, em bytes
vm.disk.free_bytes Espaço em disco disponível da VM, em bytes
vm.cpu.used_percent Uso da CPU da VM como uma porcentagem da CPU disponível
vm.cpu.usage Uso de CPU da VM, em megahertz
vm.cpu.ready_percent CPU da VM que está pronta, mas não pode ser executada, como uma porcentagem
vm.vsan.throughput Capacidade de leitura/gravação da vSAN da VM, em bytes
vm.vsan.iops IOPS da vSAN da VM
vm.vsan.latency Latência da vSAN da VM, em microssegundos
vm.vsan.readCount Contagem de leitura da vSAN da VM
vm.vsan.writeCount Contagem de gravação da vSAN da VM
vsphere.cpu.available CPU disponível em clusters gerenciados pelo vSphere, em gigahertz
vsphere.memory.available Memória disponível em clusters gerenciados pelo vSphere, em gigabytes
vsphere.clusters.total Número de clusters gerenciados pelo vSphere
vsphere.clusters Contagem de clusters gerenciados pelo vSphere com o código de cores dor status do cluster (como verde, cinza, vermelho ou amarelo)
vsphere.cpu.cpus Número total de núcleos de CPU do sistema host gerenciados pelo vSphere
vsphere.datacenters Número de data centers gerenciados pelo vSphere
vsphere.datastores.total Número de armazenamentos de dados no vSphere
vsphere.datastores Contagem de armazenamentos de dados gerenciados pelo vSphere com o código de cores do status do armazenamento de dados (como verde, cinza, vermelho ou amarelo)
vsphere.disk.space Espaço total em disco anexado no vSphere, em terabytes
vsphere.host_systems Número de sistemas host no vSphere
vsphere.hosts Contagem de sistemas host gerenciados pelo vSphere com o código de cores do status do sistema host (como verde, cinza, vermelho ou amarelo)
vsphere.network.adapters Número de adaptadores de rede no vSphere
vsphere.hosts.powered_off Número de hosts desativados no vSphere
vsphere.hosts.powered_on Número de hosts ativados no vSphere
vsphere.virtual_machines.total Número de VMs em todos os clusters do vSphere
vsphere.virtual_machines Contagem de VMs gerenciadas pelo vSphere com o código de cores do status da VM (como verde, cinza, vermelho ou amarelo).