使用独立代理设置 Cloud Monitoring

Cloud Monitoring 可帮助您深入了解应用和基础架构的性能、可用性和运行状况。您可以使用 Cloud Monitoring 和 Google Cloud 的运维套件的其他部分大规模地监控和运营 VMware Engine 服务并进行问题排查。

您可以使用独立代理为每个专用云单独定义指标转发配置。每个私有云都需要一个单独的代理,该代理由 Compute Engine 虚拟机或 VMware 虚拟机托管。

成功启用指标转发功能后,您可以在 Cloud Monitoring Metrics Explorer 中查看指标。VMware Engine 中的资源类型和指标以 external.googleapis.com/vmware/vcenter 开头,并且 vCenter FQDN 标记为命名空间的一部分。

准备工作

本文档中的步骤假定您首先执行以下操作:

  1. 启用 Cloud Monitoring API
  2. 确定要与独立代理搭配使用的解决方案用户帐号,并为该解决方案用户帐号设置安全系数高的密码。
  3. 创建 Compute Engine 虚拟机或 VMware 虚拟机,以用作独立代理的主机。Compute Engine 虚拟机必须位于与要监控的资源所在的私有云 VPC 网络建立对等互连的 Virtual Private Cloud (VPC) 网络中。

    如需查看创建 Compute Engine 虚拟机的示例,请参阅 Linux 虚拟机使用快速入门。如需查看创建 VMware 虚拟机的示例,请参阅创建 VMware 虚拟机

如果您使用 Compute Engine 虚拟机托管独立代理,则 Google 会管理您连接的服务帐号的密钥轮替。但是,如果您在私有云中具有未使用的容量并且不介意自行管理密钥轮替,则创建 VMware 虚拟机可能经济高效。

无论您在何处创建代理主机虚拟机,它都必须满足以下要求:

要求

您的代理主机虚拟机必须符合以下系统要求:

  • 支持的 Linux 操作系统:
    • CentOS 6、7 或 8
    • Red Hat Enterprise Linux 6、7 或 8
    • SLES 12 或 15
    • Ubuntu 14、16、18 或 19
  • 至少 4GB RAM
  • 300 MB 的可用安装空间
  • 安装目录设为 /opt/bpagent
  • 已安装 curl CLI 实用程序

您的代理主机虚拟机还需要访问以下地址来收集和推送指标和日志:

  • 到 vCenter Server 的 HTTPS 连接的端口 443 (TCP)(默认)
  • monitoring.googleapis.com:443 (external access)
  • logging.googleapis.com:443 (external access)

启用指标转发

设置代理主机虚拟机并启用指标转发的过程包含以下步骤:

  1. 在虚拟机上安装代理
  2. 指定服务帐号
  3. 配置代理以访问您的私有云来获取指标
  4. 配置代理以访问服务帐号进行报告
  5. 为 syslog 转发配置私有云
  6. 收集指标和日志

安装独立代理

如需在主机虚拟机上安装代理,请执行以下操作:

  1. 连接到代理主机虚拟机。
  2. 远程运行安装脚本:

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

对于代理主机虚拟机可能没有外部网络访问权限的系统,您可以使用以下命令下载代理和安装脚本:

  • 如需获取独立代理,请运行以下命令:

    curl -S https://storage.googleapis.com/bindplane-agent/bpagent/latest/pkg/vmware-linux-amd64/installer/bpagent-headless-vmware.tar.gz > agent.tar.gz
    
  • 如需获取安装脚本,请运行以下命令:

    curl -S https://storage.googleapis.com/bindplane-agent/bpagent/latest/pkg/vmware-linux-amd64/installer/install.sh > install.sh
    
  • 如需安装此代理,请在代理主机虚拟机上运行以下命令:

    sudo sh install.sh agent.tar.gz
    

指定服务帐号

要将数据从代理转发到 Cloud Monitoring,您的 Google Cloud 项目中需要有服务帐号。该服务帐号必须具有指标的 Monitoring Admin 角色以及日志的 Logs Writer 角色。

如果您没有用于监控和日志记录应用的服务帐号,请创建一个:

  1. 在 Google Cloud Console 中,转到 IAM 和管理 > 服务帐号

    转到“服务帐号”

  2. 点击创建服务帐号

  3. 输入服务帐号的名称、ID 和说明。请注意,该帐号用于代理集成。

  4. 点击创建并继续

  5. 对于角色,选择 Monitoring Admin

  6. 对于角色,请选择 Logs Writer

  7. 点击继续

  8. 点击完成

如果您将 VMware 虚拟机创建为代理主机虚拟机,请检索服务帐号私钥,以便使用它设置代理:

  1. 在 Google Cloud Console 中,转到 IAM 和管理 > 服务帐号

    转到“服务帐号”

  2. 在服务帐号列表中找到您的服务帐号。

  3. 操作列中,点击 服务帐号操作菜单,然后选择管理密钥

  4. 点击添加密钥,然后选择创建新密钥

  5. 选择 JSON 密钥类型,然后点击创建

  6. 打开生成的 JSON 文件并复制整个文件内容。 指标和日志记录收集使用相同的 JSON 密钥文件。

  7. 在代理主机虚拟机上,将 JSON 密钥文件复制到 /opt/bpagent/config/destinations/google_cloud 目录。

配置代理以访问您的私有云来获取指标

独立代理需要访问您的私有云以收集指标。在代理主机虚拟机上,通过复制和配置 vmware_vcenter.yaml 文件来设置访问权限:

  1. vmware_vcenter.yaml 复制到 config/metrics/sources 目录:

    cp /opt/bpagent/config/metrics/examples/vmware_vcenter.yaml /opt/bpagent/config/metrics/sources
    
  2. 修改 vmware_vcenter.yaml 以匹配 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
    

    替换以下内容:

    • VCSA_FQDN:您的私有云中 vCenter Server Appliance 的完全限定域名 (FQDN)
    • SOLUTION_USER_PASSWORD:与正在使用的解决方案用户帐号对应的密码
    • SOLUTION_USER_ACCOUNT:代理用于报告信息的解决方案用户帐号

配置代理以访问服务帐号进行报告

独立代理需要访问 Google Cloud 的运维套件才能发送指标和日志。配置代理以通过具有监控和日志记录权限的服务帐号访问用于报告的项目。

在代理主机虚拟机上,复制并配置 log_agent.yaml 文件:

  1. 请先将 log_agent.example.yaml 复制到 log_agent.yaml,然后再修改:

    cp /opt/bpagent/config/log_agent.example.yaml /opt/bpagent/config/log_agent.yaml
    
  2. log_agent.yaml 的底部,输入项目名称和 JSON 密钥文件的完整路径。对于在 Compute Engine 中创建的代理主机虚拟机,您可以省略 credentials_file 行。

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

    替换以下内容:

    • PROJECT_NAME:要输出日志的项目的名称
    • JSON_KEY_FILE:您的服务帐号私钥文件的名称;在 Compute Engine 中创建的代理主机虚拟机不需要代码行

为 syslog 转发配置私有云

如需从 VMware Engine 转发 syslog 消息,请按照将 syslog 消息转发到远程服务器中的步骤操作。

服务器字段中,输入代理主机虚拟机的 IP 地址或主机名。独立代理将使用 TCP 通信协议并侦听端口 5142

收集指标和日志

为了收集指标或日志,独立代理必须在代理主机虚拟机上运行。连接到代理主机虚拟机,并使用以下命令启动或停止代理:

  • 如需在主机虚拟机上启动代理,请运行以下命令:

    systemctl start bpagent
    
  • 如需在主机虚拟机上停止代理,请运行以下命令:

    systemctl stop bpagent
    

Cloud Monitoring 信息中心

启用指标转发后,您可以为 VMware Engine 安装预定义的信息中心。以下信息中心提供您指定的所有来源的汇总信息:

  • 概览信息中心:显示列出数据中心、集群和虚拟机等关键资源的简要视图。
  • 争用信息中心:显示存储、CPU、内存和网络的资源利用率,可帮助您找到资源需求最大的虚拟机和主机。
  • 虚拟机性能信息中心:可按实例名称过滤并用于比较多个虚拟机性能的虚拟机 (VM) 实例性能指标。

这些信息中心的定义存储在 GitHub 上。如需了解安装或查看信息中心的步骤,请参阅安装示例信息中心

Cloud Monitoring 提醒

您可以使用集成中的指标,根据自定义阈值和突发事件触发提醒和通知。例如,您可以让 Cloud Monitoring 在有人在您的私有云中创建新虚拟机时向您发送短信通知。

如需了解详情,请参阅提醒简介

收集的指标列表

成功启用指标转发功能后,您可以在 Cloud Monitoring Metrics Explorer 中查看指标。VMware Engine 中的资源类型和指标类型以 Metrics Explorer 中的前缀 external.googleapis.com/vmware/vcenter. 开头。

以下是为 VMware Engine 收集的完整指标列表,其中省略了前缀:

资源和指标类型 说明
cluster.cpu.available 集群中可用的 CPU,以兆字节为单位
cluster.memory.available 集群中的可用内存(以字节为单位)
cluster.cpu.threads 集群中的 CPU 线程数
cluster.cpu.effective 集群中所有正在运行的主机中的有效 CPU。无响应或维护模式的主机不计算在内。
cluster.effective_hosts 集群中有效主机的数量。无响应或维护模式的主机不计算在内。
cluster.memory.effective 集群中所有正在运行的主机中的有效内存。无响应或维护模式的主机不计算在内。
cluster.hosts 集群中的主机数量
cluster.vsan.latency 集群的 vSAN 延迟时间(以微秒为单位)
cluster.vsan.throughput 集群的 vSAN 读写吞吐量(以字节为单位)
cluster.vsan.iops 集群的 vSAN IOPS
cluster.vsan.congestions 集群的 vSAN 拥塞值
cluster.vsan.oio 集群中的 vSAN 未完成 I/O (oio)
datacenter.cpu.average_host_utilization 数据中心的平均主机利用率(百分比)
datacenter.clusters 数据中心中的集群数
datacenter.datastores 数据中心的数据存储区数
datacenter.hosts 数据中心内的主机数量
datacenter.host_systems 数据中心内的主机系统数
datacenter.hosts/powered_on 数据中心内已启用的主机数量
datacenter.hosts/powered_off 数据中心中已关闭的主机数
datacenter.disk/space 数据中心的总磁盘空间(以 TB 为单位)
datastore.capacity_bytes 数据存储区的容量(以字节为单位)
datastore.capacity_utilization 数据存储区的容量利用率(以百分比表示)
host_system.network.transmitted_packets 主机系统传输的网络数据包数量
host_system.network.received_packets 主机系统接收的网络数据包数量
host_system.dropped_packets 主机系统丢弃的网络数据包数量
host_system.network.adapters 主机系统网络适配器的数量
host_system.memory.utilization 主机系统的内存利用率(以百分比表示)
host_system.memory.utilization_ratio 主机系统的内存利用率
host_system.memory.used 主机系统使用的内存(以 MB 为单位)
host_system.disk.read 主机系统的磁盘读取(以千字节/秒为单位)
host_system.disk_latency 主机系统的磁盘延迟时间(以毫秒为单位)
host_system.cpu.usage 主机系统的 CPU 使用率(以百分比表示)
host_system.cpu.utilization_ratio 主机系统的 CPU 利用率
host_system.cpu.capacity 主机系统的 CPU 容量(以兆字节为单位)
host_system.cpu.reserved_capacity 主机系统预留的 CPU 容量(以兆赫为单位)
host_system.cpu.average_speed 主机系统的平均 CPU 速度(以兆字节为单位)
host_system.cpu.used 主机系统使用的 CPU(以兆赫为单位)
host_system.vsan.throughput 主机系统的 vSAN 读写吞吐量(以字节为单位)
host_system.vsan.iops 主机系统的 vSAN IOPS
host_system.vsan.latency 主机系统的 vSAN 延迟时间(以微秒为单位)
host_system.vsan.client_cache_hits 主机系统的 vSAN 客户端缓存命中
host_system.vsan.client_cache_hit_rate 主机系统的 vSAN 客户端缓存命中率(以百分比表示)
host_system.vsan.congestions 主机系统的 vSAN 拥塞值
resource_pool.memory.swapped_bytes vCenter 交换内存(以 MB 为单位)
resource_pool.memory.shared_bytes vCenter 共享内存(以 MB 为单位)
resource_pool.memory.private_bytes vCenter 专用内存(以 MB 为单位)
resource_pool.memory.shares vCenter 内存共享数量
resource_pool.memory.overhead_usage_bytes vCenter 内存开销使用量(以兆字节为单位)
resource_pool.memory.host_usage_bytes vCenter 内存主机用量(以兆字节为单位)
resource_pool.memory.active_guest_usage_bytes vCenter 内存活跃客机使用情况(以兆字节为单位)
resource_pool.memory.balloon_size vCenter 提示符内存的大小(以兆字节为单位)
resource_pool.cpu.usage vCenter 使用的 CPU(以兆赫为单位)
resource_pool.cpu.shares 资源池中的 CPU 共享数(以兆字节为单位)
vm.memory.ballooned 虚拟机 Balloon 内存的大小(以兆字节为单位)
vm.network.throughput_bytes 虚拟机的网络吞吐量(以千字节/秒为单位)
vm.memory.used_percent 虚拟机使用的内存,以可用内存的百分比表示
vm.memory.usage_bytes 虚拟机使用的内存(以 MB 为单位)
vm.disk.throughput_bytes 虚拟机的磁盘读写吞吐量(以千字节/秒为单位)
vm.disk.used_percent 虚拟机的磁盘用量(以可用存储空间百分比的形式表示)
vm.disk.usage_bytes 虚拟机的磁盘使用量(以字节为单位)
vm.disk.free_bytes 虚拟机的可用磁盘空间(以字节为单位)
vm.cpu.used_percent 虚拟机的 CPU 使用率(以可用 CPU 的百分比表示)
vm.cpu.usage 虚拟机的 CPU 用量(以兆赫为单位)
vm.cpu.ready_percent 已就绪但无法运行的虚拟机的 CPU 百分比
vm.vsan.throughput 虚拟机的 vSAN 读写吞吐量(以字节为单位)
vm.vsan.iops 虚拟机的 vSAN IOPS
vm.vsan.latency 虚拟机的 vSAN 延迟时间(以微秒为单位)
vm.vsan.readCount 虚拟机的 vSAN 读取计数
vm.vsan.writeCount 虚拟机的 vSAN 写入计数
vsphere.cpu.available 由 vSphere 管理的集群的 CPU(以千兆赫为单位)
vsphere.memory.available 由 vSphere 管理的集群中的可用内存(以 GB 为单位)
vsphere.clusters.total vSphere 管理的集群数量
vsphere.clusters 由 vSphere 管理并使用集群状态颜色代码(例如绿色、灰色、红色或黄色)的集群数量
vsphere.cpu.cpus vSphere 管理的主机系统 CPU 核心总数
vsphere.datacenters vSphere 管理的数据中心数量
vsphere.datastores.total vSphere 中的数据存储区数
vsphere.datastores 具有数据存储区状态颜色代码(如绿色、灰色、红色或黄色)的由 vSphere 管理的数据存储区计数
vsphere.disk.space vSphere 中挂接的总磁盘空间(以 TB 为单位)
vsphere.host_systems vSphere 中的主机系统数
vsphere.hosts 由主机系统状态代码和主机系统颜色代码(例如绿色、灰色、红色或黄色)管理的主机系统计数
vsphere.network.adapters vSphere 中的网络适配器数量
vsphere.hosts.powered_off vSphere 中已关停的主机数
vsphere.hosts.powered_on vSphere 中已启动的主机数
vsphere.virtual_machines.total 所有 vSphere 集群中的虚拟机数量
vsphere.virtual_machines 使用虚拟机状态颜色代码(如绿色、灰色、红色或黄色)管理 vSphere 的虚拟机数量