猝然临之而不惊,无故加之而不怒。
分类: 系统运维
2011-10-22 11:52:24
前期准备:
平台:Windows2003
需要安装的软件:
Apache2.0.63
PHP5.2.2
MySQL5.1.50
cacti-0.8.7g
cygwin 需在线安装
rrdtool-1.2.15
Spine(Cactid)0.8.7
net-snmp-5.5
1,安装Apache
按提示默认安装即可。
注意:如果有80端口或是8080端口已经占用,请更改Apache安装文件目录conf文件夹的httpd.conf里,listen的端口为808X:
我的80端口和8081端口已被占用,所以Apache的测试页为:
如果系统任务栏中Apache的有小箭头为绿色,而且可以显示以上页面,代表Apache安装成功。
2,安装PHP:
1)我将安装路径改为:C:\PHP ,以便以后使用;。
下一步,选择步骤1安装的Apache版本.我安装的是Apache2.0.63,所以选择Apache2.0.x
下一步,选择Apache conf文件路径:
下一步,选择全部安装:
2)更改php.ini ,路径:C:\PHP\php.ini
寻找以下内容,取消注释或修改下列内容:
3)在c:\php 文件夹中建Uploadtemp 和Session 子文件夹,并将其权限改为可写;
3, 更改Apache配置文件,httpd.conf 路径:C:\Program Files\Apache Group\Apache2\conf\httpd.conf
1), 将 #BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL 部分 替换为:
2), 更改:【请看好位置再改,别把Directory根目录给覆盖掉啦】
3), 注释掉:
4),重启Apache,
5),在c:/http/cacti目录中新增一test.php文件:
浏览,查看:
It’s OK.
小提示:APACHE的Log地址在:C:\Program Files\Apache Group\Apache2\logs ,如有错误,记得去查!
4,安装MySQL5
全部按默认装即可,root密码我设为123456。
将上一步骤中test.php内容改为:
测试:
OK!
5,安装CACTI
1)将cacti压缩包解压到 c:\http\cacti 中
2)编辑:C:\http\cacti\include\config.php文件:
6,导入CACTI数据库
7,安装其他软件
1)安装Cygwin
直接在线安装即可。如需要在cmd下玩Linux指令,则将C:\cygwin\bin添加到环境变量PATH中即可:)
2)安装RRDTool
将ZIP 文件解压缩到C:\rrdtool 文件夹中
3)安装Net-SNMP
默认安装net-snmp-5.5.0-1.x86.exe即可。
4)安装Spine
将该ZIP 包解压缩到c:\cacti,并编辑spine.conf 文件如下:
8,测试CACTI
1)运行,转到以下页面:
2)下一步,选择new install
3)下一步,全部文件found:
4)FINISH,OK了
5)登陆页面,输入用户名:admin 密码admin ,更改密码,安装ok
PS: CACTI LOG位置如下图: 有任何情况,记得查log!
9, 运行CACTI
1) cmd中,输入:
解决方法:
(1)添加环境变量MIBDIRS:
(2)关掉当前cmd,重新打开新的cmd;
(3)再来一次:
php C:\http\cacti\poller.phpOK了
2)设置计划任务,并设为每5分钟启动一次,9999小时后过期。
运行:C:\PHP\php.exe C:\http\htdocs\cacti\poller.php
起始于:C:\http\htdocs\cacti
常见故障解决:
1, CACTI无图或无数据?
(1)无数据?
如果有数据返回,则snmp的数据没有问题。如果出现“Timeout: No Response from ...”之类的错误信息则是snmp设置的问题。
(2)有图无数据?
一般这样的情况就是snmp采集的结果有问题。这种情况下,一般也会出现新建的device的Data Query里面的状态总是“ Success [0 Items, 0 Rows]”。通过执行snmp命令来检查:
通过结果可以看到是否允许cacti取这些OID的数据。
eg:
2,XP环境下,CACTI 的任何页面都是空白?
这个问题很郁闷,最后追代码半天,是cacti安装目录lib文件下的database.php的函数 function db_connect_real($host, $user, $pass, $db_name, $db_type, $port = "3306", $retries = 20) 里的:
if ($cnn->PConnect($hostport,$user,$pass,$db_name)) 此句话报错。原因很简单,mysql连接的问题~~~最后,通过tasklist,才发现是php_mysql.dll没有加载~~
小技巧:查看任务管理器所有进程加载的dll:
tasklist -m>c:\a.txt
找到apache.exe,查看相应加载的dll:
无法加载php_mysql.dll文件,原因是php_mysql.dll依赖于libmysql.dll,libmysql.dll其实在php的根目录是存在的;但之前我在2003里用安装程序装了mysql,可能是mysql里已经有了这样一个文件,且在安装的时候把mysql的bin目录加到了系统的path环境变量里,所以在2003下能正常使用,但在xp里确不行。
解决的方法:
把php根目录下面的libmysql.dll文件copy到system32目录下面。
================================================================================
此文章特别鸣谢Stephen的支持~
参考资料:
1, Cacti_For_Windows安装手册(抛砖引玉版)
2,
3,