Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18925511
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: BSD

2008-03-23 20:18:30

1:准备过程
、mysql安装的帖子太多了,不再重复。
注意php要装/usr/ports/lang/php4,否则是不行的,/usr/ports/lang/php4-extensions/和ZendOptimizer也装上,这样就够了。
现在的话就用php5吧。

2:安装

安装rrdtool

cd /usr/ports/net/rrdtool
make install clean;

安装net-snmp

cd /usr/ports/net-mgmt/net-snmp
make install clean;

ee /etc/rc.conf

snmpd_enable="YES"
snmpd_flags="-a -p /var/run/snmpd.pid"
snmptrapd_enable="YES"
snmptrapd_flags="-a -p /var/run/snmptrapd.pid"


mkdir /usr/local/etc/snmp
ee /usr/local/etc/snmp/snmpd.conf

##############################
syslocation  somewhere

syscontact  Me <
>

sysservices 77

rocommunity jxtm

load 12 12 12
###############################


7、安装cacti
注意:0.8.6f以下的版本有SQL注入漏洞

cd /usr/ports/net/cacti
make install FORCE_PKG_REGISTER=yes clean ;
因为mysql-client已经装过了,所以需要加上FORCE_PKG_REGISTER=yes


cd /usr/ports/net/cactid
make install clean;

ee /usr/local/etc/cactid.conf

DB_Host        localhost
DB_Database    cactidb
DB_User        cacti
DB_Pass        123456
DB_Port        3306


数据库准备工作

# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 130 to server version: 4.1.15-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database cactidb;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on cactidb.* to root;
Query OK, 0 rows affected (0.01 sec)

mysql> grant all on cactidb.* to root@localhost;
Query OK, 0 rows affected (0.01 sec)

mysql> grant all on cactidb.* to cacti;
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on cactidb.* to cacti@localhost;
Query OK, 0 rows affected (0.01 sec)

mysql> set password for cacti@localhost=password('123456');
Query OK, 0 rows affected (0.00 sec)

mysql> exit

导入数据库
cp -R /usr/local/share/cacti /usr/www/cacti
我的apache主目录用了/usr/www,你可以根据实际更换
cd /usr/www/cacti

chown -R cacti:cacti rra/
chown -R cacti:cacti log/

cd scripts
chown cacti:cacti *

mysql -u root -p123456 cactidb < cacti.sql

ee /usr/www/cacti/include/db-settings.php

$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "123456";
核对以上几项是否正确

-u cacti -e
为cactiuser用户加入
*/5 * * * * /usr/local/bin/php /usr/www/cacti/poller.php
###############################################


页面设置:

在浏览器上输入:
http://******/cacti
进入cacti的初始设置页面:
1:选择New Install
2:
RRDTool Binary Path: The path to the rrdtool binary.
/usr/local/bin/rrdtool
PHP Binary Path: The path to your PHP binary file (may require a php recompile to get this file).
/usr/local/bin/php
snmpwalk Binary Path: The path to your snmpwalk binary.
/usr/local/bin/snmpwalk
snmpget Binary Path: The path to your snmpget binary.
/usr/local/bin/snmpget
Cacti Log File Path: The path to your Cacti log file.
/usr/www/cacti/log/cacti.log
SNMP Utility Version: The type of SNMP you have installed. Required if you are using SNMP v2c or don't have embedded SNMP support in PHP.
5.X
RRDTool Utility Version: The version of RRDTool that you have installed.
1.2.X

输入原始的用户和密码:admin/admin
更改admin用户的密码

安装完成!

后续设置:

RRDTool Default Font Path
The path to the rrdtool default true type font for version 1.2 and above.

/usr/local/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf
##这个要写全,否则会发现出来的图有数据,但是图例说明不显示
Cactid Poller File Path
The path to Cactid binary.
/usr/local/bin/cactid

3:交换机
我们的cisco6509比较老了,相关命令都差不多
set snmp rmon enable
set snmp trap enable
set snmp community read-only
还有cisco3524的:
conf t
snmp-server community sl ro
snmp-server host *.*.*.* trap sl
这个*.*.*.*是你做监控用的机器地址
snmp-server enable traps
exi
wr
这是华为交换机的方法,这是台quidway3952p
sys
snmp-agent community read xqssl2l
snmp-agent trap enable
snmp-agent sys-info version all
snmp-agent target-host trap address udp-domain *.*.*.* udp-port 161 params securityname xqssl2l v1
quit
save
我这测试的比较简单,用的snmp v1,相关设置可参考各交换机的手册。交换机上设置了以后在cacti里面的操作就很简单了,只需要把相应的community字段填对就行。

4:FAQ:

##################################################
#
#可以取到本机(linux)的数据,但却不能取到远程主机的数据?
#
###################################################
Cacti有很多模板,有的是用SNMP进行数据采集,有的是用shell脚本进行采集。如果没有特别的原因建议都使用SNMP的。
Associated Graph Templates前面带"ucd/net"的就是能使用ucd-snmp和net-snmp的模板。如:ucd/net - CPU Usage
Associated Data Queries前面带SNMP的就是能使用snmp的。如:SNMP - Interface Statistics      当然,你还可以从
上找到新的模板或添加自己的模板。
##################################################


##################################################
#
#我以前用MRTG进行流量的监测,是否可以将MRTG中的数据导入到Cacti中呢?
#
###############################################
用MRTG 都有一段时间了,如果想要转换为RRDTool和Cacti,但又不想丢失之前的数据,怎么办呢?由于MRTG和RRDTool的作者都是同一个人,所以 其实数据转换是非常简单的事情。不过,如果要将MRTG的数据转为Cacti使用,还是需要几个步骤的。(转换前需要先安装RRDTool)

1、备份MRTG的数据
因为要保证数据的连续性,所以需要复制一份mrtg的数据进行更改。

1.1、复制整个mrtg的work dir


CODE:[Copy to clipboard]cp -rf /path/to/your/workdir /path/to/your/workdir2
1.2、复制和更改mrtg.conf


CODE:[Copy to clipboard]cp /path/to/your/mrtg.cfg /path/to/your/mrtg2.cfg
vi /path/to/your/mrtg2.cfg
将Work Dir更改为/path/to/your/wordir2

1.3、添加crontab给mrtg2
# crontab -e
添加


CODE:[Copy to clipboard]*/5 * * * * (/bin/mrtg /path/to/your/mrtg2.cfg --logging=/path/to/your/mrtg2.log)
保存。

这样就让两份mrtg脚本一起运行,保证了数据的连续性。


2、将数据由mrtg格式更改为rrd格式

2.1、更改配置文件


CODE:[Copy to clipboard]vi /path/to/your/mrtg2.cfg
添加:


CODE:[Copy to clipboard]LogFormat: rrdtool
PathAdd: /path/to/your//rrdtool/bin/
LibAdd: /path/to/your/rrdtool/lib/perl/
PathAdd和LibAdd是rrdtool的路径。

2.2、更改数据格式
手工运行


CODE:[Copy to clipboard]/bin/mrtg /path/to/your/mrtg2.cfg
然后
cd /path/to/your/mrtgdir2,
查看数据是否由log的后缀名变为rrd的后缀名,如果变了即转换成功了!


3、导入到cacti中
由于Cacti中每一台主机的每一张图的数据都保存在一个文件中,需要一个一个文件进行导入。
以某台主机(10.10.10.10)的ETH0网卡为例:

3.1、找出Cacti的数据名称
将10.10.10.10_1.rrd拷到/path/to/cacti/rra文件夹中(也可以先备份rra文件夹)。

在cacti中的Data Sources-》10.10.10.10-》Supplemental Data Template Data-》Data Source Path右边的文本框中找到其对应的RRD文件的路径和文件名,比如


CODE:[Copy to clipboard];/10.10.10.10_traffic_in_45.rrd。
3.2、更改数据的名称和DS名
返回Cacti主机,进行如下操作:


CODE:[Copy to clipboard]cp 10.10.10.10_1.rrd 10.10.10.10_traffic_in_45.rrd
/path/to/rrdtool/bin/rrdtool tune -r ds0:traffic_in   
/path/to/rrdtool/bin/rrdtool tune -r ds0:traffic_out  
chown cactiuser:cacti 10.10.10.10_traffic_in_45.rrd        
解释:MRTG与Cacti定义的DS名称不同,所以需要更改其DS名称;
      如果有很多个数据,可以用脚本进行批量更改;
      chown可以在全部完成后用“*”匹配,但为了保持数据完整性建议还是5分钟内chown一次

3.3、结束
点击cacti的Graph Management里面10.10.10.10监测点的右上角“Turn on Graph Debug Mode”是否有错误。

如果图形能显示即转换成功!


#################################################
#
#为什么我的流量达到100M以上图像就不准呢?
#
#################################################
这与snmp的版本有关,snmp1的数据是32位而snmp2c以上是64位。
首先要确定你的 是snmp2c或以上(现在的网络设备一般都支持)。然后点击Cacti的页面:"Console ->; Create New Graphs ->;Data Query"。你在下面看到"Select a graph type:"的下拉菜单(默认是"In/Out bits"),要取64bits的数据所以将其改为
"In/Out bits(64-bit Counters)",然后选择你要监测的网卡即可。
另外,该监测点的"Maximum Value"必须设置为100M以上。       如果是Linux主机要监测100M以上的流量(一般不会发生),需要带"--enable-mfd-rewrites"参数重新编译最新的net-snmp。
##############################################


#########################################
#
#09/02/2005 02:59:58 PM - POLLER: Poller[0] Maximum of 296 seconds exceeded. Exiting,什么意思?
#
#############################################
应该是你的监测点设置太多,导致cacti通过snmpget取完所有数据的时间超过300秒。        Cacti的作者一早就考虑到这问题,所以在cacti中有两种解决方法:
1、将POLLER更改为cactid。
默认的POLLER是cmd.php,而cactid是使用C写的程序,效率会比cmd.php高几倍!
注意,虽然POLLER的选项中有cactid的选择,但cactid默认并没有安装,所以即使你选择了它也不会生效的。
你可以从这里(
)下载cactid的源码或rpm(bin)文件进行安装。然后在PATH中指定cactid的路径即可。

2、在POLLER的设置中加大cmd.php的进程数,即同时运行多个cmd.php进行数据的采集。但这样的话会加重你的系统负载。
如果你的机器性能太差,建议还是改用cactid为好。

PS:当磁盘空间满的时候会出现这个问题,原因是磁盘空间慢导致snmpget的时间变长。
#################################################

阅读(932) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~