zhengdl126 发表于 2013-1-15 02:16:54

Linux下构建Cacti流量与性能监测系统

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

http://dl.iteye.com/upload/attachment/472403/86d6e891-3d0f-3eb1-bfab-e6ecbc78d824.jpg
 cacti工作流程

http://dl.iteye.com/upload/attachment/472401/62dce5e9-8193-363a-b105-eb616bc4da48.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
 
 
 
 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
 
######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
 
http://cactiusers.org/
匹配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
 
 
 
 
 
 
 
 
 
 
 
 
页: [1]
查看完整版本: Linux下构建Cacti流量与性能监测系统