http://bbs.linuxtone.org/thread-1296-1-1.html
http://blog.zhiyu.info/linux/linux_server/cacti-install/154.html
http://bbs.chinaunix.net/thread-1774724-1-2.html 文档详细概述了cacti的部署、常用插件安装、阀值设置、报警设置、用户权限设置、备份还原,文档侧重于IDC系统运维,因为笔者当初工作在IDC系统运维一线
1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。关于RRDTool的知识请参阅RRDTool教学。
似乎有中文界面cacti-0.8.7a-cn-utf8.tar.gz
cacti架构.jpg
===================================1 监控端
---------------------rrdtool
http://oss.oetiker.ch/rrdtool/pub/
yum install cairo-devel libxml2-devel pango pango-devel
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz
./configure --prefix=/usr/local/rrdtool
make
make install
ln -s /usr/local/rrdtool/bin/* /usr/local/bin
-----------------net-snmp
www.net-snmp.org
wget http://sourceforge.net/projects/net-snmp/files/net-snmp/5.6.1/net-snmp-5.6.1.tar.gz/download
./configure --prefix=/usr/local/net-snmp
make
make install
cp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf
ln -s /usr/local/net-snmp/bin/* /usr/local/bin/
启动
/usr/local/net-snmp/sbin/snmpd -c /usr/local/net-snmp/share/snmp/snmpd.conf
加入开机启动
echo "/usr/local/net-snmp/sbin/snmpd -c /usr/local/net-snmp/share/snmp/snmpd.conf" >> /etc/rc.local
---------------cacti
http://www.cacti.net/
wget http://www.cacti.net/downloads/cacti-0.8.7g.tar.gz
tar zxvf cacti-0.8.7g.tar.gz
mkdir /data0/htdocs/cacti
mv cacti-0.8.7g/* /data0/htdocs/cacti/
/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock
admin@juShan86sN
create database cacti;
insert into mysql.user (host,user,password) values ('localhost','cacti',password('cacti123'));
flush privileges;
grant all on cacti.* to cacti@'localhost' identified by 'cacti123';
cd /data0/htdocs/cacti
/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock cacti<cacti.sql
vim include/config.php
http://192.168.93.129/cacti/install/index.php
admin
admin
----------为监控对象生成文件
/usr/local/webserver/php/bin/php /data0/htdocs/cacti/poller.php
cd rra/
localhost_load_1min_5.rrd localhost_mem_swap_4.rrd localhost_users_6.rrd
localhost_mem_buffers_3.rrd localhost_proc_7.rrd
rra目录用来存放cacti为监控对象生成的监控对象文件
设置cacti数据采集轮训时间
crontab -e
*/5 * * * * env LANG=C /usr/local/webserver/php/bin/php /data0/htdocs/cacti/poller.php &>/dev/null
===================================2 客户端
http://apps.hi.baidu.com/share/detail/14994968
http://bbs.deepin.org/thread-1107676-1-1.html
wget http://sourceforge.net/projects/net-snmp/files/net-snmp/5.6.1/net-snmp-5.6.1.tar.gz/download
######yum install cairo-devel libxml2-devel pango pango-devel
cd net-snmp-5.6.1
./configure --prefix=/usr/local/net-snmp
make
make install
cp python/netsnmp/tests/snmpd.conf /usr/local/net-snmp/share/snmp/snmpd.conf
ln -s /usr/local/net-snmp/bin/* /usr/local/bin/
启动
/usr/local/net-snmp/sbin/snmpd -c /usr/local/net-snmp/share/snmp/snmpd.conf
加入开机启动
echo "/usr/local/net-snmp/sbin/snmpd -c /usr/local/net-snmp/share/snmp/snmpd.conf" >> /etc/rc.local
net-snmp它是服务端与被监控端连接线
修改客户端
vim /usr/local/net-snmp/share/snmp/snmpd.conf
#注 127.0.0.1 是安装cacti服务机IP,指定只有这IP才能获取本机的SNMP信息
将"default"改为你想哪台机器可以看到你的snmp信息,如192.168.1.210。
更改 com2sec notConfigUser default public
改为 com2sec notConfigUser 192.168.93.129 public
#提高安全性
更改 access notConfigGroup "" any noauth exact systemview none none
改为 access notConfigGroup "" any noauth exact all none none
view all included .1 80
重启生效/usr/local/net-snmp/sbin/snmpd restart
lsof -i:161
ps -ef|grep snmp
snmpwalk -c public -v 2c 192.168.93.131
snmpwalk -v 1 192.168.93.131 -c public system
在服务器端测试:
snmpwalk -v 2c 127.0.0.1 -c public
snmpwalk -v 2c 192.168.93.129 -c public
snmpwalk -v 2c 192.168.93.131 -c public
snmpwalk -v 2c 127.0.0.1 -c public .1.3.6.1.4.1.2021.10.1.3
snmpwalk -v 2c 192.168.93.129 -c public .1.3.6.1.4.1.2021.10.1.3
snmpwalk -v 2c 192.168.93.13 -c public .1.3.6.1.4.1.2021.10.1.3
如果有返回信息就说明监控程序正常,time out 提示就检查你的net-snmp配置
snmpwalk -v 127.0.0.1 -c public
snmpwalk -v 192.168.93.129 -c public
snmpwalk -v 192.168.93.131 -c public
===================================3 插件安装
见教程 Cacti实战指南_陆文举--二、Cacti实战指南-插件安装.pdf
匹配cacti-0.8.7g.tar.gz版本
wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
tar zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
cd cacti-plugin-arch/
cp cacti-plugin-0.8.7g-PA-v2.8.diff /data0/htdocs/cacti/
cp pa.sql /data0/htdocs/cacti/
cd /data0/htdocs/cacti/
使用patch生成新文件(-p1注意是数字1)
patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock cacti<pa.sql
admin@juShan86sN
vim include/global.php
$url_path = "/cacti/";
console---user management --admin
realm permissions 勾选 plugin managment ,save
完成后,我们就可以在左侧console---configuration 选项卡下多了一个plugin management选项卡
-----settings 插件
http://cactiusers.org/downloads/monitor.zip
mv settings /data0/htdocs/cacti/plugins/
点击console--plugin management 多了一个settings插件,然后点击蓝色箭头启用即可。
启用后箭头为红色
console--settings 多了一个mail/DNS选项卡
在cacti配置文件中添加settings插件(这步为可选配置,因为添加完settings在cacti主控台上也不会显示settings选项)
在$plugins = array();后增加
$plugins[] = 'settings';
其它插件见教程 Cacti实战指南_陆文举--二、Cacti实战指南-插件安装.pdf
===================================4 Cacti的使用
http://bbs.linuxtone.org/thread-1292-1-1.html