中国青基会
RSS
热门关键字:  None  linux+moodle安装  mac  rhel5  199
当前位置 : Nixsky>BSD>FreeBSD>列表

用cacti代替mrtg来监控交换机

来源:剑心通明的blog 作者: 时间:2007-12-15 点击:

  1:准备过程

  apache、mysql安装的帖子太多了,不再重复。

  注意php要装/usr/ports/lang/php4,否则是不行的,/usr/ports/lang/php4-extensions/和ZendOptimizer也装上,这样就够了。

  现在安装的话就用php5吧。

  2:安装cacti

  安装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.confDB_Host localhostDB_Database cactidbDB_User cactiDB_Pass 123456DB_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

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

  $database_type = "mysql";

  $database_default = "cactidb";

  $database_hostname = "localhost";

  $database_username = "cacti";

  $database_password = "123456";

  核对以上几项是否正确

  crontab -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 mrtg

  还有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 当然,你还可以从www.cacti.net上找到新的模板或添加自己的模板。

  ##################################################

  ##################################################

  #

  #我以前用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 runtime of 296 seconds exceeded. Exiting,什么意思?

  #

  #############################################

  应该是你的监测点设置太多,导致cacti通过snmpget取完所有数据的时间超过300秒。 Cacti的作者一早就考虑到这问题,所以在cacti中有两种解决方法:

  1、将POLLER更改为cactid。

  默认的POLLER是cmd.php,而cactid是使用C写的程序,效率会比cmd.php高几倍!

  注意,虽然POLLER的选项中有cactid的选择,但cactid默认并没有安装,所以即使你选择了它也不会生效的。

  你可以从这里(http://www.cacti.net/cactid_download.php)下载cactid的源码或rpm(bin)文件进行安装。然后在PATH中指定cactid的路径即可。

  2、在POLLER的设置中加大cmd.php的进程数,即同时运行多个cmd.php进行数据的采集。但这样的话会加重你的系统负载。

  如果你的机器性能太差,建议还是改用cactid为好。

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

  #################################################

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册