外观
内置图表与 RRD
打开任意一个节点、虚拟机或存储的 Summary 页面,PVE 已经在画图了,不用装任何东西。这篇讲这些图表从哪来、能看多久的历史、什么时候不够用。
为什么需要它
外部监控栈(Prometheus、InfluxDB)功能更强,但要多装几个组件、多维护几个服务。对单机或少量节点的环境,PVE 自带的图表往往已经够用——先弄懂它,再决定要不要上更复杂的方案。
开始之前
不需要任何配置,PVE 装好之后这些图表就在运行。唯一的前提是节点上的 pvestatd(状态采集守护进程)要正常运行,它负责定期检查所有虚拟机、容器和存储的状态并写入数据。
在哪看
| 位置 | 能看到什么 |
|---|---|
节点 → Summary | CPU、内存、网络流量、磁盘 IO、系统盘使用率 |
虚拟机/容器 → Summary | 该客户机的 CPU、内存、网络、磁盘读写 |
存储 → Summary | 该存储的使用率变化 |
每张图右上角能切换时间范围:小时、天、周、月、年,颗粒度随范围变粗——看一年的图,早就不是逐秒数据了。
数据来自哪
pvestatd 定期采集各项指标,写入 RRD(Round-Robin Database,一种固定大小、自动覆盖旧数据的时序存储格式)文件。集群共享的部分状态可以在 /etc/pve/.rrd 里看到原始内容,但正常使用不需要直接读这个文件,Web UI 已经把它画成图了。
这套方案的局限
内置图表解决「现在什么情况」,但天生不是为长期分析设计的:
- 历史精度有限:RRD 的特性决定了越老的数据颗粒度越粗,几个月前某一分钟的尖峰,图上早就被平均掉了。
- 没有跨节点的统一视图:一个节点看一个节点的图,集群大了之后没法在一张图上对比所有节点。
- 不能设置告警阈值:图表是给人看的,不会在超过某个值时主动通知你。
- 重启
pvestatd或节点,短期历史会有断层:这是采集机制本身决定的,不是故障。
这几条局限正是要上外部方案(外部指标服务器、Prometheus + Grafana)的理由:把数据发到能长期保存、能配置告警、能跨节点汇总的系统里。
检查结果
- 打开任意一台虚拟机的 Summary 页,切换时间范围到「Week」,确认图表能正常显示且有数据。
- 找一台最近有过明显负载变化的客户机(比如跑过一次备份),确认能在磁盘 IO 图上看到对应的尖峰。
- 理解「看到的是采样后的平均值,不是逐秒真实值」这件事,避免拿长时间范围的图去分析秒级问题。
常见问题
图表是空白的。 客户机刚创建、还没运行过一个完整的采集周期,等几分钟;或者检查 pvestatd 是否正常运行(systemctl status pvestatd)。
图表在某个时间点突然断开一截。 通常对应节点重启或 pvestatd 服务重启,这段时间没有采集到数据,不代表故障。
内存图看起来一直很满。 客户机开启了气球驱动或宿主机用了 ZFS,内存占用的解读要考虑缓存部分,参考健康检查清单里关于内存的说明。