Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1761755
  • 博文数量: 234
  • 博客积分: 4966
  • 博客等级: 上校
  • 技术积分: 3322
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-13 01:03
文章分类

全部博文(234)

文章存档

2017年(2)

2016年(1)

2015年(8)

2014年(11)

2013年(44)

2012年(27)

2011年(22)

2010年(30)

2009年(37)

2008年(6)

2007年(45)

2006年(1)

分类: LINUX

2009-07-18 19:02:29

一、全局:

1、什么是CACTI?它有什么用?
        cacti是一套PHP程序,它运用snmpget采集数据,使用rrdtool绘图。使用Cacti能统计网络设备的

流量、CPU、系统负载等参数,也可以自定义监测的指标。

2、cacti的官方网站在哪里?
       

3、在哪里下载?
        /download_cacti.php

4、怎么安装它呢?
        官方的安装文档:/documentation.php
        我写的安装文档:

5、使用cacti需要什么知识?

        需要具有一定的使用net-snmp和rrdtool的知识。
        如果要自定义监测的指标还需要一定的shell脚本或xml语言能力。如果你想帮助cacti的开发,则

需要通晓php脚本。

6、找不到snmpwalk和snmpget命令?
        请安装新的net-snmp包或打net-snmp-utils 包。

二、使用:

1、为什么图像不能显示?
先确定你的IP地址、snmp comunite、snmp version等信息配置没有错误。

如果是在linux下安装cacti的话,可以按以下步骤检测:
1.1、cacti的data sources和Graph Management均有debug。看是否有错误,比如rrd文件找不到等。

1.2、data sources里看rrd文件的名称,然后到/cacti/rra目录中看是否有该文件存在。

1.3、如果有rrd文件存在,则可以使用

CODE:
rrdtool fetch yourRRDfile.rrd AVERAGE

命令,看该文件的采集的数据,如果都是“nan”,那就是没有取到数据。 

1.4、有可能是snmpget、snmpwalk和rrdtool的路径错误。
        
1.5、排除错误后,需要重新建立该监测点(graph)。

提示:每一个图像的文件均会保存为rra目录里的一个rrd为后缀的文件(可以在“Data Sources”中看到)

。“Data Sources”和“Graph Management”中均可以进行debug,可以从debug中得出错误信息。
        

2、为什么rra目录下什么都没有?
2.1、请查看该目录的权限。该目录的权限应为cactiuser可以读写。

2.2、如果目录的权限没有问题,那么可能是snmp的设置有问题,请手工测试一下:

CODE:
snmpwalk -v 2c -c public yourIP if

如果有数据返回,则snmp的数据没有问题。如果出现“Timeout: No Response from ...”之类的

错误信息则是snmp设置的问题。

2.3、也可能是snmpwalk、snmpget和rrdtool的路径没有设置好在Settings-》Paths中检查设置是否正确。

修改后请重建该监测点!否则不生效。


3、为什么能取到流量的数据但取不到CPU和内存的数据?
        应该是snmp权限的设置问题。可以用snmpwalk手工测试一下。
        如果要取CPU等数据,需要修改net-snmp的配置。如何修改请看:
        的4楼。


4、可以取到本机(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 

        当然,你还可以从上找到新的模板或添加自己的模板。


5、我以前用MRTG进行流量的监测,是否可以将MRTG中的数据导入到Cacti中呢?
        当然可以!因为我就是这样做的。
        请看:


6、为什么我的流量达到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。


7、09/02/2005 02:59:58 PM - POLLER: Poller[0] Maximum runtime of 296 seconds exceeded. Exiting,什么意思?
        应该是你的监测点设置太多,导致cacti通过snmpget取完所有数据的时间超过300秒。
        Cacti的作者一早就考虑到这问题,所以在cacti中有两种解决方法:

7.1、将POLLER更改为cactid。
默认的POLLER是cmd.php,而cactid是使用C写的程序,效率会比cmd.php高几倍!
注意,虽然POLLER的选项中有cactid的选择,但cactid默认并没有安装,所以即使你选择了它也不会生效的。
你可以从这里(/cactid_download.php)下载cactid的源码或rpm(bin)文件进行安装。然后在PATH中指定cactid的路径即可。

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

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


8、怎么备份Cacti和它的数据呀?

        只需要备份rra目录和数据库就可以了。你喜欢也可以将log目录一起备份。
        如果你自己添加了一些插件的话记得也拷过去。


9、如何将数据合并?如何自定义脚本?
        请看:


10、使用monitor、threshld插件
        请看:
的四楼。


11、为什么月、年的流量图下面的字母乱码?
回答by萧筱筱:

是由于rrdtool不支持中文导致的。我的情况更为严重,当图中出现中文时,rrdtool graph的时候索性就segment fault掉了。

因为中文环境下的日期显示会缺省的把星期和月显示成中文,以致于你的图上由于无法显示中文而出现乱码。

解决的办法有2种思路,一种就是让rrdtool显示英文的日期,一种就是让rrdtool支持中文。两种方法都牵涉到修改rrdtool的源代码。我采取的是第一种思路,让rrdtool不要去读中文环境的语言环境变量,强制让它用英文。

我是在编译rrdtool1.2时把src/rrd_graph.c文件中的这段内容改掉:

setlocale(LC_TIME,""); 
改成
setlocale(LC_ALL,"en_US.ISO-8859-1"); 

然后再编译。这样就好了。如果还不行,你就把你的环境变量里的语言环境都改成英文:
export LC_ALL=en_US
export LANG=en_US
export LANGUAGE=en_US
export LC_CTYPE=en_US
export LC_TIME=en_US

或者,你就索性根据abel老大的方法让rrdtool支持中文吧。
... p;extra=&page=1


12、cacti是否支持中文?
cacti默认在某些页面不能正常显示中文,rrdtool默认也不可以显示中文。
如果真的需要使用中文,请参考下面连接。



13、新建的device的Data Query里面的状态总是“ Success [0 Items, 0 Rows]”?

请先确认你的snmpd.conf中的权限设置,是否允许cacti取这些OID的数据。可以使用snmpwalk命令来进行测试,比如:

CODE:
snmpwalk -c community -v 2c hostIP if

如果你的snmpd.conf设置没有问题,那可能是下面这种情况:
旧版本的snmpwalk(比如redhat默认安装的5.0.6)缺少一些参数,比如-O中的"U"参数.(可以用snmpwalk --help来查看是否有该参数)。
而cacti-0.86g或以上版本需要这些参数,解决办法是安装一个新的net-snmp包(如:net-snmp5.2.1),从而得到一个新snmpwalk的版本。

14、

Last Day这个页面的图片都显示不出来,但点击链接进入之后都可以看到图。



But If i click on it, they works well 


Graph Debug says me OK!图片Debug都说是好的。

 

     [解决]Settings->RRDTool Utility Version matches the version of your rrdtool installation   在设置里面确定你的版本是正确的。

15、日志中老是显示WARNING: Result from SNMP not valid. Partial Result: No Such Object avail 但图片生成了。

     Surely the problem persists. It seems, that the very device does not support some OIDs you're requesting. Swicth poller to debugging mode to find the OIDs that are failing 
     确定你SNMP配置的OIDs是否正确。

字体在图形中显示不正常的解决方法

下载并安装cjkuni-fonts中文字体,字体名ukai.ttf,下载地址

#tar zxvf ttf-arphic-ukai_0.1.20060928.orig.tar.gz
# cd ttf-arphic-ukai-0.1.20060928/
# cp ukai.ttf /usr/share/fonts/ukai.ttf
安装完成后注意在"设置"中更改下面两个必改项.
常规->RRDTool应用程序版本 改为1.2.x,默认为1.0.x.不改可能图像不能正常显示出来.
路径->RRDTool默认字体路径 改为上面安装的ukai.ttf的文件路径,如/usr/share/fonts/ukai.ttf

测试snmp是否正常

#snmpwalk -c public -v 2c localhost

#snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex

IP-MIB::ipAdEntIfIndex.61.xxx.xxx.xxx = INTEGER: 2
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.172.xxx.xxx.xxx = INTEGER: 3

如果配置错误就会显示Timeout: No Response from localhost

当然也可以用snmpd -f -Le 命令查看当前有没有出什么错

1如果磁盘监控不到

请使用Cacti 中自带的模板 ucd/net – Get Monitored Partitions ,然后在被监控的机器的snmpd.conf(/etc/snmp/snmpd.conf)中加入 

disk / (比如我们监视根分区)

然后可以用snmpwalk -v 1 -c public 192.168.0.52 dsktable这个命令来检查

2.如果图出不来

1.检查你的主机是不是活的,一定要能测试通过,状态是活的才行,可以用命令来检查是否有输出
2.另外cacti默认选择的rrdtool的版本问题,你可以用rrdtool -V先查看自己系统RRDTool的版本,默认是RRDTool 1.1.x 的!—-点击Console->System Utilities->Technical Support->RRDTool Version选择RRDTool 1.2.x,不然有可能出不了图.

3.网卡流量达到100M以上图像有问题?
这与snmp的版本有关,snmp1的数据是32位而snmp2c以上是64位(AS4默认是不支持64位的)。

1.首先要确定你使用的是snmp2c或以上,是否支持64位MIB库.如下如果返回的有几行含有“Counter64:”的话.那么表明是支持的。

#snmpwalk -c public -v 2c localhost IF-MIB::ifHCInOctets
IF-MIB::ifHCInOctets.1 = Counter64: 3174458
IF-MIB::ifHCInOctets.2 = Counter64: 1585772167
IF-MIB::ifHCInOctets.3 = Counter64: 35696997927
IF-MIB::ifHCInOctets.4 = Counter64: 0

2.然后点击Cacti的页面:“Console ->; Create New Graphs ->;Data Query”。你在下面看到“Select a graph type:”的下拉菜单(默认是“In/Out bits”),要取64bits的数据所以将其改为“In/Out bits(64-bit Counters)”,然后选择你要监测的网卡即可。另外,该监测点的“Maximum Value”必须设置为100M以上。

3.设备管理中,选择的主机中的SNMP版本,一定要是2.

4.RedHat AS4的(net-snmp5.2以下不支持)snmp不支持64位计数器的解决方法(本方法由嘻嘻哈哈提供 )

可以下载一个src.rpm再在/usr/src/redhat/SPECS/net-snmp.spec文件的configure下加上一句–enable-mfd-rewrites \
然后再

#cd /usr/src/redhat/
#rpmbuild -bb SPECS/net-snmp.spec
生成一堆的x86_64.rpm在/usr/src/redhat/RPMS/x86_64下,如果是32位的就在i386下.在安装就行了.

注 :64位计数器是在net-snmp 5.2上新加入的IF-MIB ,它可以转换更多的 MIB 对象 (e.g. ifXTable with 64-bit ifHC* counters). 所有象RHEL4,Centosd4上,如果使用默认的5.2的src包,就算加入了enable-mfd-rewrites其实也是不行的.所以要下载5.2的src包来安装.

下载地址

net-snmp5.2.src.rpm

这个包中默认就加入了enable-mfd-rewrites.下载后,直接用上面方法中的rpmbuild -bb SPECS/net-snmp.spec编译后安装就行.

这个有时还得不到数据,要注意你的snmpd.conf是否配置对了.其中的如下,read选项要是全部.

access  notConfigGroup ""      any       noauth    exact  all none none

如果不想编译,可以下载在这下载redhat4的rpm直接安装就行了

 

监控交换机 
我们的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字段填对就行。 

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