使用Cacti来记录SNMP-capable device

  新有个网管项目,要用到SNMP来查询设备,网上找了一下,找到Cacti这个极好的软件,http://www.cacti.net。它是一个基于PHP的web application,使用RRDTool来记录设备数据、作图,mysql用于记录一一些配置信息,net-snmp用于SNMP查询。

  在Ubuntu中安装是很容易的,直接apt-get install cacti就差不多了。cacti的网站上有详细的安装步骤,apt基本上都帮做好了。

  在Windows上安装就费一点事,主要是配置方面。AppServ是一个整合了Apache/PHP/MySql/MysqlAdmin的软件套装,也不大,下载20M不到,安装完后WebServer/DB就都有了。Cacti支持IIS/Apache,两者都有详细的安装说明,值得注意的是一定要根据文档在系统中注册好PHPRC/MIBDIR等变量,而且要注册在Global中,不要只注册到当前用户。我就在这个节点上白花了半天时间。都跑起来后打开http://127.0.0.1/phpinfo.php,看看里边的extension_dir/configuration file都正确了,那就差不多了。用IIS的时候,一定要根据文档把一些文件、目录的权限赋给IIS_WPG/IIS_USER等用户。配置好定时任务,搞定。

  进到cacti的页面,添加一些设备,为设备添加graph,等个十分钟左右,软件走过两个查询区间,图表就画出来了,很漂亮,而且图片还可以放大缩小,很炫的。

  软件写得很成熟,封装得非常好。我要基于这套软件,做出自己的一套来,主要包括几方面:增加SNMP-Trap接收功能、数据保存到数据库而不仅仅是RRD文件、把mysql换成Oracle或者sqlserver。