2. vSphere监控数据源与指标模型
要做好 vSphere 的监控告警与容量运营,第一步不是打开某个仪表盘,而是先弄清楚“数据从哪里来、以什么形式存在、彼此如何关联”。vSphere 的监控数据并不是单一来源,而是由 vCenter、ESXi 主机、虚拟机、集群、数据存储、网络等多个对象层共同产生,并分别以性能计数器、事件、任务和告警定义四种形态存在。理解这四类数据源与对象模型的对应关系,才能判断某个指标该去哪里取、某个异常该由谁上报、某个容量趋势该按什么粒度聚合。
四类监控数据源的定位
性能计数器(Performance Counters)是数值型的时间序列数据,回答“现在有多快、多满、多忙”。它由 ESXi 主机上的性能采集子系统周期性采样,vCenter 通过统计接口按对象、指标、实例、采样间隔四个维度读取。典型计数器如 cpu.usage.average、mem.consumed.average、disk.deviceReadLatency.average、net.received.average、datastore.space.used。计数器是容量趋势分析和阈值告警的主要依据。
事件(Events)是离散的、带时间戳的状态变化记录,回答“发生了什么”。例如虚拟机开机、迁移完成、主机进入维护模式、数据存储空间不足、HA 重启触发。事件由各对象产生并汇总到 vCenter,是排障时间线和审计追溯的核心素材。
任务(Tasks)是用户或系统发起的、有明确开始与结束状态的操作记录,回答“谁在做什么、做到哪一步”。克隆、迁移、快照创建、模板部署都会生成任务,任务带有进度、状态(运行中/成功/失败)和发起者,是判断操作是否卡住的关键。
告警定义(Alarm Definitions)是规则本身,回答“什么条件下应该通知谁”。一条告警定义由监控对象类型、触发条件(基于计数器、事件或状态)、触发/恢复阈值、严重级别和动作(发邮件、执行脚本、进入维护模式等)组成。告警不是数据,而是对前三类数据的判断逻辑。
对象模型决定指标的聚合方式
vSphere 的监控对象是分层的:vCenter 管理多个数据中心,数据中心下是集群与主机,主机上运行虚拟机,虚拟机连接端口组与数据存储。同一类指标在不同对象上的含义并不相同。以 CPU 为例,主机上的 cpu.usage.average 反映物理 CPU 的总体占用,虚拟机上的同名指标反映该虚拟机消耗的 CPU 时间,而集群层面则通过 DRS 的聚合视图呈现整体负载均衡情况。容量运营中如果只看虚拟机指标,会漏掉主机层面的资源争用;只看主机指标,又无法定位到具体是哪台虚拟机在消耗资源。
因此,指标模型必须同时记录“对象类型 + 指标名称 + 实例 + 采样间隔”。实例(Instance)用于区分同一对象下的多个设备,例如主机上的多块网卡、多个数据存储设备、虚拟机上的多块虚拟磁盘。忽略实例维度,就会把不同物理设备的数据混在一起,导致阈值判断失真。
采样间隔与保留策略
vCenter 的性能数据按四个默认采样间隔存储:实时(20 秒,保留约 1 小时)、过去一天(5 分钟,保留 1 天)、过去一周(30 分钟,保留 1 周)、过去一月(2 小时,保留 1 个月)。间隔越长,数据点越少,但保留时间越久。做容量趋势分析时,通常使用“过去一周”或“过去一月”的聚合数据;做实时告警时,则依赖 20 秒或 5 分钟的采样。理解这一点,可以避免“为什么昨天下午的瞬时峰值在周视图里看不到了”这类困惑——长间隔数据是聚合后的结果,瞬时尖峰会被平滑。
事件、任务与告警的联动
事件和任务常常成对出现。例如一次虚拟机迁移会生成一个任务(记录进度与结果),同时产生若干事件(迁移开始、迁移完成、DRS 建议)。排障时,正确的做法是先按时间窗口筛选事件,找到异常发生点,再关联同一时间段的任务,确认是否有失败或卡住的操作。告警定义则把这种关联固化为规则:可以基于事件触发告警(如“主机失去连接”),也可以基于计数器触发告警(如“数据存储使用率超过 85% 持续 5 分钟”)。
一个常见的告警定义示例:监控对象为数据存储,触发条件为 datastore.space.used 占容量比例大于 85%,持续 5 分钟,严重级别为警告,动作为发送邮件。恢复条件为比例低于 75%。这里 85% 与 75% 之间的差值就是迟滞区间,用于避免在阈值附近反复触发和恢复。
实际取数时的关键判断
在 vCenter 中查看性能数据时,需要明确三件事:第一,当前查看的是哪个对象层级;第二,选择的采样间隔是什么;第三,指标的单位和方向。例如 disk.deviceReadLatency.average 单位是毫秒,数值越低越好;net.received.average 单位是 KBps,数值高低取决于业务预期。方向搞反,告警规则就会写错。
另外,ESXi 主机本地也保留短期性能数据,当 vCenter 不可用时,可以通过主机客户端或 esxcli 查看本地计数器,用于快速判断主机自身状态。但长期趋势和跨对象聚合仍以 vCenter 数据库为准。理解“本地短期、vCenter 长期”的分工,有助于在 vCenter 故障时选择合适的排查路径。
指标模型速查
| 数据形态 | 典型来源 | 关键维度 | 主要用途 |
|---|---|---|---|
| 性能计数器 | ESXi 采集,vCenter 汇总 | 对象、指标、实例、间隔 | 趋势分析、阈值告警 |
| 事件 | 各对象产生,vCenter 汇总 | 时间、对象、类型、严重级别 | 排障时间线、审计 |
| 任务 | 用户或系统发起 | 发起者、进度、状态、结果 | 判断操作是否卡住 |
| 告警定义 | vCenter 规则配置 | 条件、阈值、级别、动作 | 通知与自动化响应 |
掌握这四类数据源与对象模型的对应关系后,后续的监控设计、告警调优和容量分析才有统一的坐标系。无论是配置一条新告警,还是排查一次性能抖动,都可以先问:我要看的是计数器、事件、任务还是告警定义?它属于哪个对象层级?采样间隔和实例维度是否选对了?这三个问题回答清楚,监控数据才不会用错地方。