初次安装cacti,第一次是用cacti-0.8.7f.tar.gz这个版本,安装后创建设备
出现

“Notice: Array to string conversion in /usr/www/www/cacti/lib/snmp.php  on line 131

Warning: Cannot modify header information - headers already sent by (output started at /usr/www/www/cacti/lib/snmp.php:131) in /usr/www/www/cacti/host.php on line 161”

翻译cacti的论坛知道是一个BUG ,于是换了cacti-0.8.7e.tar.gz这个版本;
安装中的注意事项:
1、我们看到网络上许多的安装文档,都是用tar包安装的,要安装许多的支持库文件包,实际上 只要我们在安装系统时在自定制安装文件时,把所需要的开发工具组件安装完毕就基本上满足安装cacti的条件了;

1)、[root@dns ~]# rpm -qa |grep zlib
zlib-devel-1.2.3-3
zlib-1.2.3-3
2)、[root@dns ~]# rpm -qa |grep libpng
libpng-1.2.10-7.1.el5_3.2
libpng-devel-1.2.10-7.1.el5_3.2
3)、[root@dns ~]# rpm -qa |grep freetype
freetype-2.2.1-21.el5_3
freetype-devel-2.2.1-21.el5_3
4)、[root@dns ~]# rpm -qa |grep jpeg*
libjpeg-devel-6b-37
libjpeg-6b-37

5)、[root@dns ~]# rpm -qa |grep fontconfig
fontconfig-devel-2.4.1-7.el5
fontconfig-2.4.1-7.el5
6)、[root@dns ~]# rpm -qa |grep gd
gdbm-1.8.0-26.2.1
gdm-2.16.0-56.el5
gd-2.0.33-9.4.el5_1.1
sysklogd-1.4.1-44.el5
gdbm-devel-1.8.0-26.2.1
gd-devel-2.0.33-9.4.el5_1.1
gdb-6.8-37.el5
7)、[root@dns ~]# rpm -qa |grep libxml
libxml2-2.6.26-2.1.2.8
libxml2-devel-2.6.26-2.1.2.8
libxml2-python-2.6.26-2.1.2.8
8)、[root@dns cacti]# rpm -qa |grep libart
libart_lgpl-2.3.17-4
libart_lgpl-devel-2.3.17-4
You have new mail in /var/spool/mail/root


2、安装
1)、首先安装apache、mysql和php
2)、安装rrdtool
刚开始安装rrdtool-1.2.23.tar.gz 出现错误选择安装rrdtool-1.2.13.tar.gz。
#tar -zxvf rrdtool-1.2.13.tar.gz
#cd rrdtool-1.2.13
#./configure --prefix=/usr/local/rrdtool
#make
#make install
#cp /usr/local/rrdtool/bin/* /usr/local/bin/
3)、安装snmp,因为cacti与mrtg一样都是通过snmp来采集数据的,这一步建议用
yum 来安装,因为net-devel的依赖性,

#yum install net-snmp*    

#vi /etc/snmp/snmpd.conf

vi /etc/snmp/snmpd.conf

更改
*、第41行
com2sec notConfigUser  default      public
改为:com2sec notConfigUser (你想监控的那台机器的IP)  public
如:com2sec notConfigUser  192.168.0.25       public

*、 第55行修改如下
 view    systemview    included   .1  (据说是显示网卡)
做了多次实验,这里不用改也行,保留原样;

*、第62行
access  notConfigGroup "" any noauth  exact systemview none
none
改为:我把read,与write的值都该成了 all
access  notConfigGroup "" any noauth  exact all all none
*、第83行
#view all    included  .1        80
去掉注释
view all    included  .1         80



# snmpwalk -v 2c 192.168.0.25 -c  public
如果有返回的监控信息的话就说明snmp安装正常,如果出现time out现象就要检查
snmp配置了

4)、安装cacti

http://www.cacti.net/官网下载
#chmod 777 cacti-0.8.7e.tar.gz
#tar -zxvf cacti-0.8.7e.tar.gz
#mv cacti-0.8.7e cacti
#cp -rv cacti/* /usr/local/www/cacti
# vi /usr/local/www/cacti/include/global.php

修改如下:
    25 /* make sure these values refect your actual database/host     /user/password */
     26 $database_type = "mysql";
     27 $database_default = "cacti";
     28 $database_hostname = "localhost";
     29 $database_username = "cacti";
     30 $database_password = "cacti";
     31 $database_port = "3306";
5)、添加cacti 用户
# useradd cacti

6)、将rra 目录的所有权给cacti 用户

# chown –R  cacti /usr/local/www/cacti/rra
# chown  -R  cacti /usr/local/www/cacti/log
# chmod 777 – Rf /usr/local/www/cacti
7)、修改 cacti 目录所属组

# chgrp –R cacti /usr/www/www/cacti


9)、添加crontab -e 任务
#su cacti
#crontab -e
*/1 * * * * /usr/local/bin/php /usr/local/apache2/htdocs/cacti/poller.php > /dev/null 2>&1
用cacti用户来运行 ,特别是第一执行时;

10)、创建cacti数据库
#mysql -uroot –p
mysql>create database cacti;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cacti              |
| lianhua            |
| mysql              |
| phpmv2             |
| test               |
+--------------------+
6 rows in set (0.02 sec)



mysql> GRANT all ON cacti.* TO cacti@localhost IDENTIFIED by 'cacti';
Query OK, 0 rows affected (0.02 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>
11)、把cacti.sql导入数据库

mysql> source /usr/local/www/cacti/cacti.sql
mysql> exit
Bye

12)、#ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.16.0.0 /usr/lib/libmysqlclient.so.16

#ldconfig这两句要加上,否则系统无法找到 libmysqlclient.so.16库(版本不同libmysqlclient.so.的名字也不同)


13)、修改权限
Chmod 777 /usr/local/www/cacti/log

Chmod 777 /usr/local/www/cacti/rra


14)、IE中输入http://ip/cacti

按照向导完成安装;
15)、修改完密码重新登录添加设备


然后在创建新图像 ,
到这里基本上就安装结束了 ,也是第一安装cacti ,以后边学边做实验;



以下是错误
============================================================

然后就出现
"Warning: Invalid argument supplied for foreach() in /usr/www/www/cacti/lib/snmp.php on line 486

Warning: Cannot modify header information - headers already sent by (output started at /usr/www/www/cacti/lib/snmp.php:486) in /usr/www/www/cacti/graphs_new.php on line 45"

我看到这个帖子也有类似的问题

http://bugs.cacti.net/view.php?id=1506

不知道如何解决?
========================================================

另外在第一次安装
cacti-0.8.7f.tar.gz版本时出现如下问题,


也是同样的的文件夹snmp错误,不过这个换版本后问题就解决了;
=========================================================