Cacit 运行环境需要 Apache+ PHP + Mysql + rrdtool 以及 snmp 工具的支持。
下边是本次配置需要用到的软件。
1安装mysql数据库
mysql-5.1.40]# ./configure --prefix=/usr/local/mysql
--enable-thread-safe-client
--enable-local-infile
--with-charset=gbk
--with-extra-charsets=all
--with-low-memory
--with-named-curses-libs=/usr/lib/libncursesw.so.5
出现以下情况/bin/rm: cannot remove `libtoolT': No such file or directory
config.status: executing default commands删除configure文件里的$RM "$cfgfile"这一行,从新编辑就不会在现实。
make make install
如果想安装选项文件,使用当前存在的‘support-files’文件夹下的作为模板,执行指令:
[root@localhost mysql-5.1.40]#cp support-files/my-medium.cnf /etc/my.cnf
如果需要在此让mysqld每次开机时自动启动,需要执行以下指令:
[root@localhost mysql-5.1.40]#cp -r support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql-5.1.40]#chmod 755 /etc/init.d/mysqld
[root@localhost mysql-5.1.40]#chkconfig --del mysqld
[root@localhost mysql-5.1.40]#chkconfig --add mysqld
如果在之前没有安装过MySQL,必须创建一个MySQL准许的表。
[root@localhost mysql-5.1.40]#bin/mysql_install_db --user=mysql
进行目录授权:
[root@localhost mysql-5.1.40]#chown -R mysql:mysql /usr/local/mysql/
[root@localhost mysql-5.1.40]#chown -R mysql /usr/local/mysql/var
所有的配置完成后,执行以下命令测试并运行MySQL
[root@localhost mysql-5.1.40]#/usr/local/mysql/bin/mysqld_safe --user=mysql &
[root@localhost mysql-5.1.40]service mysqld start
正常启动后需要更改管理员的密码。可以运行mysqladmin,执行命令
[root@localhost mysql-5.1.40]/usr/local/mysql/bin/mysqladmin -u root -p password '123456'
Enter password: (这里不需要再输入密码直接按回车键即可)
测试登陆mysql数据库
[root@localhost ]mysql -u root -p
-bash: mysql: command not found 出现这一行需要安装MySQL-client软件包,安装完后从新登陆mysql数据库
[root@localhost ~]mysql -u root –p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.40-log Source distribution
 
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql>
出现以上情况说明登陆成功。
2安装Aapche软件包
[root@localhost httpd-2.2.17]#./configure --prefix=/usr/local/apache2
 -with-mysql=/usr/local/mysql
--enable-so --enable-track-vars
--enable-rewrite --with-zlib
--enable-mods-shared=all
--enable-suexec
--with-suexec-caller=daemon
--enable-modules=most
make make install
3安装PHP软件包
需要安装的软件包有freetype-devel libpng-devel libjpeg-devel libxml2-devel
[root@localhost php-5.2.6]#./configure  --prefix=/usr/local/php
--with-apxs2=/usr/local/apache2/bin/apxs
--with-mysql=/usr/local/mysql
--with-libxml-dir
-with-png-dir
--with-jpeg-dir
--with-zlib
--with-freetype-dir
--with-gd
--enable-mbstring=all
--enable-sockets
make make install
[root@localhost php-5.2.6] # cp -fr php.ini-dist /usr/local/php/php.ini
编辑apache配置文件httpd.conf
查找
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在其下加入
AddType application/x-tar .tgz
AddType application/x-httpd-php .php
AddType p_w_picpath/x-icon .ico
修改DirectoryIndex 行,添加index.php
修改为
DirectoryIndex index.php index.html index.html.var
测试新建vim /usr/local/apache2/htdocs/index.php添加以下内容
<?php
phpinfo();
?>
保存退出。访问http://ip地址.index.php
出现以下如说明安装正确
5安装net-snmp net-snmp-devel net-snmp-libs  net-snmp-utils软件包
可以用yum install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils进行安装。
修改 /etc/snmp/snmpd.conf文件
更改 1、com2sec notConfigUser  default       public
改为:com2sec notConfigUser   127.0.0.1       public
2、access  notConfigGroup “”      any       noauth    exact  systemview  none none
改为:access  notConfigGroup “”      any       noauth    exact  all  none  none
3、#view all    included  .1         80
将前面的 # 注释 去掉。
保存退出 :wq 重启service snmpd restart
6安装rrdtool
# ./configure --prefix=/usr/local/rrdtool
make make install
如果 ./configure 时出现下面这个错误

configure: error: Please fix the library issues listed above and try again.

 
表明系统有功能缺失,需安装 libart_lgpl-devel.rpm 这个包
如果还是提示听样的错误,有可能是找不到 FreeType
/usr/local/freetype2/lib/pkgconfig 下的 .pc 文件拷贝到 /usr/lib/pkgconfig 下即可
如果 make install 时出现 [tclrrd.o] 错误
就安装 tcl-8.4.7-2.i386.rpm 以及 tcl-devel-8.4.7-2.i386.rpm 这 2 个包
 
解压cacti软件包
把解压的cacti软件包复制到apache WEB目录
cp -fr cacti-0.8.7g/ /usr/local/apache2/htdocs/cacti
进入mysql数据库创建cacti数据库
mysql –u root –p
create database cacti;
查看数据库是否创建
mysql> show databases;      
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cacti              |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)显示出cacti数据库说明创建好,接下来还原cacti.sql数据库
[root@localhost ] # mysql -u root -p cacti < /usr/local/apache2/htdocs/cacti/cacti.sql(小于号后面是cacti.sql数据库的存放路径)
# vi /data/web_server/admin/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "数据库用户";
$database_password = "用户密码";
 
更改后保存退出。
# crontab – e (加入自动执行规则,每 5 分钟执行。)
*/5 * * * * /usr/local/php/bin/php /usr/local/apache2/htdocs/cacti/poller.php > /dev/null 2>&1
打开浏览器 http://IP/cacti 进入cacti的初始设置页面
第一次默认登陆账号:admin 密码 admin
登陆后在新改个密码就OK
说一下 cacti 设置页中各项“零件”的路径。
当修改好新密码进入,第一个显示出的页面就是让你设置 rrdtool,snmp 等工具的路径。这是个很重要的环节,必须无误,要不然 cacti 将无法生成出统计图。

snmpwalk Binary Path : /usr/bin/snmpwalk
 snmpget Binary Path: /usr/bin/snmpget
 RRDTool Binary Path: /usr/local/rrdtool/bin/rrdtool
 PHP Binary Path: /usr/local/php/bin/php
 Cacti Log File Path: /data/web_server/admin/cacti/log/cacti.log
 Cactid Poller File Path: /data/web_server/admin/cacti/poller.php

 

默认的配置中会出现许多“ NotFound ”
按照上边的路径把“ NotFound ”的项都重新填上。
手动运行一次
/usr/local/php/bin/php /data/web_server/admin/cacti/poller.php > /dev/null 2>&1
你就能在顶上 graphs 中 localhost 里头看到本机的内存,CPU,登陆用户等的统计图 .
但默认 Cacti 是没有创建网卡流量的监控图的。要我们自己来加。
回到 console 菜单
选择 Devices 监控设备。
然后点击右上角的 Add 进行添加
Description 设备名称 ( 可随意输入 )
Hostname 设备地址 ( 如果是本机就填 127.0.0.1 )
Host Template 设备的类型 ( 选择 ucd/net SNMP Host )
然后其他按照默认即可,如下图
create 创建。
如果刚才填写的地址无误,创建成功后,会在该页面左上方出现所新建设备的 SNMP Information
然后点击隔壁醒目的 * Create Graphs for this Host 即开始创建监控图表
如图 6,沟选你所要监控的网卡以及 IP,点 create 。
这样就完成了你所指定设备统计图的创建。

 
 /usr/local/php/bin/php /data/web_server/admin/cacti/poller.php > /dev/null 2>&

 
然后曲线表中就能出现第一个峰值,每 5 分钟自动更新。 24 小时后,曲线图就能完整地出现在你眼前。
Choose an action 框中选择 Place on a Tree(default Tree)
就能把该图表类似快捷方式的样子张贴到本文图 1 所示的 Graphs,Default tree 栏目中。然而你也能自己在菜单栏的 Graph Trees中新建定制栏目,然后用相同的方法把新建的统计图往你所定制的栏目中放。
Cacti 的强大功能不单止可以通过 snmp 获取装有 Linux,Unix 操作系统服务器的运行状态,还能监控 Windows 系统服务器。跟诸如 Cisco,Linksys, 路由器,交换机,无线 AP 。或者其他支持 snmp 管理协议的网络设备。

下边我们举出实应用的例子。
设备结构:
  1. 网络入口路由器 Linksys RV042
    Linksys 的一款路由器,主要负责,外网接入路由,防火墙,以及端口映射。
  2. server1 WEB 应用服务器
    操作系统: Linux RedHat As4
    Eth0,Eth1 双网卡工作。前者接入路由器映射至外网。后者直连至 server2
    进行反向代理 ( proxy ) 以及数据备份以及同步等功能。
    IP 分别为 192.168.3.2 以及 192.168.10.2
  3. server2储存,FTP与WEB 应用服务器
    操作系统: Windows2003 r2
    与 server1 网络环境相仿,双网卡工作。
    IP 分别为 192.168.3.3 以及 192.168.10.3
Cacti 已经配置完成,安装在 server1 上。第一台添加到监控表里边的是路由器 RV042 。打开路由器的 WEB 设置页面,勾选并启用 SNMP 功能。如图 9
Send SNMP Trap to: 192.168.3.2( server1 的 IP )
然后其他输入框按照默认留空即可,但需留意 Get Community Name: 所填写的组名: public 。保存设置。
Description 设备名称 ( 我们这里自定为 Linksys RV042)
Hostname 设备地址 ( 路由器的地址 192.168.3.1 )
Host Template 设备的类型 ( 选择 ucd/net SNMP Host 或者是 Cisco Router )
然后其他按照默认即可。
创建成功后,也会在该页面左上方出现所新建设备的 Linksys RV042 SNMP Information
点击隔壁 *Create Graphs for this Host 创建监控图表
路由器 RV042 的端口以及 IP 等数据都取出来了。
勾选好所要监控的端口,点击 create 就能完成路由器监控图表的建立。
Cacti 运行在 Server1 上,所以配置方式跟前边所介绍是一样的,这里就掠过了。但顺带说一下,如果环境中还存在 Server3,而且跟 Server1 一样都是 Linux 系统,需要添加到 cacti 里头。哪么只需在该服务器上修改 snmp 配置,修改的内容也跟 server1 上几乎一样,不同的是。
编辑 /etc/snmp/snmpd.conf 的时候,原来填 127.0.0.1 ( 本机地址 ) 的地方换成 Cacti 所在运行的服务器 IP,即 server1: 192.168.3.2
  1. com2secnotConfigUser default public
    改为:com2secnotConfigUser 192.168.3.2(server1 地址) public
  1. access  notConfigGroup ""  any   noauth    exact  systemview  none none
改为:accessnotConfigGroup""anynoauthexact all none none
  1. #view all    included  .1         80
    将前面的 # 注释 去掉。
  1. 保存退出 :wq
重新启动 snmp 服务
# service snmpd restart
填写 Server3 IP 地址,设备类型: ucd/net SNMP Host , 创建图表 , 完成。