免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 20561 | 回复: 32
打印 上一主题 下一主题

用cacti代替mrtg来监控交换机 [复制链接]

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-25 08:50 |只看该作者 |倒序浏览
看最近问cacti的人多了,把以前安装的记录整理一下发过来,希望有所帮助。

1:准备过程
apache、mysql安装的帖子太多了,不再重复。
注意php要装/usr/ports/lang/php4,否则是不行的,/usr/ports/lang/php4-extensions/和ZendOptimizer也装上,这样就够了。
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 <me@somewhere.org>

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;

数据库准备工作

# 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";
核对以上几项是否正确

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]<path_rra>;/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的时间变长。
##############################################################################################

论坛徽章:
1
寅虎
日期:2013-09-29 23:15:15
2 [报告]
发表于 2006-04-25 08:59 |只看该作者
呵呵,没用过cacti的说,学习ing^_^

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
3 [报告]
发表于 2006-04-25 09:09 |只看该作者
挺好用的,比mrtg好,前两天好像哪位兄弟在问,就大概整理了一下

论坛徽章:
0
4 [报告]
发表于 2006-04-25 09:41 |只看该作者
谢谢啦!

顺便给安装mod_php4的朋友说一下,不用重装php4,安装一下php4-cli 就可以了

php4=mod_php4+php4_cli

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
5 [报告]
发表于 2006-04-25 09:50 |只看该作者
原帖由 suek 于 2006-4-25 09:41 发表
谢谢啦!

顺便给安装mod_php4的朋友说一下,不用重装php4,安装一下php4-cli 就可以了

php4=mod_php4+php4_cli

又长点见识,呵呵

论坛徽章:
0
6 [报告]
发表于 2006-04-25 10:12 |只看该作者

回复 1楼 剑心通明 的帖子

有时间试试,谢谢楼主

论坛徽章:
0
7 [报告]
发表于 2006-04-25 14:58 |只看该作者
原帖由 剑心通明 于 2006-4-25 09:50 发表

又长点见识,呵呵


呵呵,我当时也是卸载了mod_php4,再安装php4。

安装过程中屏幕停顿一下,就看到了这个提示。

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
8 [报告]
发表于 2006-04-25 15:07 |只看该作者
原帖由 suek 于 2006-4-25 14:58 发表


呵呵,我当时也是卸载了mod_php4,再安装php4。

安装过程中屏幕停顿一下,就看到了这个提示。

没注意

论坛徽章:
0
9 [报告]
发表于 2006-04-25 15:56 |只看该作者
原帖由 剑心通明 于 2006-4-25 15:07 发表

没注意

这儿也可以看出来
  1. #pkg_info
  2. php4-4.4.2_1        PHP Scripting Language (Apache Module and CLI)
复制代码

论坛徽章:
0
10 [报告]
发表于 2006-04-26 16:43 |只看该作者
对了,是我问的,看了这个帖才知道是php的问题,不过还没有测试.谢谢斑竹!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP