准备工作

安装软件包

1.appserv-win32-2.5.9

  默认安装,安装在了 C:\AppServ。
  装好以后,可以访问 http://localhosthttp://localhost/phpinfo.php 检验安装情况。

2.net-snmp-5.4.0-1.win32.exe

  默认是安装在C:\usr下的,这里需要安装在 C:\net-snmp。选择安装组件时,不需要安装net-snmp trap service服务和perl支持。

3.cacti-0.8.7b.zip

  解压在 C:\AppServ\www\cacti

4.rrdtool-1.2.15-cygwin-1.5.20.zip

  解压在 C:\rrdtool

更改设置参数

1.设置环境变量对PHP的支持

  “开始”-“控制面板”-“系统”-“高级”-“环境变量”。   

  • 在“系统变量”选项卡里点“添加”,在弹出的窗口中变量名输入MIBDIRS,变量值输入
    “c:\net-snmp\share\snmp\mibs”

  • 找到“path”变量,点“编辑”,在变量值最后加入PHP的搜索路径,这里是
    “; C:\AppServ\php5; C:\AppServ\php5\ext”

2.修改PHP配置文件

  修改c:\winnt\php.ini支持SNMP。去掉 extension=php_snmp.dll 前面的注释
  修改c:\winnt\php.ini的session保存位置,否则经常出现“Warning: session_start()”一类的错误。将
      session.save_path = "C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/2"
    改为
      session.save_path = "C:/winnt/Temp"

2.1.

wKioL1XMA5Xgfa_GAAIOQc2LgDA075.jpg

<Directory "c:/wamp/apps/phpmyadmin3.5.1/">

    Options Indexes FollowSymLinks MultiViews

    AllowOverride all

        Order Deny,Allow

         Deny from all

         Allow from 127.0.0.1

</Directory>


把它改成

Allow from 127.0.0.1 => Allow from all   也就是把127。0.0.1替换为all

OK,一切搞定(不行就重启wamp)


3.创建cacti的数据库

  a) 进入 http://localhost/phpMyAdmin/
  b) 创建数据库cactidb
  c) 创建用户cactiuser,密码cactipw
  d) 配置cactiuser对cactidb的完全访问权限
  e) 将 C:\AppServ\www\cacti\cacti.sql 导入进cactidb,在命令行窗口输入如下命令
    mysql -ucactiuser -pcactipw cactidb < C:\AppServ\www\cacti\cacti.sql

4.修改cacti的文件

  • 设置时区,否则LOG文件的时间不对。
    打开 C:\AppServ\www\cacti\include\global.php 文件,在里面加入一行
    date_default_timezone_set('Asia/shanghai');

  • 设置cacti连接数据库。
    打开 C:\AppServ\www\cacti\include\config.php 文件,修改
    $database_default = "cactidb";
    $database_hostname = "localhost";
    $database_username = "cactiuser";
    $database_password = "cactipw";

5.安装配置cacti

  打开 http://localhost/cacti 会进入cacti的安装界面

  • 在设置php路径中输入 C:/AppServ/php5/php.exe

  • 安装完成后,以admin登录用户,在console - Settings - Paths 中设置 RRDTool Default Font Path 成 C:/winnt/fonts/arial.ttf。(否则出来的图上面没有字)

  • 在console - Settings - General 中设置 RRDTool Utility Version 为 1.2.x

6.定时启动poller.php

  a) 配置“计划任务”,添加任务计划;
  b) 运行程序为 C:\AppServ\php5\php.exe,设置成每天 00:00 执行,高级里面选每5分钟执行一次,持续24小时;
  c) 返回到属性的首页;
  d) 运行(R)改成 C:\AppServ\php5\php.exe C:\AppServ\www\cacti\poller.php
  e) 起始于改成 C:\AppServ\php5\

不出图的调试思路

  • 检查poller是否正常
    Console - System Utilities - View Cacti Log File 检查Poller的日志 

  • 记录一个项目的OID值和对应的rra文件
    Console - System Utilities - View Poller Cache

  • 检查net-snmp能否取到资料
    snmpget -v 2c -c community ip.xxx.xxx.xxx oid.x.x.x.x.x.x.x.x.x.x.x
    snmpwalk -v 2c -c community ip.xxx.xxx.xxx

  • 检查rra文件是否正常
    rrdtool.exe fetch c:\AppServ\www\rra\xxxxxxx.rrd AVERAGE

  • 如果没有图,检查是rrdtool能否创建rra文件
    Console - System Utilities - Data Sources - 选择一个项目 - Turn On Data Source Debug Mode
    将里面的
    c:/rrdtool/rrdtool.exe create \
    c:/AppServ/www/rra/xxxxxxxx.rrd \
    --step 300  \
    DS:traffic_in:COUNTER:600:0:1000000000 \
    DS:traffic_out:COUNTER:600:0:1000000000 \
    RRA:AVERAGE:0.5:1:600 \
    RRA:AVERAGE:0.5:6:700 \
    RRA:AVERAGE:0.5:24:775 \
    RRA:AVERAGE:0.5:288:797 \
    RRA:MAX:0.5:1:600 \
    RRA:MAX:0.5:6:700 \
    RRA:MAX:0.5:24:775 \
    RRA:MAX:0.5:288:797 \
    整理成一行,在cmd窗口下执行,看能否正常创建。

其他说明

  • cacti的poller也可以用spine,不过网上下载到的是源代码。一来手边没有编译器,二来spine的调试也很麻烦,看网上说好多人都搞不定。

  • AppServ、net-snmp、rrdtool不一定装在C盘,装在别的分区也可以,只要在cacti中设置好路径就可以。

  • 如果一个服务器只用作网管的话,可以将原 C:\AppServ\www 改名,将 C:\AppServ\www\cacti 改成 C:\AppServ\www ,然后将原 C:\AppServ\www 的东西复制到新的文件夹去。