Configurar Cloud Monitoring con un agente independiente

Cloud Monitoring te ayuda a obtener visibilidad del rendimiento, la disponibilidad y el estado de tus aplicaciones e infraestructura. Puedes usar Cloud Monitoring y otras partes de Observabilidad de Google Cloud para monitorizar, solucionar problemas y operar servicios de VMware Engine a gran escala.

La configuración del reenvío de métricas se define por separado para cada nube privada mediante un agente independiente. Cada nube privada requiere un agente independiente, alojado en una máquina virtual de Compute Engine o en una máquina virtual de VMware.

Una vez que hayas habilitado correctamente el reenvío de métricas, podrás verlas en el explorador de métricas de Cloud Monitoring. Los tipos de recursos y las métricas de VMware Engine empiezan por external.googleapis.com/vmware/vcenter y el FQDN de vCenter se etiqueta como parte del espacio de nombres.

Antes de empezar

En los pasos de este documento se presupone que primero debes hacer lo siguiente:

  1. Habilita la API de Cloud Monitoring
  2. Identifica una cuenta de usuario de solución para usarla con el agente independiente y define una contraseña segura para esa cuenta.
  3. Crea una VM de Compute Engine o una VM de VMware para usarla como host del agente independiente. Las VMs de Compute Engine deben estar en una red de nube privada virtual (VPC) emparejada con la red de VPC de la nube privada que contenga los recursos que quieras monitorizar.

    Para ver un ejemplo de cómo crear una máquina virtual de Compute Engine, consulta la guía de inicio rápido de Compute Engine con una máquina virtual de Linux. Para ver un ejemplo de cómo crear una VM de VMware, consulta Crear una VM de VMware.

Si usas una VM de Compute Engine para alojar el agente independiente, Google gestiona la rotación de claves de la cuenta de servicio que conectes. Sin embargo, puede ser rentable crear una máquina virtual de VMware si tienes capacidad sin usar en tu nube privada y no te importa gestionar la rotación de claves por tu cuenta.

Independientemente de dónde crees la VM host del agente, debe cumplir los siguientes requisitos:

Requisitos

Tu VM host del agente debe cumplir los siguientes requisitos del sistema:

  • Sistemas operativos Linux compatibles:
    • CentOS 6, 7 u 8
    • Red Hat Enterprise Linux 6, 7 u 8
    • SLES 12 o 15
    • Ubuntu 14, 16, 18 o 19
  • Tener al menos 4 GB de RAM
  • 300 MB de espacio de instalación disponible
  • El directorio de instalación se ha definido como /opt/bpagent
  • Utilidad de CLI de curl instalada

Tu máquina virtual host del agente también necesita acceder a las siguientes direcciones para recoger y enviar métricas y registros:

  • Puerto 443 (TCP) para la conexión HTTPS a vCenter Server (predeterminado)
  • monitoring.googleapis.com:443 (external access)
  • logging.googleapis.com:443 (external access)

Habilitar el reenvío de métricas

El proceso de configurar la VM del host del agente y habilitar el reenvío de métricas consta de los siguientes pasos:

  1. Instalar el agente en la máquina virtual
  2. Especificar una cuenta de servicio
  3. Configurar el agente para que acceda a tu nube privada para obtener métricas
  4. Configurar el agente para que acceda a la cuenta de servicio para generar informes
  5. Recoger métricas y registros
  6. Configurar una nube privada para el reenvío de syslog

Instalar el agente independiente

Para instalar el agente en tu VM host, haz lo siguiente:

  1. Conéctate a la VM del host del agente.
  2. Ejecuta la secuencia de comandos de instalación de forma remota:

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

En los sistemas en los que la VM host del agente no tenga acceso a la red externa, puedes descargar el agente y la secuencia de comandos de instalación con los siguientes comandos:

  • Para obtener el agente independiente, ejecuta lo siguiente:

    curl -S https://storage.googleapis.com/gcve-observability-agent/latest/vmware-linux-amd64/artifacts/bpagent-headless-vmware.tar.gz > agent.tar.gz
    
  • Para obtener la secuencia de comandos de instalación, ejecuta lo siguiente:

    curl -S https://storage.googleapis.com/gcve-observability-agent/latest/vmware-linux-amd64/installer/install.sh > install.sh
    
  • Para instalar el agente, ejecuta lo siguiente en la VM host del agente:

    sudo sh install.sh agent.tar.gz
    

Especificar una cuenta de servicio

Para reenviar datos del agente a Cloud Monitoring, se necesita una cuenta de servicio de tu proyecto Google Cloud . Esa cuenta de servicio debe tener el rol Administrador de Monitoring para las métricas y el rol Escritor de registros para los registros.

Si no tienes una cuenta de servicio para monitorizar y registrar aplicaciones, crea una:

  1. En la Google Cloud consola, ve a IAM y administración > Cuentas de servicio.

    Ir a Cuentas de servicio

  2. Haz clic en Seleccionar un proyecto y, a continuación, selecciona la organización, la carpeta o el proyecto en el que quieras crear la cuenta de servicio.

  3. Haz clic en Crear cuenta de servicio.

  4. Introduce un nombre, un ID y una descripción para la cuenta de servicio. Te recomendamos que indiques que la cuenta se usa para la integración del agente.

  5. Haz clic en Crear y continuar.

  6. En Rol, selecciona Administrador de monitorización.

  7. En Rol, selecciona Escritor de registros.

  8. Haz clic en Continuar.

  9. Haz clic en Listo.

Si has creado una VM de VMware como VM host del agente, recupera la clave privada de la cuenta de servicio para poder usarla en la configuración del agente:

  1. En la Google Cloud consola, ve a IAM y administración > Cuentas de servicio.

    Ir a Cuentas de servicio

  2. Haz clic en Seleccionar un proyecto y, a continuación, selecciona la organización, la carpeta o el proyecto en el que se encuentra tu cuenta de servicio.

  3. Busca tu cuenta de servicio en la lista de cuentas de servicio.

  4. En la columna Acciones, haga clic en el menú de acciones de la cuenta de servicio y seleccione Gestionar claves.

  5. Haz clic en Añadir clave y selecciona Crear clave.

  6. Selecciona el tipo de clave JSON y haz clic en Crear.

  7. Abre el archivo JSON generado y copia todo su contenido. Tanto la métrica como la recogida de registros usan el mismo archivo de clave JSON.

  8. En la VM del host del agente, copia el archivo de clave JSON en el directorio /opt/bpagent/config/destinations/google_cloud.

Configurar el agente para que acceda a tu nube privada y obtenga métricas

El agente independiente necesita acceder a tu nube privada para recoger métricas. En la máquina virtual del host del agente, configura el acceso copiando y configurando el archivo vmware_vcenter.yaml:

  1. Copia vmware_vcenter.yaml en el directorio config/metrics/sources:

    cp /opt/bpagent/config/metrics/examples/vmware_vcenter.yaml /opt/bpagent/config/metrics/sources
    
  2. Edita el vmware_vcenter.yaml para que coincida con la información de tu entorno de 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

    Haz los cambios siguientes:

    • VCSA_FQDN: el nombre de dominio completo (FQDN) del dispositivo vCenter Server en tu nube privada
    • SOLUTION_USER_PASSWORD: la contraseña que corresponde a la cuenta de usuario de la solución que se está usando
    • SOLUTION_USER_ACCOUNT: la cuenta de usuario de la solución que usa el agente para enviar información.

Configurar el agente para que acceda a la cuenta de servicio para generar informes

El agente independiente necesita acceso a Google Cloud Observability para enviar métricas y registros. Configura el agente para que acceda al proyecto que se usa para generar informes a través de la cuenta de servicio que tiene permisos de monitorización y registro.

En la máquina virtual del host del agente, copia y configura el archivo log_agent.yaml:

  1. Copia log_agent.example.yaml en log_agent.yaml antes de editar:

    cp /opt/bpagent/config/log_agent.example.yaml /opt/bpagent/config/log_agent.yaml
    
  2. En la parte inferior de log_agent.yaml, introduce el nombre del proyecto y la ruta completa al archivo de clave JSON. En el caso de las VMs de host del agente creadas en Compute Engine, elimina o comenta la línea 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

    Haz los cambios siguientes:

    • PROJECT_ID: ID del proyecto en el que quieres generar los registros.
    • JSON_KEY_FILE: nombre del archivo de clave privada de tu cuenta de servicio. Elimina o comenta esta línea en las VMs de host del agente creadas en Compute Engine.

    Si necesitas reenviar el syslog desde ESXi, en el agente de registro independiente, haz lo siguiente para cambiar el puerto predeterminado de 5142 a 514:

    1. Ve a /opt/bpagent/config.
    2. Cambia el número de puerto a 514 de la siguiente manera:
    - id: vmware-vcenter-logs
        # A syslog address of the form `:`
        listen_address: 0.0.0.0:514
        # Enable TLS for the TCP listener
        enable_tls: false
    

Recoger métricas y registros

Para recoger métricas o registros, el agente independiente debe ejecutarse en la máquina virtual del host del agente. Conéctate a la VM del host del agente y usa los siguientes comandos para iniciar o detener el agente:

  • Para iniciar el agente en tu máquina virtual host, ejecuta lo siguiente:

    systemctl start bpagent
    
  • Para detener el agente en tu máquina virtual host, ejecuta lo siguiente:

    systemctl stop bpagent
    

Configurar una nube privada para el reenvío de syslog

VMware Engine se integra con Cloud Logging reenviando mensajes syslog de vCenter y NSX al agente independiente. El agente independiente está configurado para analizar los registros de vCenter y NSX para que Cloud Logging los lea.

Para reenviar mensajes syslog desde VMware Engine, siga estos pasos:

  • Para reenviar syslog de vCenter, sigue los pasos que se indican en Reenviar mensajes de syslog de vCenter. En el campo Servidor, introduce la dirección IP o el nombre de host de tu máquina virtual de host del agente. El agente independiente usa el protocolo de comunicación TCP y escucha en el puerto 5142. El agente independiente debe estar en ejecución para que la configuración de syslog se conecte correctamente.
  • Para reenviar registros syslog de NSX, sigue los pasos que se indican en Reenviar mensajes syslog de NSX. En el campo FQDN or IP Address (Nombre de dominio completo o dirección IP), introduce la dirección IP o el nombre de host de tu máquina virtual de host del agente. El agente independiente usa el protocolo de comunicación TCP y escucha en el puerto 5142.

Si tiene previsto reenviar syslog desde hosts ESXi, cambie el puerto predeterminado en el que escucha el agente de registro de 5142 a 514. En ese caso, usa el mismo puerto (514) para reenviar syslog desde vCenter y NSX.

Desinstalar el agente

Para quitar el agente de una VM, conéctate a la VM del agente y ejecuta los siguientes comandos en la línea de comandos:

  1. Detén e inhabilita el agente independiente:

    systemctl stop bpagent
    
    systemctl disable bpagent
    
  2. Ejecuta los siguientes comandos para quitar el servicio del agente independiente:

    rm /etc/systemd/system/bpagent.service
    
    rm -rf /opt/bpagent
    
  3. Actualiza la configuración del sistema en función de los cambios que hayas hecho en el servicio y elimina las unidades que hayan fallado:

    systemctl daemon-reload
    
    systemctl reset-failed
    

Paneles de control de Cloud Monitoring

Una vez que hayas habilitado el reenvío de métricas, podrás instalar paneles predefinidos para VMware Engine. Los siguientes paneles de control le proporcionan información agregada de todas las fuentes que especifique:

  • Panel de control de resumen: vista general que muestra los recursos clave, como centros de datos, clústeres y máquinas virtuales.
  • Panel de control de contención: uso de recursos de almacenamiento, CPU, memoria y redes para ayudarte a localizar las VMs y los hosts principales por demanda de recursos.
  • Panel de rendimiento de las máquinas virtuales: indicadores de rendimiento de las instancias de máquina virtual (VM) que se pueden filtrar por nombre de instancia y usar para comparar el rendimiento de varias VMs entre sí.

Para acceder a un panel de control de VMware Engine, sigue estos pasos:

  1. En la Google Cloud consola, ve a Monitorización > Paneles de control.

    Ir a Paneles

  2. En la pestaña Biblioteca de muestras, selecciona la categoría VMware.

  3. Selecciona el panel de control que te interese y haz clic en Importar.

Las definiciones de estos paneles de control también se almacenan en GitHub. Para ver los pasos para instalar o ver las definiciones como paneles de control personalizados, consulta Instalar paneles de control de ejemplo.

Alertas de Cloud Monitoring

Puede usar métricas de su integración para activar alertas y notificaciones basadas en umbrales e incidencias personalizadas. Por ejemplo, puedes hacer que Cloud Monitoring te envíe una notificación por SMS cuando alguien cree una nueva máquina virtual en tu nube privada.

Para obtener más información, consulta la introducción a las alertas.

Lista de métricas recogidas

Una vez que hayas habilitado correctamente el reenvío de métricas, podrás verlas en el explorador de métricas de Cloud Monitoring. Los tipos de recursos y de métricas de VMware Engine empiezan por el prefijo external.googleapis.com/vmware/vcenter. en el explorador de métricas.

Esta es la lista completa de las métricas recogidas de VMware Engine, sin el prefijo:

Tipo de recurso y métrica Descripción
cluster.cpu.available CPU disponible en un clúster, en megahercios.
cluster.memory.available Memoria disponible en un clúster, en bytes.
cluster.cpu.threads Número de hilos de CPU de un clúster
cluster.cpu.effective CPU efectiva de un clúster de todos los hosts en ejecución. No se tienen en cuenta los hosts que no responden o que están en modo de mantenimiento.
cluster.effective_hosts Número de hosts efectivos de un clúster. No se tienen en cuenta los hosts que no responden o que están en modo de mantenimiento.
cluster.memory.effective Memoria efectiva de un clúster de todos los hosts en ejecución. No se tienen en cuenta los hosts que no responden o que están en modo de mantenimiento.
cluster.hosts Número de hosts de un clúster
cluster.vsan.latency Latencia de vSAN de un clúster, en microsegundos
cluster.vsan.throughput Rendimiento de lectura y escritura de vSAN de un clúster, en bytes.
cluster.vsan.iops IOPS de vSAN de un clúster
cluster.vsan.congestions Valor de congestión de vSAN de un clúster
cluster.vsan.oio E/S pendientes de vSAN en un clúster
datacenter.cpu.average_host_utilization Utilización media de los hosts de un centro de datos, expresada como porcentaje.
datacenter.clusters Número de clústeres de un centro de datos
datacenter.datastores Número de almacenes de datos en un centro de datos
datacenter.hosts Número de hosts de un centro de datos
datacenter.host_systems Número de sistemas host de un centro de datos
datacenter.hosts/powered_on Número de hosts encendidos en un centro de datos
datacenter.hosts/powered_off Número de hosts apagados en un centro de datos
datacenter.disk/space Espacio total en disco de un centro de datos, en terabytes
datastore.capacity_bytes Capacidad de un almacén de datos, en bytes.
datastore.capacity_utilization Utilización de la capacidad de un almacén de datos, expresada como porcentaje.
host_system.network.transmitted_packets Número de paquetes de red transmitidos por el sistema host.
host_system.network.received_packets Número de paquetes de red recibidos por el sistema host.
host_system.dropped_packets Número de paquetes de red descartados por el sistema host.
host_system.network.adapters Número de adaptadores de red del sistema host
host_system.memory.utilization Uso de la memoria del sistema host, expresado como porcentaje.
host_system.memory.utilization_ratio Ratio de uso de memoria del sistema host.
host_system.memory.used Memoria usada por el sistema host, en megabytes.
host_system.disk.read Lectura de disco del sistema host, expresada en kilobytes por segundo.
host_system.disk_latency Latencia de disco del sistema host, en milisegundos.
host_system.cpu.usage Uso de CPU del sistema host, en porcentaje.
host_system.cpu.utilization_ratio Ratio de uso de CPU del sistema host.
host_system.cpu.capacity Capacidad de CPU del sistema host, en megahercios.
host_system.cpu.reserved_capacity Capacidad de CPU reservada del sistema host, en megahercios.
host_system.cpu.average_speed Velocidad media de la CPU del sistema host, en megahercios.
host_system.cpu.used CPU usada por el sistema host, en megahercios.
host_system.vsan.throughput Rendimiento de lectura y escritura de vSAN del sistema host, en bytes.
host_system.vsan.iops IOPS de vSAN del sistema host
host_system.vsan.latency Latencia de vSAN del sistema host, en microsegundos.
host_system.vsan.client_cache_hits Aciertos de la caché de cliente de vSAN del sistema host
host_system.vsan.client_cache_hit_rate Tasa de aciertos de la caché de cliente de vSAN del sistema host, expresada como porcentaje.
host_system.vsan.congestions Valor de congestión de vSAN del sistema host.
resource_pool.memory.swapped_bytes Memoria intercambiada de vCenter, en megabytes
resource_pool.memory.shared_bytes Memoria compartida de vCenter, en megabytes
resource_pool.memory.private_bytes Memoria privada de vCenter, en megabytes
resource_pool.memory.shares Número de recursos de memoria de vCenter
resource_pool.memory.overhead_usage_bytes Uso de la sobrecarga de memoria de vCenter, en megabytes.
resource_pool.memory.host_usage_bytes Uso de memoria del host de vCenter, en megabytes
resource_pool.memory.active_guest_usage_bytes Uso activo de memoria de invitado de vCenter, en megabytes
resource_pool.memory.balloon_size Tamaño de la memoria de balloon de vCenter, en megabytes
resource_pool.cpu.usage CPU usada por vCenter, en megahercios.
resource_pool.cpu.shares Número de recursos compartidos de CPU en el grupo de recursos, en megabytes.
vm.memory.ballooned Tamaño de la memoria de balloon de la VM, en megabytes
vm.network.throughput_bytes Rendimiento de la red de la VM, en kilobytes por segundo.
vm.memory.used_percent Memoria usada por la VM, como porcentaje de la memoria disponible.
vm.memory.usage_bytes Memoria usada por la VM, en megabytes
vm.disk.throughput_bytes Rendimiento de lectura y escritura de disco de la VM, en kilobytes por segundo.
vm.disk.used_percent Uso del disco de la VM, como porcentaje del almacenamiento disponible.
vm.disk.usage_bytes Uso de disco de la VM, en bytes.
vm.disk.free_bytes Espacio en disco disponible de la VM, en bytes.
vm.cpu.used_percent Uso de CPU de la VM, como porcentaje de la CPU disponible.
vm.cpu.usage Uso de CPU de la VM, en megahercios.
vm.cpu.ready_percent CPU de la VM que está lista, pero no puede ejecutarse, en porcentaje.
vm.vsan.throughput Rendimiento de lectura y escritura de vSAN de la VM, en bytes.
vm.vsan.iops IOPS de vSAN de la VM
vm.vsan.latency Latencia de vSAN de la máquina virtual, en microsegundos.
vm.vsan.readCount Número de lecturas de vSAN de la VM.
vm.vsan.writeCount Número de escrituras vSAN de la VM
vsphere.cpu.available CPU disponible en los clústeres gestionados por vSphere, en gigahercios
vsphere.memory.available Memoria disponible en los clústeres gestionados por vSphere, en gigabytes.
vsphere.clusters.total Número de clústeres gestionados por vSphere
vsphere.clusters Número de clústeres gestionados por vSphere con el código de color del estado del clúster (como verde, gris, rojo o amarillo).
vsphere.cpu.cpus Número total de núcleos de CPU del sistema host gestionados por vSphere
vsphere.datacenters Número de centros de datos gestionados por vSphere
vsphere.datastores.total Número de almacenes de datos en vSphere
vsphere.datastores Número de almacenes de datos gestionados por vSphere con el código de color del estado del almacén de datos (como verde, gris, rojo o amarillo).
vsphere.disk.space Espacio total en disco conectado en vSphere, en terabytes.
vsphere.host_systems Número de sistemas host en vSphere
vsphere.hosts Número de sistemas host gestionados por vSphere con el código de color del estado del sistema host (como verde, gris, rojo o amarillo).
vsphere.network.adapters Número de adaptadores de red en vSphere
vsphere.hosts.powered_off Número de hosts apagados en vSphere
vsphere.hosts.powered_on Número de hosts encendidos en vSphere
vsphere.virtual_machines.total Número de VMs en todos los clústeres de vSphere
vsphere.virtual_machines Número de VMs gestionadas por vSphere con el código de color del estado de la VM (como verde, gris, rojo o amarillo)