服务商概述
Cacti 成立于 2001 年,是开源的网络流量图形化监控工具,基于 RRDTool 数据存储与图形化引擎。Cacti 的名称来源于 CDE(Cacti Data Environment)的缩写,由 Ian Berry 与 Larry Adams 创建,旨在提供比 MRTG(Multi Router Traffic Grapher)更易用、功能更丰富的 Web 化管理界面。
Cacti 通过 SNMP 协议从网络设备采集数据,使用 RRDTool 存储环形数据库并生成历史趋势图表。其模板化体系(设备模板 + 图形模板 + 数据查询模板)允许网络管理员一次配置即可为同类型设备批量生成一致的监控图表。经过 25 年发展,Cacti 在全球累计部署超过 100 万次,支持从企业级 Cisco、Juniper 交换机到 Linux 服务器与家庭路由器的广泛设备,是网络带宽监控领域历史最悠久的方案之一。
核心优势
- 25 年成熟的流量图形化能力:Cacti 的 RRDTool 图表引擎经过 25 年持续优化,流量图在可靠性、一致性与长期数据保留方面久经考验,支持自定义时间范围、自动缩放与 CDEF 计算函数。
- 模板化批量管理:设备模板定义 SNMP OID 映射、图形模板定义图表布局、数据查询模板定义接口发现规则。管理数百台同品牌交换机时,模板化方式可将配置时间从 4 小时缩短到 5 分钟。
- 长期历史数据存储:RRDTool 环形数据库保证存储空间固定,数据自动归并与剪裁。可配置分钟/小时/天/周/月 5 级保留策略,满足长期带宽审计与容量规划需求。
- 多用户权限管理:支持用户组、角色与 3 级权限控制,可限制不同用户查看特定设备或图形,支持 LDAP/AD 认证集成,适合运维团队分工协作。结合 监控告警实践可构建更完整的监控体系。
产品生态
数据采集引擎
Cacti 使用 PHP 编写的轮询器(Poller)定时执行数据采集,默认轮询间隔 5 分钟,通过 crond 调度。采集命令通过 cmd.php(PHP 实现)或 spine(C 语言实现,高性能版本)执行,spine 支持多线程并发采集,适合大规模设备管理。
模板体系
Cacti 模板分为三层:设备模板(定义设备类型、SNMP 参数与关联图形模板)、图形模板(定义线条样式、颜色、CDEF 公式与数据源映射)、数据查询模板(定义通过 SNMP 遍历发现接口/磁盘/CPU 的索引方法)。模板可导入/导出为 XML,社区提供数百个预置模板。
图形化管理
Cacti 提供图形管理界面,支持图表的创建、编辑、排序与聚合。树状视图(Tree View)允许按地理位置、业务线或设备类型组织设备,图表支持自动缩放、叠加显示与 CDEF 自定义计算函数。
告警(Thold 插件)
Cacti 原生告警功能有限,通过 Thold 插件实现阈值告警。Thold 支持基线告警(基于历史数据的动态基线)、绝对阈值告警与触发条件自定义,告警通知支持邮件与 Syslog。
不足之处
- 配置门槛较高:需要理解 SNMP OID、RRDTool 数据保留策略与 Cacti 模板体系,新手首次部署通常需要 1-2 周学习。与 LibreNMS 的自动发现相比,Cacti 的手动模板配置更加繁琐。
- 实时监控能力弱:最小 5 分钟采集间隔由 crond 调度机制决定,无法支持秒级或实时监控。对于需要即时告警的场景,建议搭配 Prometheus 或 Zabbix 使用。
- 界面缺乏现代化设计:Cacti 1.x 的界面虽较早期版本有改进,但仍以表格与静态图表为主,缺少交互式仪表盘、拖拽布局与实时数据刷新,可视化体验落后于 Grafana 等现代工具。
- 告警功能依赖插件:原生 Cacti 仅提供最基本的日志告警记录,阈值告警与通知推送必须安装 Thold 与 Monitor 插件,增加了系统复杂度。
适用场景
- 网络带宽监控(推荐指数 ★★★★★):企业出口带宽、核心链路与 WAN 链路的流量趋势监控,RRDTool 的长期数据存储特性非常适合持续数年的带宽审计。
- ISP 网络管理(推荐指数 ★★★★):互联网服务提供商对客户接入链路与骨干链路做流量统计与带宽使用分析。
- 数据中心网络运维(推荐指数 ★★★★):数据中心 ToR 交换机、核心交换机与防火墙的端口流量监控与趋势分析。
- 实时告警场景(推荐指数 ★★):如需实时告警与高频采集,建议配合 Prometheus、Zabbix 使用。
价格参考
| 版本 | 价格 | 功能特点 |
|---|---|---|
| Cacti(开源版) | 免费 | 完整功能,GPLv2 许可,无限设备数 |
| 社区插件 | 免费 | Thold、Monitor、Weathermap、Flowview 等 |
注:Cacti 完全免费开源,无付费版本。官方提供商业咨询与定制开发服务。
常见问题
- Cacti 与 MRTG 有什么区别? MRTG 是早期基于 Perl 与 RRDTool 的流量绘图工具,通过文本配置文件管理,功能单一。Cacti 在其基础上提供 Web 管理界面、模板化配置、多用户权限与插件扩展,可视为 MRTG 的功能升级版本,监控实践见 监控告警指南。
- Cacti 可以监控服务器性能吗? 可以。通过 SNMP 或 Script Server(PHP 脚本),Cacti 可监控 Linux/Windows 服务器的 CPU 使用率、内存占用、磁盘 I/O 与系统进程数,社区提供 Unix 与 Windows 主机监控模板,对比见 云监控服务对比。
- Cacti 与 Grafana 怎么选? Cacti 专注于 SNMP 网络流量数据采集与 RRDTool 图表生成,开箱即用;Grafana 是通用可视化平台,需配合 Prometheus、InfluxDB 等数据源使用。已部署 Cacti 的场景可通过 Cacti Graph JSON 数据源将图表集成到 Grafana,见 Prometheus 告警规则设计。
- Cacti 1.x 与 0.8.x 有什么区别? Cacti 1.x 是 0.8.x 的重大升级,引入响应式 Web 界面(Bootstrap)、改进的用户管理、新的图形渲染引擎与原生 REST API,建议新部署直接使用 Cacti 1.x,告警体系见 监控告警体系。