Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善,界面友好。
一、安装
需要安装的软件包:net-snmp、mysql、php、apache、rrdtool(画图软件)、cacti。
操作系统 linux
IP:192.168.11.100
1、安装net-snmp
安装前先查看系统中有没有安装net-snmp包:
[root@as5 ~]# rpm -qa| grep snmp
net-snmp-devel- 5.3.1 -19.el5
php-snmp- 5.1.6 -15.el5
net-snmp- 5.3.1 -19.el5
net-snmp-utils- 5.3.1 -19.el5
net-snmp-perl- 5.3.1 -19.el5
net-snmp-libs- 5.3.1 -19.el5
需要安装的包net-snmp- 5.3.1 -19.el5、net-snmp-utils-5.3.1-19.el5、net-snmp-devel- 5.3.1 -19.el5
。我的机器上都已装好了,如果用这条命令没有查到上面三个包,可以用下面的方法安装:
A)查询安装包:
root@as5 ~]# apt-cache search snmp
net-snmp - A collection of SNMP protocol tools and libraries.
net-snmp-devel - The development environment for the NET-SNMP project.
net-snmp-libs - The NET-SNMP runtime libraries.
net-snmp-perl - The perl NET-SNMP module and the mib 2c tool.
net-snmp-utils - Network management utilities using SNMP, from the NET-SNMP project.
B)安装软件包
root@as5 ~]# apt-get install net-snmp
文章中提到的命令snmpwalk和snmpget可以在安装完这几个包后获得,默认路径是/usr/bin/snmpwalk(snmpget)。
C)修改配置文件
#vi /etc/snmp/snmpd.conf
更改 1、com2sec notConfigUser default public
改为:com2sec notConfigUser 192.168.0.10 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
cd /sbin
service snmpd start
注:一般我们执行完上面的安装后,配置文件也相应的修改好了。
2、安装mysql
[root@Bleach usr]#groupadd mysql
[root@Bleach usr]#useradd -g mysql mysql
[root@Bleach usr]#cd /usr/local
[root@Bleach local]#gunzip < /usr/mysql-standard- 4.0.23 -pc-linux-i686.tar.gz | tar xvf -
[root@Bleach local]#ln -s /usr/local/mysql-standard- 4.0.23 -pc-linux-i686 mysql
[root@Bleach mysql]#cd mysql
[root@Bleach mysql]#scripts/mysql_install-db -user=mysql
[root@Bleach mysql]#chown -R root .
[root@Bleach mysql]# chown -R mysql data
[root@Bleach mysql]#chgrp -R mysql .
[root@Bleach mysql]#./bin/mysqld-safe -user=mysql &
[root@Bleach mysql]#./bin/mysqladmin -u root password mysql
[root@Bleach mysql]#cp ./support-file/mysql.server /etc/init.d/mysql
[root@Bleach mysql]#cd /etc/rc3.d/
[root@Bleach rc3.d]#ln -s /etc/init.d/mysql S85mysql
[root@Bleach rc3.d]#ln -s /etc/init.d/mysql K85mysql
mysql增加用户cactiuser
[root@Bleach php- 4.3.10 ]#/usr/local/mysql/bin/mysql -u root –p123456 (密码)
mysql> create database cactidb;
mysql> grant all on cactidb.* to root;
mysql> grant all on cactidb.* to root@localhost;
mysql> grant all on cactidb.* to cactiuser;
mysql> grant all on cactidb.* to cactiuser@localhost;
mysql> set password for cactiuser@localhost=password('cactipw');
3、安装apache
[root@Bleach usr]#tar -zxvf httpd- 2.0.54 .tar.gz
[root@Bleach usr]#cd httpd- 2.0.54
[root@Bleach httpd- 2.0.54 ]# ./configure --prefix=/www --enable-so
[root@Bleach httpd- 2.0.54 ]# make && make install
[root@Bleach httpd- 2.0.54 ]# cp /www/bin/apachectl /etc/init.d/httpd
[root@Bleach httpd- 2.0.54 ]#cd /etc/rc3.d
[root@Bleach rc3.d]#ln -s ../init.d/httpd S85httpd
[root@Bleach rc3.d]#ln -s ../init.d/httpd K85httpd
[root@Bleach rc3.d]#/www/bin/apachectl start
安装好后,配置文件为/www/conf/httpd.conf,
注:不能安装在root目录下,否则访问页面时提示没有权限。
4、安装php
[root@Bleach usr]# tar -zxvf php- 4.3.10 .tar.gz
[root@Bleach usr]#cd php- 4.3.10
[root@Bleach php- 4.3.10 ]# ./configure --prefix=/usr/local/php/php-5.2.5 /
--with-config-file-path=/usr/local/php/php- 5.2.5 /
--with-apx2=/usr/local/apache/httpd- 2.2.8 /bin/apxs /
--enable-sockets /
--with-mysql=/usr/local/mysql/ /
--with-zlib-dir=/usr/include/ /
--with-libxml /
--with-gd /
--with-gdbm /
--enable-gd-native-ttf /
--enable-gd-gd-jis-conv /
--with-png-dir /
--with-jpeg /
--enable-bcmath
[root@Bleach php- 4.3.10 ]#make && make install
[root@Bleach php- 4.3.10 ]#cp php.ini-dist /www/php/php.ini
[root@Bleach php- 4.3.10 ]#vi /www/conf/httpd.conf (apache的配置文件)
将这段加进去
###############for php and cacti###################
AddType application/x-tar .tgz
AddType application/x-httpd-php .php
AddType image/x-icon .ico
DirectoryIndex index.php index.html index.html.var
#######################over########################
(能访问php网页就没问题)
测试php网页能否访问,在apache的htdoc目录下新建一个phpinfo.php文件,如下:
[root@Bleach usr]# touch phpinfo.php
[root@Bleach usr]#vi phpinfo.php
在该文件中写入
<? echo phpinfo(); ?>
通过IE访问http://IP/phpinfo.php,如果页面显示php的信息就表示apache和php安装成功。
5、安装rrdtool
[root@Bleach usr]# tar zxvf rrdtool- 1.0.50 .tar.gz
[root@Bleach usr]# cd rrdtool- 1.0.50
[root@Bleach rrdtool- 1.0.50 ]# ./configure
[root@Bleach rrdtool- 1.0.50 ]#make && make install
6、安装cacti
[root@Bleach usr]# useradd cactiuser -g users
[root@Bleach usr]#passwd cactiuser (pwd:cactipw)
[root@Bleach usr]# cp cacti- 0.8.6 g.tar.gz /www/htdocs/
[root@Bleach htdocs]# tar zxvf cacti- 0.8.6 g.tar.gz
[root@Bleach htdocs]# mv cacti- 0.8.6 g cacri
[root@Bleach htdocs]# cd cacti
[root@Bleach cacti]# /usr/local/mysql/bin/mysql -u root -pmysqlpw cactidb < cacti.sql
[root@Bleach cacti]# chown -R cactiuser rra/ log/
[root@Bleach cacti]#cd scripts
[root@Bleach scripts]#chown cactiuser:users *
[root@Bleach scripts]#vi /www/htdocs/cacti/include/config.php
$database_type = “mysql”;
$database_default = “cactidb”;
$database_hostname = “localhost”;
$database_username = “cactiuser”;
$database_password = “cactipw”;
更改用户、密码 等项 与上面给出的对应 保存退出
[root@Bleach scripts]# crontab -u cactiuser -e
加入 */5 * * * * /www/php/bin/php /www/htdocs/cacti/poller.php > /dev/null 2>&1
保存退出:wq
打开浏览器 http://192.168.0.10/cacti 进入cacti的初始设置页面
第一次默认登陆账号:admin 密码 admin
登陆后在新改个密码就OK
如果此时访问不了,则用下面的命令将snmp、mysql、apache重启:
[root@Bleach usr]# service snmpd restart
[root@Bleach usr]# service mysql restart
[root@Bleach usr]# service httpd restart
界面中settings的路径:
snmpwalk 、snmpget 、rrdtool 、php 、Cacti Log File Path(/www/htdocs/cacti/log/cacti.log)、Cactid Poller File Path(空)
安装常见问题
1、cacti中显示broke图片
刚安装好系统登录进去,cacti上显示的broke图片。原因是中rra目录下没有文件,一般等几分钟,等crontab中的任务执行一次,rra目录下有文件,cacti就可以显示图片了。此时我们也可以手工执行/www/php/bin/php /www/htdocs/cacti/poller.php。
2、rra目录下有rrd文件,但cacti还是显示broke图片。
查看rra目录的所有者是否是cactiuser,rra目录下的文件的所有者是否是cactiuer。
二、使用
1)添加监控站点
点Devices 中的Add进入添加服务器
设置好后,点击“create”,如果能连接得上,则添加后会在头部显示:
webserver (192.168.11.100
SNMP Information
System: LINUX AS5
2.6.18
-53.1.13.EL5PAE #1 SMP MON FEB 11 13 42 05 EST 2008 I686
Uptime: 9515253 (1 days, 2 hours, 25 minutes)
Hostname: as5
Location: Unknown (edit /etc/snmp/snmpd.conf)
Contact: Root root@localhost (configure /etc/snmp/snmp.local
2)配置添加的服务器的监控服务(这里一般使用UCD/NET 模板)
点New Graphs 或在上面的页面中点Create Graphs for this Host选择监控点名,勾选相应的creat
3)、添加目录树(增加后将在监控的位置出现)
点Graph Trees 中的Add,
选择host,并在下拉列表中选择你刚添加的服务器
4)、监控
点击总菜单中的Graphs 显示监控图,可在左边选择相应的监控端查看(一般添加5分钟后就有图出来)
5)排错
1. 首先检查一下rra/下面,有没有数据,如果没有检查rra/ log/的拥有者是不是cactiuser
2. snmpwalk -v
2c
-c public ServerIP if 用来测试被控对象(serverIP)是否开启了SNMP服务
3. snmpwalk -v
2c
ServerIP -c publi
c .1.3
.6.1.4.1.2021.10.1.3 查看被控端是否有CPU负载的数据返回
4. /usr/local/bin/php /home/wwwroot/cacti/poller.php 用来测试PHP是否可以采集到数据。如果上面的都正确,但这步出错,很有可能是PHP配置的问题,或开启了SuLinux(在 /etc/selinux/config中将 SELINUX 设置为 disable:SELINUX=disabled)。
5. 如果按第2步snmpwalk能采集到数据,但第3步无法采集,可能是PHP设置的问题,修改PHP.ini,很有可能是PHP权限问题。如果第4步正常而无法显示图,则可能是rra/ log/ 的Owner不对
问题:
1、 在Graph Management中增加了一个监控项,但在graphs中没有看到这个图片。
要在Graph Management的Graph Title中点击该监控项,进入该监控项的配置页面进行配置。