Cacti是一款使用PHP语言开发的性能与流量检测工具,实际上是一个web界面的管理套件,监测对象可以是linux或windows服务器,也可以是路由器,交换机等网络设备,主要基于SNMP协议来搜集cpu占用,�却媸褂茫�运行进程数,磁盘空间,网卡流量等各种数据。
Cacti配置步骤:
服务器端配置(主控端--Cacti)
a.以rhel 5.5系统光盘中的rpm包构建LAMP环境(看情况安装相应依赖包)。
httpd-2.2.3-46.el5
mysql-server-5.0.77-4.el5_4.2
mysql-5.0.77-4.el5_4.2
mysql-connector-odbc-3.51.26r1127-1.el5
perl-DBD-MySQL-3.0007-2.el5
unixODBC-2.2.11-7.1
php-5.1.6-27.el5
php-mysql-5.1.6-27.el5
php-pdo-5.1.6-27.el5
[root@server ~]#service httpd start
[root@server ~]#service mysqld start
b.安装net-snmp-utils软件包
net-snmp-utils-5.3.2.2-9.el5
net-snmp-5.3.2.2-9.el5
net-snmp-libs-5.3.2.2-9.el5
lm_sensors-2.10.7-9.el5
c.编译安装rrdtool
[root@server ~]#tar zxf /usr/src/rrdtool-1.4.5.tar.gz
[root@server ~]#cd /usr/src/rrdtool-1.4.5/
[root@server rrdtool-1.4.5]#./configure --prefix=/usr/local/
[root@server rrdtool-1.4.5]#make && make install
d.部署cacti源码包
将cacti源码包释放至web服务器的网页目录(g版本需要打补丁,i版本不需要)。
[root@server ~]#tar zxf cacti-0.8.7i.tar.gz
[root@server ~]#mv cacti-0.8.7i/ /var/www/html/cacti
添加一个用来读写监测数据的用户账号,为他设置权限。
[root@server ~]#cd /var/www/html/cacti/
[root@server cacti]#useradd runct
[root@server cacti]#chown -R root:root ./
[root@server cacti]#chown -R runct:runct rra/ log/
e.为cacti建立数据库,表结构
[root@server cacti]#mysql -u root -p
Enter password:
mysql>create database cactidb default character set utf8; //utf8便于支持中文
mysql>grant all on cactidb.* to 'cactiuser'@localhost identified by 'pwd@123';
mysql>quit
[root@server cacti]#mysql -u cactiuser -p cactidb < cacti.sql //导入预设库
f.调整Cacti的配置文件使cacti系统能够正确访问并使用数据库
cacti的配置文件:/var/www/html/cacti/include/config.php
[root@server cacti]#vim include/config.php
<?php
$database_type = "mysql"; //数据库类型
$database_default = "cactidb"; //数据库名称
$database_hostname = "localhost"; //数据库的服务器地址
$database_username = "cactiuser"; //授权用户
$database_password = "pwd@123"; //授权密码
$database_port = "3306"; //数据库服务端口
$config['url_path'] = "/";
?>
最后的行用来指定cacti源码目录相对于网站根目录的部署路径,如果cacti源码目录直接作为网站根目录,则此行内容可以省略,否则应设为实际部署路径。
为了在监测图像中正确显示中文,可以修改functions.php文件。
[root@server cacti]#vim lib/functions.php
setlocale(LC_CTYPE,"zh_CN.UTF-8"); //添加一行
g.Cacti初始化安装
(1)调整httpd配置
[root@server ~]#vim /etc/httpd/conf/httpd.conf
Listen 80
DocumentRoot "/var/www/html/cacti" //cacti源码目录作为网站根目录
<Directory "/var/www/html/cacti"> //设置目录访问权限
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
DirectoryIndex index.php index.html //第一默认首页为php
AddDefaultCharset utf-8 //默认字符集为utf-8
... ...
[root@server ~]#service httpd reload
(2)初始化cacti系统
http://server/
在初始化过程中,程序调用设置是比较重要的环节。如果已安装的支持程序(如php,rrdtool,snmpwalk等)不在默认的搜索范围中,则需要手动设置实际路径。
客户机配置(被控端--snmpd)
1.linux被控主机的设置
[root@server ~]#yum -y install net-snmp lm_sensors
[root@server ~]#vim /etc/snmpd/snmpd.conf
com2sec notConfigUser IP public
access notConfigGroup "" any noauth exact all none none
view all include .1 80
第41行:IP对应cacti服务器的地址(默认是default),表示允许其查询本机数据;public表示SNMP共同体名称,用来识别及验证。
第62行:all表示开放所有SNMP查询权限(默认是SystemView)。
第85行:去掉开头的#,以便支持各种查询访问
[root@server ~]#service snmpd start
[root@server ~]#netstat anpu | grep snmpd
udp 161
2.windows被控主机
添加“SNMP服务”,安装完成以后,通过“服务器管理器”修改“SNMP Service”服务的安全属性,指定授权地址,共同体名称,并确认此服务的状态为“已启动”。
定期采集监测数据(cacti服务器)
[root@server ~]#su - runct //切换为数据采集账号
[runct@server ~]$php /var/www/html/cacti/poller.php //执行首次数据采集
[runct@server ~]$crontab -e
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &> /dev/null
[runct@server ~]$exit
[root@server ~]#service crond start
添加Monitor,Thold插件(cacti服务器)
Monitor插件用来直观的显示各主机的运行状态,状态异常时还能够发出声音警报。
Thold插件可以对被监测的项目设置阈值,当达到阈值时及时发送告警邮件。
[root@server ~]#cd /var/www/html/cacti/plugins/
[root@server plugins]#tar zxf ~/monitor-0.8.2.tar.gz
[root@server plugins]#tar zxf ~/settings-0.5.tar.gz
[root@server plugins]#tar zxf ~/thold-0.4.3.tar.gz
[root@server plugins]#mysql -u cactiuser -p cactidb < monitor/monitor.sql
[root@server plugins]#mysql -u cactiuser -p cactidb < thold/thold.sql