环境:Centos 5.4 x86_64
所需软件:
http
Php
Php-mysql
Php-snmp
Mysql
Perl-DBD-MySQL
Php-pdo
rrdtool
Net-snmp
Net-snmp-libs
Net-snmp-utils
#下载相关软件
cd /usr/local/src/
wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz
二、环境介绍
主监控机是Centos 5.4 x86_64
主监控机IP=10.0.0.52
三、安装配置
(1)在主监控机上安装apache+php+gd的web环境,推荐编译安装,不再赘述,本处方便起见用yum装了
yum install php php-mysql php-snmp mysql mysql-server net-snmp net-snmp-libs net-snmp-utils php-pdo perl-DBD-MySQL
(2)在主监控机上安装rrdtool,rrdtool依赖的包过多,所以选择增加源,然后用yum安装
#增加源
vi /etc/yum.repos.d/CentOS-Base.repo
#在文件末尾增加以下部分
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
enabled=1
yum install rrdtool
(3)配置snmp
vi /etc/snmp/snmp.conf
#将下边这行中的default
com2secnotConfigUser default public
#改为127.0.0.1
com2secnotConfigUser 127.0.0.1 public
#将下边这行中的systemview
access notConfigGroup "" any noauth exact systemview none none
#改为all
access notConfigGroup "" any noauth exact all none none
#将下边这行的注释“#”号去掉
#view all included .1 80
#重启snmpd服务
service snmpd restart
(4)安装cacti
#把解压后的包移动到你的相应的web目录
tar xvf cacti-0.8.7e.tar.gz
mv cacti-0.8.7e /var/www/html/cacti
(5)在数据库中建库、授权、导入数据库结构
#注意导入cacti.sql时该文件的路径
mysql -p
mysql> create database cacti;
mysql> grant all privileges on cacti.* to cacti@localhost identified by 'cacti' with grant option;
mysql> grant all privileges on cacti.* to cacti@127.0.0.1 identified by 'cacti' with grant option;
mysql> use cacti;
mysql> source /var/www/html/cacti/cacti.sql;
mysql -p
mysql> grant all privileges on cacti.* to cacti@localhost identified by 'cacti' with grant option;
mysql> grant all privileges on cacti.* to cacti@127.0.0.1 identified by 'cacti' with grant option;
mysql> use cacti;
mysql> source /var/www/html/cacti/cacti.sql;
#配置cacti以连接数据库
vi /var/www/html/cacti/include/config.php
vi /var/www/html/cacti/include/config.php
(6)浏览器下配置
#用浏览器打开 http://10.0.0.52/cacti ,会显示 cacti的安装指南,设置好就不会再出现了。
#点击 “Next”
#选择“New Install”,点击“Next”
#指定 rrdtool、 php、 snmp 工具的 Binary 文件路径,确保所有的路径都是显示“ FOUND”,没有 “NOT FOUND”的,点击 Finish 完成安装。
#Cacti 默认的用户名与密码是 admin,输入用户名与密码,点击 login
#为了安全的原因,第一次登录成功后,cacti 会强制要求你更改一个新的 password ,输入新密码并确认密码,点击 save ,进入 cacti 控制台界面:
#点击 graphs ,查看cacti 监控本机的图表:
(7)增加入一个计划任务,使得 cacti 每五分钟生成一个监控图表。
//添加cacti用户
# useradd cacti
# passwd cacti
//将rra目录的所有权给cacti用户
# chown –R cacti /usr/loca/apache/htdocs/cacti/rra
//修改cacti目录所属组
# chgrp –R cacti/usr/loca/apache/htdocs/cacti
//为cacti用户添加cron任务
# su – cacti
# crontab –e
*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null2>&1
#确保 /var/www/html/cacti/rra/目录存在
#如果暂时未看到图表,可以手工执行,生成图表
#php /var/www/html/cacti/poller.php > /dev/null2>&1
(8)使用 Cacti 监控 Linux 主机
#在被监控的linux主机上安装net-snmp
yum install net-snmp
vi /etc/snmp/snmpd.conf
#更改以下部分
#将下边这行中的default
com2secnotConfigUser default public
#改为10.0.0.52(cacti)服务器的地址)
com2secnotConfigUser 10.0.0.52 public
#将下边这行中的systemview
access notConfigGroup "" any noauth exact systemview none none
#改为all
access notConfigGroup "" any noauth exact all none none
#将下边这行的注释“#”号去掉
#view all included .1 80
service snmpd restart
(9)如果出现问题请注意一下snmp协议的版本,都用version 1是一种解决方法
如果都用version 1,需要把所有监控机和被监控机的snmpd.conf改一下
#vi /etc/snmp/snmpd.conf
#将下边这行
view systemview included .1.3.6.1.2.1.1
#改为
view systemview included .1.3.6.1.2.1
Cacti的插件安装及简单使用
cacti本身能做的东西就是统计流量并以很漂亮的界面显示出来。让人欣喜的是,cacti也可以安装插件,通过插件,cacti的功能被进一步强大:可以监控服务器状态;发送邮件通知;短信通知等;还可以msn通知哟~
cd /usr/share/cacti
wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7e-PA-v2.6.zip
unzip cacti-plugin-0.8.7e-PA-v2.6.zip
mysql -uroot cacti <cacti-plugin-arch/pa.sql
rsync -avz ../cacti-plugin-arch/files-0.8.7e/* .
vi include/global.php
$config['url_path'] = '/cacti/';
![](https://i-blog.csdnimg.cn/blog_migrate/51d2b7a0c95ed273157325d3fcf6445c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/21050e6e40ebc3530c9a656cd9af9c75.png)
cd plugins
wget http://cactiusers.org/downloads/settings.tar.gz
wget http://cactiusers.org/downloads/monitor.tar.gz
wget http://cactiusers.org/downloads/thold.tar.gz
for i in *.gz;do tar zxf $i;done
vi ../include/global.php
$plugins[] = 'settings';
$plugins[] = 'monitor';
$plugins[] = 'thold';
![](https://i-blog.csdnimg.cn/blog_migrate/67d5701936aef776d8c73eb478f6aac4.png)
mysql -uroot cacti <monitor/monitor.sql
mysql -uroot cacti <thold/thold.sql
![](https://i-blog.csdnimg.cn/blog_migrate/a23a8678f3ee3f0a12267aa4673bf260.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a167f4edf6bea154599fabc14c0340aa.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f3bbffe1357724338dc59f542ae814a5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8e8edea68c58f0a08be4732ae5edf4cb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0b4384b27dc3b813536fbe70bf66087d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6086cc5de8720da278c4d3475af81014.png)
![](https://i-blog.csdnimg.cn/blog_migrate/00a9d50d928ab46efbe077b23b89c314.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d2ea69e503bddcf6b47b721dfeea5f24.png)
![](https://i-blog.csdnimg.cn/blog_migrate/933c4558c15c05cb6121014511f3dc31.png)
只要你的监控系统安装了sendmail就 能上网就可以发邮件的了。
顺便简单说一下sendmail的安装吧:
# yum install sendmail* m4 procmail sendmail-cf dovecot -y
# vim /etc/mail/sendmail.mc
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
修改为
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
# m4 sendmail.mc > sendmail.cf
测试:echo "hello"|mail -s "test1"
zqhjc@yeah.net
好了,当你停掉服务器,邮件就会发到你邮箱了。
实现其他参数超过一定数值报警:
例子:监控“/”如果大于5G就报警
点左边菜单Management---Thresholds 然以按 add 出现一个选择框
host 选择你要监控的机器
graph 选择XXX-spase (这个我刚开始选的是HIM-SPASE后面就找不到了)
data source : hdd_used
按create
点击放大
High Threshold 输入5000000 (k为单位)
后面写上email
如图(点击放大)
保存退出。再次点Management---Thresholds
![](https://i-blog.csdnimg.cn/blog_migrate/8dc103b0c4d75290beae238f30d06aec.jpeg)