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:
- Habilita la API de Cloud Monitoring
- Identifica una cuenta de usuario de solución para usarla con el agente independiente y define una contraseña segura para esa cuenta.
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:
- Instalar el agente en la máquina virtual
- Especificar una cuenta de servicio
- Configurar el agente para que acceda a tu nube privada para obtener métricas
- Configurar el agente para que acceda a la cuenta de servicio para generar informes
- Recoger métricas y registros
- 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:
- Conéctate a la VM del host del agente.
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:
En la Google Cloud consola, ve a IAM y administración > Cuentas de servicio.
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.
Haz clic en Crear cuenta de servicio.
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.
Haz clic en Crear y continuar.
En Rol, selecciona Administrador de monitorización.
En Rol, selecciona Escritor de registros.
Haz clic en Continuar.
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:
En la Google Cloud consola, ve a IAM y administración > Cuentas de servicio.
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.
Busca tu cuenta de servicio en la lista de cuentas de servicio.
En la columna Acciones, haga clic en el menú de acciones de la cuenta de servicio
y seleccione Gestionar claves.Haz clic en Añadir clave y selecciona Crear clave.
Selecciona el tipo de clave JSON y haz clic en Crear.
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.
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
:
Copia
vmware_vcenter.yaml
en el directorioconfig/metrics/sources
:cp /opt/bpagent/config/metrics/examples/vmware_vcenter.yaml /opt/bpagent/config/metrics/sources
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 privadaSOLUTION_USER_PASSWORD
: la contraseña que corresponde a la cuenta de usuario de la solución que se está usandoSOLUTION_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
:
Copia
log_agent.example.yaml
enlog_agent.yaml
antes de editar:cp /opt/bpagent/config/log_agent.example.yaml /opt/bpagent/config/log_agent.yaml
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íneacredentials_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
a514
:- Ve a
/opt/bpagent/config
. - 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:
Detén e inhabilita el agente independiente:
systemctl stop bpagent
systemctl disable bpagent
Ejecuta los siguientes comandos para quitar el servicio del agente independiente:
rm /etc/systemd/system/bpagent.service
rm -rf /opt/bpagent
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:
En la Google Cloud consola, ve a Monitorización > Paneles de control.
En la pestaña Biblioteca de muestras, selecciona la categoría VMware.
Selecciona el panel de control que te interese y haz clic en file_downloadImportar.
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) |