cacti安装
时间:2009-04-25 来源:lx03
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教学。
安装环境:OS—Red Hat AS4.1
进入Linux桌面在添加/删除程序里更新Apache、MySQL、PHP,并测试支持php。
vi /etc/ld.so.conf
添加/usr/lib后保存退出
1、 所需软件:rrdtool-1.0.50.tar.gz
cacti-0.8.6g.tar.gz
net-snmp-5.1.4.2.tar.gz
2、 安装:
tar zxvf rrdtool-1.0.50.tar.gz
cd rrdtool-1.0.50
./configure
make
make install
一般默认安装的linux中已经安装了net-snmp软件包,但没有snmpwalk和snmpgetmingl,所以安装一个高版本的net-snmp。
tar zxvf net-snmp-5.1.4.2.tar.gz
cd net-snmp
./configure
make
make install
安装过程中它会问你默认版本、用户名、perl模块和路径之类的问题,不理,一路回车。
或者直接安装RPM包,系统只安装了net-snmp-5.1.2-11、net-snmp-libs-5.1.2-11,没有snmpwalk和snmpget命令,还需要安装net-snmp-devel-5.1.2-11和net-snmp-utils-5.1.2-11(第四张盘)。
#vi /etc/snmp/snmpd.conf
更改 com2sec notConfigUser default public
改为:com2sec notConfigUser 127.0.0.1 public
com2sec notConfigUser 192.168.80.2 public(本服务器,如果监听其他服务器则在加上服务器的ip)。
更改:access notConfigGroup "" any noauth exact systemview none none
access notConfigGroup "" any noauth exact all none none
把 #view all included .1 80
将前面的 # 注释 去掉。
启动snmp服务:service snmpd restart
tar zxvf cacti-0.8.6g.tar.gz –C /var/www/html
cd /var/www/html
mv cacti-0.8.6g cacti
启动mysql服务:service mysqld restart
mysqladmin –u root password 123
mysql –u root –p
mysql>create database cactidb;
mysql>exit
cd /var/www/html/cacti/
mysql –u root –p cactidb < cacti.sql
cd /var/www/html/cacti/include
vi config.php
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "root";
$database_password = "123";
执行php /var/www/html/cacti/poller.php > /dev/null 2>&1
如何成功的话在/var/www/html/cacti/rra目录里产生.rrd的文件,看/var/log/messages,如何有类似这样的日志:
Mar 3 11:58:05 localhost kernel: audit(1236052685.566:0): avc: denied { execute } for pid=6655 comm=sh name=rrdtool dev=dm-0 ino=366460 scontext=root:system_r:httpd_sys_script_t tcontext=root:object_r:usr_t tclass=file
Mar 3 11:58:05 localhost kernel: audit(1236052685.571:0): avc: denied { execute } for pid=6655 comm=sh name=rrdtool dev=dm-0 ino=366460 scontext=root:system_r:httpd_sys_script_t tcontext=root:object_r:usr_t tclass=file
则关闭系统的selinux在重启,就ok了。
为了采集数据,做一个计划任务:
crontab –e
*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
客户端使用IE连接cacit的机器:http://ServerIP/cacti
模板乱码解决方法:
在cacti.sql中第一行加入SET NAMES 'gb2312'
如果上面红线处有snmp error,则使用:
snmpwalk -c public -v1 127.0.0.1 .1.3.6.1.2.1.25.2.3.1
snmpwalk -c public -v1 192.168.80.2 .1.3.6.1.2.1.25.2.3.1
改成 snmpwalk -c public -v2 192.168.80.2 .1.3.6.1.2.1.25.2.3.1 试试?
snmpget -v 2c -c public 192.168.80.2 .1.3.6.1.4.1.2021.11.52.0
snmpget -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.2021.11.52.0