>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
PHP

传奇的Cacti与网络基础设施监控

如果你在十五年前做过系统管理工作,你可能还记得那些独特的绿色流量图。岁月流逝。Prometheus、Grafana、VictoriaMetrics以及许多其他系统相继出现。尽管如此,经典的Cacti项目仍然活跃。开发者们定期提交代码、为PHP 8适配代码、开发新的C语言轮询引擎,并准备发布1.3分支版本。

为什么一个来自2000年代的工具能够存续至今?答案很简单:网络设备的变化速度不像前端或云服务那么快。交换机、路由器、UPS设备和服务器机架仍然通过SNMP协议暴露指标数据。

平台组成

Cacti作为RRDtool轮询数据库顶层的可视化层工作。与传统时序数据库不同,RRDtool不会无限增长。文件大小在创建时就是固定的。旧数据会根据指定规则自动平均和压缩。

该项目由三个主要部分组成:

  • 用于系统配置和图形查看的PHP Web界面
  • 用于存储模板和用户的MySQL或MariaDB关系型数据库
  • 按计划运行的设备轮询子系统

指标每隔几分钟收集一次。你可以使用基本的PHP轮询器或连接Spine。Spine引擎使用C语言编写,由于多线程支持运行速度更快。对于包含一千台设备的网络,这是唯一合适的解决方案,否则进程根本无法在时间内完成。

平台功能

为硬件工作创建模板。你不需要在供应商文档中手动搜索正确的OID。你只需获取一个现成的Cisco、Juniper、MikroTik或D-Link模板,将其附加到设备上,就能获得一组现成的图表。

网络扫描按计划运行。发现新设备?系统通过SNMP响应识别它并应用相应的自动化规则。

提供基于角色的访问控制以支持团队协作。你可以给值班工程师访问特定机架图表的权限,同时阻止其他部分的访问。

界面中的图表是交互式的。你可以用鼠标选择所需的时间间隔、切换比例、查看实时数据,并以CSV格式导出指标。

对IPv6和SNMPv3协议的支持为监控现代基础设施同时满足安全要求开辟了道路。

系统要求及源码编译

运行需要支持PHP 8.1的Web服务器。MariaDB 10.2或更高版本(或MySQL 8.0或更高版本)。系统工具需要RRDtool 1.8版本和Net-SNMP包。

项目依赖使用Composer部署:

使用开发分支 1.3 时,需要定期更新数据库表。为此,项目包含命令行工具:

内置审计功能帮助在每次更改后检查表结构完整性:

实际应用场景

网络通道监控仍然是该项目的主要领域。当你需要跟踪一百台交换机的端口利用率时,启动一套臃肿的采集器和导出器可能过于冗余。该系统半小时即可部署,消耗资源极少。

数据中心工程系统统计是另一个常见场景。监控机架温度、UPS相位负载和接口错误。该工具经过数十年的完善,正是为这类任务而生的。

架构支持插件。如果标准功能不够用,你可以安装用于发送通知或构建地理网络地图的模块。

Cacti并不试图在容器和动态Pod的世界里与Prometheus竞争。它是一个用于传统物理基础设施的工具。

如果你需要部署易于理解且对网络设备要求不高的监控,Cacti仍然是一个实用的选择。它节省内存,能够稳定运行多年,不需要不断修复配置文件。

相关项目