使用独立代理设置 Cloud Monitoring
Cloud Monitoring 可帮助您深入了解应用和基础架构的性能、可用性和运行状况。您可以使用 Cloud Monitoring 和 Google Cloud Observability 的其他部分大规模地监控和运营 VMware Engine 服务并进行问题排查。
您可以使用独立代理为每个专用云单独定义指标转发配置。每个私有云都需要一个单独的代理,该代理由 Compute Engine 虚拟机或 VMware 虚拟机托管。
成功启用指标转发功能后,您可以在 Cloud Monitoring Metrics Explorer 中查看指标。VMware Engine 中的资源类型和指标以 external.googleapis.com/vmware/vcenter
开头,并且 vCenter FQDN 标记为命名空间的一部分。
准备工作
本文档中的步骤假定您首先执行以下操作:
- 启用 Cloud Monitoring API
- 确定要与独立代理搭配使用的解决方案用户账号,并为该解决方案用户账号设置安全系数高的密码。
创建 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)
启用指标转发
设置代理主机虚拟机并启用指标转发的过程包含以下步骤:
安装独立代理
如需在主机虚拟机上安装代理,请执行以下操作:
- 连接到代理主机虚拟机。
远程运行安装脚本:
sudo sh -c "$(curl -S https://storage.googleapis.com/gcve-observability-agent/latest/vmware-linux-amd64/installer/install.sh)"
对于代理主机虚拟机可能没有外部网络访问权限的系统,您可以使用以下命令下载代理和安装脚本:
如需获取独立代理,请运行以下命令:
curl -S https://storage.googleapis.com/gcve-observability-agent/latest/vmware-linux-amd64/artifacts/bpagent-headless-vmware.tar.gz > agent.tar.gz
如需获取安装脚本,请运行以下命令:
curl -S https://storage.googleapis.com/gcve-observability-agent/latest/vmware-linux-amd64/installer/install.sh > install.sh
如需安装此代理,请在代理主机虚拟机上运行以下命令:
sudo sh install.sh agent.tar.gz
指定服务账号
要将数据从代理转发到 Cloud Monitoring,您的 Google Cloud 项目中需要有服务账号。该服务账号必须具有指标的 Monitoring Admin 角色以及日志的 Logs Writer 角色。
如果您没有用于监控和日志记录应用的服务账号,请创建一个:
在 Google Cloud Console 中,转到 IAM 和管理 > 服务账号。
点击创建服务账号。
输入服务账号的名称、ID 和说明。请注意,该账号用于代理集成。
点击创建并继续。
对于角色,选择 Monitoring Admin。
对于角色,选择 Logs Writer。
点击继续。
点击完成。
如果您将 VMware 虚拟机创建为代理主机虚拟机,请检索服务账号私钥,以便使用它设置代理:
在 Google Cloud Console 中,转到 IAM 和管理 > 服务账号。
在服务账号列表中找到您的服务账号。
在操作列中,点击
服务账号操作菜单,然后选择管理密钥。点击添加密钥,然后选择创建新密钥。
选择 JSON 密钥类型,然后点击创建。
打开生成的 JSON 文件并复制整个文件内容。 指标和日志记录收集使用相同的 JSON 密钥文件。
在代理主机虚拟机上,将 JSON 密钥文件复制到
/opt/bpagent/config/destinations/google_cloud
目录。
配置代理以访问您的私有云来获取指标
独立代理需要访问您的私有云以收集指标。在代理主机虚拟机上,通过复制和配置 vmware_vcenter.yaml
文件来设置访问权限:
将
vmware_vcenter.yaml
复制到config/metrics/sources
目录:cp /opt/bpagent/config/metrics/examples/vmware_vcenter.yaml /opt/bpagent/config/metrics/sources
修改
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 Observability 才能发送指标和日志。配置代理以通过具有监控和日志记录权限的服务账号访问用于报告的项目。
在代理主机虚拟机上,复制并配置 log_agent.yaml
文件:
请先将
log_agent.example.yaml
复制到log_agent.yaml
,然后再修改:cp /opt/bpagent/config/log_agent.example.yaml /opt/bpagent/config/log_agent.yaml
在
log_agent.yaml
的底部,输入项目名称和 JSON 密钥文件的完整路径。对于在 Compute Engine 中创建的代理主机虚拟机,请移除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
替换以下内容:
PROJECT_ID
:要输出日志的项目的 IDJSON_KEY_FILE
:服务账号私钥文件的名称。对于在 Compute Engine 中创建的代理主机虚拟机,请移除此行或将它注释掉。
如果您需要从 ESXi 转发 syslog,请在独立日志代理中执行以下操作,将默认端口从
5142
更改为514
:- 浏览到
/opt/bpagent/config
。 - 将端口号更新为
514
,如下所示:
- 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
收集指标和日志
为了收集指标或日志,独立代理必须在代理主机虚拟机上运行。连接到代理主机虚拟机,并使用以下命令启动或停止代理:
如需在主机虚拟机上启动代理,请运行以下命令:
systemctl start bpagent
如需在主机虚拟机上停止代理,请运行以下命令:
systemctl stop bpagent
为 syslog 转发配置私有云
VMware Engine 通过将 syslog 消息从 vCenter 和 NSX-T 转发到独立代理来与 Cloud Logging 集成。独立代理配置为解析 vCenter 和 NSX-T 日志以供 Cloud Logging 读取。
如需从 VMware Engine 转发 syslog 消息,请执行以下操作:
- 对于 vCenter syslog 转发,请按照转发 vCenter syslog 消息中的步骤执行操作。在服务器字段中,输入代理主机虚拟机的 IP 地址或主机名。独立代理将使用 TCP 通信协议并侦听端口
5142
。独立代理必须正在运行,syslog 配置才能成功连接。 - 对于 NSX-T syslog 转发,请按照转发 NSX-T syslog 消息中的步骤执行操作。在 FQDN 或 IP 地址字段中,输入代理主机虚拟机的 IP 地址或主机名。独立代理将使用 TCP 通信协议并侦听端口
5142
。
如果您计划从 ESXi 主机转发 syslog,请将日志代理监听的默认端口从 5142
更改为 514
。在这种情况下,请使用相同的端口 (514
) 从 vCenter 和 NSX-T 转发 syslog。
卸载代理
如需从虚拟机中移除代理,请连接到代理虚拟机并在命令行中运行以下命令:
停止并停用独立代理:
systemctl stop bpagent
systemctl disable bpagent
运行以下命令以移除独立代理服务:
rm /etc/systemd/system/bpagent.service
rm -rf /opt/bpagent
根据您的服务更改更新系统配置,并清除所有失效的单元:
systemctl daemon-reload
systemctl reset-failed
Cloud Monitoring 信息中心
启用指标转发后,您可以为 VMware Engine 安装预定义的信息中心。以下信息中心提供您指定的所有来源的汇总信息:
- 概览信息中心:显示列出数据中心、集群和虚拟机等关键资源的简要视图。
- 争用信息中心:显示存储、CPU、内存和网络的资源利用率,可帮助您找到资源需求最大的虚拟机和主机。
- 虚拟机性能信息中心:可按实例名称过滤并用于比较多个虚拟机性能的虚拟机 (VM) 实例性能指标。
如需访问 VMware Engine 信息中心,请执行以下操作:
在 Google Cloud Console 中,前往 Monitoring > 信息中心。
在示例库标签页中,选择 VMware 类别。
选择相关的信息中心,然后点击 file_download 导入。
这些信息中心的定义也存储在 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 的虚拟机数量 |