Configura Cloud Monitoring con un agente independiente

Cloud Monitoring te ayuda a obtener visibilidad en el rendimiento, la disponibilidad y el estado de la infraestructura y las aplicaciones. Puedes usar Cloud Monitoring y otras partes de la observabilidad de Google Cloud para supervisar, solucionar problemas y operar servicios de VMware Engine a gran escala.

Debes definir la configuración del reenvío de métricas por separado para cada nube privada mediante un agente independiente. Cada nube privada requiere un agente independiente, alojado en una VM de Compute Engine o en una VM de VMware.

Una vez que habilites el reenvío de métricas de forma correcta, podrás ver las métricas en el Explorador de métricas de Cloud Monitoring. Los tipos de recursos y las métricas de VMware Engine comienzan con external.googleapis.com/vmware/vcenter y el FQDN de vCenter se etiqueta como parte del espacio de nombres.

Antes de comenzar

En los pasos que se indican en este documento, se supone que primero harás lo siguiente:

  1. Habilitar la API de Cloud Monitoring
  2. Identifica una cuenta de usuario de solución para usar con el agente independiente y establece una contraseña segura.
  3. Crea una VM de Compute Engine o una VM de VMware para usarla como host del agente independiente. Las VM de Compute Engine deben estar en una red de nube privada virtual (VPC) que intercambia tráfico con la red de VPC privada en la nube que contiene los recursos que deseas supervisar.

    Para ver un ejemplo sobre cómo crear una VM de Compute Engine, consulta la Guía de inicio rápido para usar una VM de Linux de Compute Engine. Como ejemplo de creación de una VM de VMware, consulta Crea una VM de VMware.

Si usas una VM de Compute Engine para alojar el agente independiente, Google administra la rotación de claves de la cuenta de servicio que conectas. Sin embargo, puede ser rentable crear una VM de VMware si tienes capacidad sin usar en tu nube privada y no te interesa administrar la rotación de claves por tu cuenta.

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

Requisitos

La VM del host de tu agente debe cumplir los siguientes requisitos del sistema:

  • Compatibilidad con los sistemas operativos de Linux:
    • CentOS 6, 7 u 8
    • Red Hat Enterprise Linux 6, 7 y 8
    • SLES 12 o 15
    • Ubuntu 14, 16, 18, o 19
  • Al menos 4 GB de RAM
  • 300 MB de espacio de instalación disponible
  • Directorio de instalación configurado como /opt/bpagent
  • Se instaló la utilidad de la CLI de curl

La VM del host del agente también necesita acceder a las siguientes direcciones para recopilar y enviar métricas y registros:

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

Habilita el reenvío de métricas

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

  1. Instala el agente en la VM
  2. Especifica una cuenta de servicio
  3. Configura el agente a fin de acceder a su nube privada para las métricas
  4. Configura el agente a fin de acceder a la cuenta de servicio para generar informes
  5. Recopila métricas y registros
  6. Configura una nube privada para el reenvío de syslog

Instala el agente independiente

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

  1. Conéctate a la VM 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)"
    

Para los sistemas en los que la VM del host del agente podría no tener 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 el siguiente comando:

    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 el siguiente comando:

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

    sudo sh install.sh agent.tar.gz
    

Especifica una cuenta de servicio

Para reenviar datos del agente a Cloud Monitoring se requiere una cuenta de servicio de tu proyecto de Google Cloud. Esa cuenta de servicio debe tener la función de Administrador de Monitoring para las métricas y la función de Escritor de registros para los registros.

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

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

    Ir a Cuentas de servicio

  2. Haga clic en Crear cuenta de servicio.

  3. Ingresa un nombre, un ID y una descripción para la cuenta de servicio. Recomendamos tener en mente que la cuenta se usa para la integración del agente.

  4. Haz clic en Crear y continuar.

  5. En Función, selecciona Administrador de Monitoring.

  6. En Función, selecciona Escritor de registros.

  7. Haga clic en Continuar.

  8. Haga clic en Listo.

Si creaste una VM de VMware como tu VM del host de agente, recupera la clave privada de la cuenta de servicio para que puedas usarla a fin de configurar el agente:

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

    Ir a Cuentas de servicio

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

  3. En la columna Acciones, haz clic en el menú de acciones de la cuenta de servicio y selecciona Administrar claves.

  4. Haga clic en el menú desplegable Agregar clave y seleccione Crear clave nueva.

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

  6. Abre el archivo JSON generado y copia todo el contenido del archivo. Las métricas y la recopilación de registros usan el mismo archivo de claves JSON.

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

Configura el agente a fin de acceder a su nube privada para las métricas

El agente independiente necesita acceso a tu nube privada para recopilar métricas. En la VM del host de tu agente, copia y configura el archivo vmware_vcenter.yaml para configurar el acceso:

  1. Copia vmware_vcenter.yaml al directorio config/metrics/sources:

    cp /opt/bpagent/config/metrics/examples/vmware_vcenter.yaml /opt/bpagent/config/metrics/sources
    
  2. Edita 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
    

    Reemplaza lo siguiente:

    • VCSA_FQDN: Es el nombre de dominio completamente calificado (FQDN) del Dispositivo de vCenter Server en tu nube privada.
    • SOLUTION_USER_PASSWORD: Es la contraseña que corresponde a la cuenta de usuario de solución que se usa.
    • SOLUTION_USER_ACCOUNT: La cuenta de usuario de solución que el agente usa para dar información

Configura el agente a fin de acceder 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 a fin de acceder al proyecto usado para generar informes a través de la cuenta de servicio que tenga permisos de supervisión y registro.

En la VM del host de tu agente, copia y configura el archivo log_agent.yaml:

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

    cp /opt/bpagent/config/log_agent.example.yaml /opt/bpagent/config/log_agent.yaml
    
  2. En la parte inferior de log_agent.yaml, ingresa el nombre del proyecto y la ruta de acceso completa al archivo de claves JSON. En las VM del host de agente creadas en Compute Engine, quita 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
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto en el que deseas generar registros
    • JSON_KEY_FILE: Es el nombre de tu archivo de claves privadas de la cuenta de servicio. Quita o comenta esta línea para las VM del host de agente creadas en Compute Engine.

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

    1. Navega hasta /opt/bpagent/config.
    2. Actualiza 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
    

Recopila métricas y registros

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

  • Para iniciar el agente en tu VM host, ejecuta el siguiente comando:

    systemctl start bpagent
    
  • Para detener el agente en tu VM host, ejecuta el siguiente comando:

    systemctl stop bpagent
    

Configura una nube privada para el reenvío de syslog

VMware Engine se integra en Cloud Logging mediante el reenvío de mensajes syslog de vCenter y NSX-T al agente independiente. El agente independiente se configura a fin de analizar los registros de vCenter y NSX-T para que Cloud Logging lea.

Para reenviar mensajes syslog de VMware Engine, haz lo siguiente:

  • Para el reenvío de syslog de vCenter, sigue los pasos en Reenvía mensajes syslog de vCenter. En el campo Servidor, ingresa la dirección IP o el nombre de host de la VM del host de tu agente. El agente independiente usa el protocolo de comunicación TCP y escucha en el puerto 5142. El agente independiente se debe ejecutar para que la configuración de syslog se conecte correctamente.
  • Para el reenvío de syslog de NSX-T, sigue los pasos que se indican en Reenvía mensajes de syslog de NSX-T. En el campo FQDN o IP Address, ingresa la dirección IP o el nombre de host de tu VM del host de agente. El agente independiente usa el protocolo de comunicación TCP y escucha en el puerto 5142.

Si piensas reenviar syslog desde hosts ESXi, cambia el puerto predeterminado en el cual el agente de registros escucha de 5142 a 514. En ese caso, usa el mismo puerto (514) para reenviar syslog desde vCenter y NSX-T.

Desinstala el agente

Para quitar el agente de una VM, conéctate a esta 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 según los cambios del servicio y borra las unidades con errores:

    systemctl daemon-reload
    
    systemctl reset-failed
    

Paneles de Cloud Monitoring

Después de habilitar el reenvío de métricas, puedes instalar paneles predefinidos para VMware Engine. En los siguientes paneles, se proporciona información agregada de todas las fuentes que especificas:

  • Panel de descripción general: Vista de alto nivel que enumera los recursos clave, como centros de datos, clústeres y VM.
  • Panel de contención: Utilización de recursos para el almacenamiento, la CPU, la memoria y las herramientas de redes que te ayudarán a ubicar las VM y los hosts principales según la demanda de recursos.
  • Panel de rendimiento de la máquina virtual: Son los indicadores del rendimiento de la instancia de máquina virtual (VM) que se pueden filtrar por nombre de instancia y usar para comparar el rendimiento de varias VM entre sí.

Para acceder a un panel de VMware Engine, haz lo siguiente:

  1. En la consola de Google Cloud, ve a Monitoring > Paneles de control.

    Ir a Paneles de control

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

  3. Selecciona el panel de interés y haz clic en Importar.

Las definiciones de estos paneles se almacenan en GitHub. Si deseas obtener los pasos para instalar o ver las definiciones como paneles personalizados, consulta Instala paneles de muestra.

Alertas de Cloud Monitoring

Puedes usar métricas de tu integración para activar alertas y notificaciones según incidentes y umbrales personalizados. Por ejemplo, puedes hacer que Cloud Monitoring te envíe una notificación por SMS cuando alguien crea una VM nueva en la nube privada.

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

Lista de métricas recopiladas

Una vez que habilites el reenvío de métricas de forma correcta, podrás ver las métricas en el Explorador de métricas de Cloud Monitoring. Los tipos de recursos y los tipos de métricas de VMware Engine comienzan con el prefijo external.googleapis.com/vmware/vcenter. en el Explorador de métricas.

Esta es la lista completa de las métricas recopiladas para VMware Engine, con el prefijo omitido:

Tipo de recurso y métrica Descripción
cluster.cpu.available CPU disponible en un clúster, en megahertz
cluster.memory.available Memoria disponible en un clúster, en bytes
cluster.cpu.threads Cantidad de subprocesos de CPU en un clúster
cluster.cpu.effective CPU vigente en un clúster de todos los hosts en ejecución No se cuentan los hosts que no responden o que están en modo de mantenimiento.
cluster.effective_hosts Cantidad de hosts vigentes en un clúster No se cuentan los hosts que no responden o que están en modo de mantenimiento.
cluster.memory.effective Memoria vigente en un clúster de todos los hosts en ejecución. No se cuentan los hosts que no responden o que están en modo de mantenimiento.
cluster.hosts Cantidad de hosts en un clúster
cluster.vsan.latency Latencia de vSAN de un clúster, en microsegundos
cluster.vsan.throughput Capacidad de procesamiento 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 vSAN de un clúster
cluster.vsan.oio E/S pendiente de vSAN (oio) en un clúster
datacenter.cpu.average_host_utilization Uso de host promedio de un centro de datos, como un porcentaje
datacenter.clusters Cantidad de clústeres en un centro de datos
datacenter.datastores Cantidad de almacenes de datos en un centro de datos
datacenter.hosts Cantidad de hosts en un centro de datos
datacenter.host_systems Cantidad de sistemas host en un centro de datos
datacenter.hosts/powered_on Cantidad de hosts encendidos en un centro de datos
datacenter.hosts/powered_off Cantidad de hosts apagados en un centro de datos
datacenter.disk/space Espacio total del disco en un centro de datos, en terabytes
datastore.capacity_bytes Capacidad de un almacén de datos, en bytes
datastore.capacity_utilization Uso de la capacidad de un almacén de datos, como un porcentaje
host_system.network.transmitted_packets Cantidad de paquetes de red que transmite el sistema host
host_system.network.received_packets Cantidad de paquetes de red que recibió el sistema host
host_system.dropped_packets Cantidad de paquetes de red que descartó el sistema host
host_system.network.adapters Cantidad de adaptadores de red del sistema host
host_system.memory.utilization Uso de memoria del sistema host, como un porcentaje
host_system.memory.utilization_ratio Proporción de uso de memoria del sistema host
host_system.memory.used Memoria que usa el sistema host, en megabytes
host_system.disk.read Lectura de disco del sistema host, en kilobytes por segundo
host_system.disk_latency Latencia del disco del sistema host, en milisegundos
host_system.cpu.usage Uso de CPU del sistema host, como un porcentaje
host_system.cpu.utilization_ratio Proporción de uso de CPU del sistema host
host_system.cpu.capacity Capacidad de CPU del sistema host, en megahertz
host_system.cpu.reserved_capacity Capacidad de CPU reservada del sistema host, en megahertz
host_system.cpu.average_speed Velocidad promedio de CPU del sistema host, en megahertz
host_system.cpu.used CPU que usa el sistema host, en megahertz
host_system.vsan.throughput Capacidad de procesamiento 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 caché del cliente de vSAN del sistema host
host_system.vsan.client_cache_hit_rate Tasa de aciertos de caché del cliente vSAN del sistema host, como un porcentaje
host_system.vsan.congestions Valor de congestión 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 Cantidad de recursos compartidos de memoria de vCenter
resource_pool.memory.overhead_usage_bytes Uso de sobrecarga de memoria de vCenter, en megabytes
resource_pool.memory.host_usage_bytes Uso del host de memoria de vCenter, en megabytes
resource_pool.memory.active_guest_usage_bytes Uso de invitado activo de la memoria de vCenter, en megabytes
resource_pool.memory.balloon_size Tamaño de la memoria del globo de vCenter, en megabytes
resource_pool.cpu.usage CPU que usa vCenter, en megahertz
resource_pool.cpu.shares Cantidad de recursos compartidos de CPU en el grupo de recursos, en megabytes
vm.memory.ballooned Tamaño de la memoria del globo de VM, en megabytes
vm.network.throughput_bytes Capacidad de procesamiento de la red de la VM, en kilobytes por segundo
vm.memory.used_percent Memoria que usa la VM, como un porcentaje de la memoria disponible
vm.memory.usage_bytes Memoria que usa la VM, en megabytes
vm.disk.throughput_bytes Capacidad de procesamiento de lectura y escritura en el disco de la VM, en kilobytes por segundo
vm.disk.used_percent El uso del disco de la VM, como un porcentaje del almacenamiento disponible
vm.disk.usage_bytes Uso del disco de la VM, en bytes
vm.disk.free_bytes Espacio disponible en el disco de la VM, en bytes
vm.cpu.used_percent El uso de CPU de la VM, como un porcentaje de CPU disponible
vm.cpu.usage Uso de CPU de la VM, en megahertz
vm.cpu.ready_percent CPU de la VM que está lista, pero que no puede ejecutarse, como un porcentaje
vm.vsan.throughput Capacidad de procesamiento 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 VM, en microsegundos
vm.vsan.readCount Recuento de lectura de vSAN de la VM
vm.vsan.writeCount Recuento de operaciones de escritura de vSAN de la VM
vsphere.cpu.available CPU disponible en clústeres administrados por vSphere, en gigabytes
vsphere.memory.available Memoria disponible en clústeres administrados por vSphere, en gigabytes
vsphere.clusters.total Cantidad de clústeres administrados por vSphere
vsphere.clusters Recuento de clústeres administrados por vSphere con el código de color de estado del clúster (como verde, gris, rojo o amarillo)
vsphere.cpu.cpus Cantidad total de núcleos de CPU del sistema host administrados por vSphere
vsphere.datacenters Cantidad de centros de datos administrados por vSphere
vsphere.datastores.total Cantidad de almacenes de datos en vSphere
vsphere.datastores Recuento de almacenes de datos administrados por vSphere con el código de color de estado del almacén de datos (como verde, gris, rojo o amarillo)
vsphere.disk.space Espacio total del disco conectado en vSphere, en terabytes
vsphere.host_systems Cantidad de sistemas host en vSphere
vsphere.hosts Recuento de sistemas host administrados por vSphere con el código de color de estado del sistema host (como verde, gris, rojo o amarillo)
vsphere.network.adapters Cantidad de adaptadores de red en vSphere
vsphere.hosts.powered_off Cantidad de hosts apagados en vSphere
vsphere.hosts.powered_on Cantidad de hosts encendidos en vSphere
vsphere.virtual_machines.total Cantidad de VM en todos los clústeres de vSphere
vsphere.virtual_machines Recuento de VM administradas por vSphere con el código de color de estado de VM (como verde, gris, rojo o amarillo)