CentOS Linux安装cacti

Cacti是一套基于PHP、MySQL、SNMP及RRDTool开发的网络流量监测图形分析工具。使用snmp协议监控。官网:http://www.cacti.net/。这里系统为centOS6.2,监控机IP为192.168.1.100,被监控机IP为192.168.1.200。

一、安装PHP Web Server环境及cacti所需软件包
LAMP、LNMP、LANMP都可以。这里用apache+php+mysql。

yum install httpd mysql mysql-server php php-mysql php-snmp php-pdo rrdtool net-snmp net-snmp-libs net-snmp-utils

配置LAMP过程略过。

二、建立数据库

#mysql -u root -p
mysql>create database cacti default character set utf8;
mysql>create user 'cactiuser'@'localhost' identified by '123456';
mysql>grant all privileges on cacti.* to 'cactiuser'@'localhost';
mysql>flush privileges;
mysql>\q

建立了一个数据库cacti,mysql用户cactiuser,密码为123456。

三、安装cacti
1、目前最新版是cacti-0.8.7i。

cd /tmp
wget http://www.cacti.net/downloads/cacti-0.8.7i.tar.gz
tar -zxvf cacti-0.8.7i.tar.gz
mv cacti-0.8.7i /var/www/html/cacti
chown -R apache:apache /var/www/html/cacti
chmod 777 /var/www/html/cacti/rra

2、修改配置文件:

vim /var/www/html/cacti/include/config.php

修改mysql数据库、用户名、密码:

$database_type = “mysql”;
$database_default = “cacti”;
$database_hostname = “localhost”;
$database_username = “cactiuser”;
$database_password = “123456”;
$database_port = “3306”;
$database_ssl = false;

3、导入cacti.sql到cacti数据库:

mysql -u root -p cacti < /var/www/html/cacti/cacti.sql

如没有导入,直接访问cacti目录会报错:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 261900 bytes) in /var/www/html/cacti/lib/adodb/adodb.inc.php on line 833

4、浏览器访问cacti
http://监控机ip/cacti
PS:要先设置好php.ini中的date.timezone值。
进入Cacti Installation Guide后,点击Next。选择New Install,点击Next。查看路径是否都为FOUND,net-snmp版本和rrdtool版本,点击Finish。输入默认用户、密码:admin admin登陆。随后会强制修改默认密码,输入admin用户新密码,点击Save。

四、被监控机器设置
1、安装snmp相关软件包

yum install net-snmp net-snmp-utils net-snmp-libs

PS:CentOS5.x要多安装一个net-snmp-devel。

2、设置snmp v3验证账户
使用安全性更好的v3验证方式。

如开启snmpd服务先要停止:

service snmpd stop

有两个方法设置验证账户。

方法一:
执行:

mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak
vim /etc/snmp/snmpd.conf

输入:

rouser snmpuser auth

在v3中,“rouser”用于表示只读帐号类型,随后的“snmpuser”是指定的用户名,后边的“auth”指明需要验证。

继续执行:

vim /var/lib/net-snmp/snmpd.conf

在最后加入:

createUser snmpuser MD5 7uO5ja7dO1

方法二:
使用net-snmp-config --create-snmpv3-user命令。

net-snmp-config --create-snmpv3-user -ro


-ro表示只读,username为snmpuser,密码为7uO5ja7dO1,用于加密的密码为12345678。(密码都要超过8位)
另外还有一个net-snmp-create-v3-user和这个命令功能相同。这里使用方法二创建验证账户。

3、启动snmp服务

service snmpd start

4、设置snmpd开机自启动

chkconfig --level 345 snmpd on

5、检查net-snmp

snmpwalk -v3 -u snmpuser -l auth -a MD5 -A 7uO5ja7dO1 127.0.0.1 system


命令格式:
snmpwalk -v3 -u 用户名 -l auth -a MD5 -A 密码 被监控服务器IP system

五、监控机上添加主机
1、Console -> Devices,点击Devices栏右边的Add。


如图设置好相关参数,点击Create。

上部出现SNMP Information表明添加成功:

System:Linux server01 2.6.18-274.7.1.el5.028stab095.1 #1 SMP Mon Oct 24
20:49:24 MSD 2011 i686
Uptime: 137307 (0 days, 0 hours, 22 minutes)
Hostname: server01
Location: Unknown
Contact: root@localhost

2、创建监控图形
点击Create Graphs for this Host。前面选择的模板是ucd/net SNMP Host,在ucd/net - CPU Usage、ucd/net - Load Average、ucd/net - Memory Usage、Up eth0后打上勾,监控CPU使用率、系统负载、内存信息及网卡数据流量。Select a graph type可以选择In/Out Bytes。点击下面的Create,图形创建完成。

3、将图形添加到Graph Trees
Console -> Graph Trees,点击后面的Add。输入Name,点击Create。

Console -> Graph Management,在CPU Usage、Load Average、Memory Usage、Traffic - eth0口打上勾,后面的下拉框选择“Place on a Tree (server02)”,点击Go。然后到下个页面点击Continue。

3、设置Poller
Console -> Settings -> Poller,设置Poller Interval和Cron Interval为Every Minute。

4、设置crontab

crontab -e

输入:

*/1 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1

5、清空下poller cache
Console -> System Utilities -> Rebuild Poller Cache。

都设置完后,图形上数据不会马上出来,等会儿最多半天就会有。如想要数据出来快点到Settings - Poller,将Maximum Concurrent Poller Processes调大会不会有效?

参考资料:
安装相关
http://www.php-oa.com/2008/01/12/centos5-cacti.html
http://www.centos.bz/2012/01/cacti-install-tutorials/
http://linux.chinaunix.net/techdoc/net/2009/04/26/1108992.shtml

设置相关
http://blog.csdn.net/islandstar/article/details/7200392
http://storysky.blog.51cto.com/628458/244804