cacti不能获取数据或者显⽰图经常碰到的问题
⼀、snmp和⽹络是否正常
通过在cacti服务器上运⾏snmpwalk -c public -v 2c ip,能够正常返回数据,排除snmp和⽹络的问题。
注意:-c 后跟共同体名 public为community名,此处可变,需根据⾃⼰环境设置进⾏更改!
-v snmp版本
ip 为被监控端的IP
⼆、查看cacti全局参数设置
经查看cacti全局参数设置中的路径,采集器等均没有问题。
三、检查cacti服务器上rra和log的⽬录权限
查看rra和log⽬录属主均是web程序运⾏⽤户,有对rra和log⽬录的读写权限,没有问题。进⼊rra⽬录,发现所有图像⽂件的修改⽇期均是前⼏天的,也就是说最近都没有获取到数据,更新到rra⽂件;进⼊log
⽬录,发现cacti.log⽂件达到2G,log不记录东西了,mv cacti.log cacti.log.old,重新⽣成cacti.log,故障依旧。
四、检查cacti.log
snmp能够获取到数据,rra和log权限也均没有问题,为什么还不能获取到数据呢?
开启cacti全局设置中的详细⽇志,tail -f cacti.log查看⽇志,发现有很多类似⽇志:
WARNING: Result from CMD not valid. Partial Result:
这是cacti采集器没有获取到相关主机的返回数据。同时发现有如下⽇志:
Maximum runtime of 292 seconds exceeded. Exiting.
是说在⼀个循环周期内(5min),cacti没有获取完所有的数据,⾃动退出,执⾏下⼀循环,
应该是有太多主机了,同时有很多主机⽆法连接上超时,导致最终采集器时间超过292s⾃动退出。
决定采⽤cactid来代替cmd.php采集,同时清理数据库中poller_item中的⽆效,⽆法连接上,配置错误的记录(重要,可根据cacti.log 中得知哪些主机或记录有问题)。
五、配置cactid
新版的叫spine。安装配置cactid:鱿鱼卷的做法
tar -zxvf cacti-cactid-0.8.
cd cacti-cactid-0.8.6j
./configure (mysql另外安装的需要指安mysql路径)
make
mkdir /usr/local/cactid
cp f /usr/local/cactid/
vi /usr/local/f修改为相应的数据库的⽤户名和密码。
全局配置中设置采集器为cactid,并设置好cactid的路径:/usr/local/cactid/cactid
中国十大猎头公司能够正常获取到数据了,查看cacti.log:
02/12/2011 11:31:03 AM – CACTID: Poller[0] Time: 55.2049 s, Threads: 1, Hosts: 25
…
02/12/2011 11:32:04 AM – CACTID: Poller[0] Time: 113.7014 s, Threads: 1, Hosts: 25
⼆分钟即能获取到所有的主机数据了,效率提升不少。故障解决。
六、如以上还不能解决故障,可通过⼿动运⾏:php /var/www/html/cacti/poller.php 查看输出来到问题所在。
=======================================
cacti安装测试过程中不能显⽰图形:(2011-09-13)
cd /var/www/html/cacti/log
tail -f cacti.log
显⽰如下:
09/13/2011 01:10:03 PM - SYSTEM STATS: Time:1.4293 Method:cmd.php Processes:1 Threads:N/A Hosts:3 HostsPerProcess:3 DataSources:17 RRDsProcessed:11
09/13/2011 01:14:01 PM - CMDPHP: Poller[0] Host[1] DS[11] WARNING: Result from CMD not valid. Partial Result: U
09/13/2011 01:14:01 PM - CMDPHP: Poller[0] Host[1] DS[11] WARNING: Result from CMD not valid. Partial Result: U
处理过程如下⽰:
最後的解法是將 cmd.php 做 chmod a+x 就可以了。
後記:那時感覺很奇怪,poller.php已經指定⽤php去run,後來想想,可能poller.php內⼜直接呼叫cmd.php,並未只名為php script。
=================================cacti的排错经验=========================
分期付款买房cacti出不了数据,⼀般从以下⼏个⽅⾯⼊⼿解决问题
1。确认你的cacti主机上能否得到⽬标机器上的snmp数据
cacti得到⽬标机器上的统计数据分为两种⽅法,⼀种是远程通过snmp协议获取、⼀种是本地机器通过shell脚本获取。
2。确认你的crontab计划任务有在正常运作
cacti是通过crontab的定时作业每隔⼀段时间获取数据的,如果定时作业没有运作,肯定也是读取不到数据的
3。确认你的crontab定时作业所执⾏的作业能获取信息
cacti获取信息⽤的是poller.php定时运作,然后根据你设置的是⽤php脚本来执⾏snmp获取还是cactid来获取,所以,你必须确认你的php能⽀持php的snmp扩展、或者确认你有正确设置cactid。推荐使⽤cactid,效率⽐通过php⾼10~20倍。
4。确认你的rrdtool的版本
rrdtool1.0.x版本和1.2.x版本有着⽐较⼤的差别,在cacti⾥⾯要正确设置你的rrdtool的版本。⽐较容易出现的错误就是你的rrdtool是1.2.x版本,⽽cacti默认的rrdtool版本为1.0.x版本,如果是这样的话,你的数据收集是正常的,不过由于rrdtool的版本变化导致的命令处
理格式的⼀点差别,cacti的缩微图会画不出来的,⽽具体的图⽚时可以画出来,这个,⼤家要留神⼀下。
5。当然了,要保证cacti收集的数据能被储藏在你的机器上,要保证收集的数据能被httpd服务读取
以上是我个⼈对cacti的trouble shooting的⼀些认识,请各位补充指正。
将cacti安装好按例⼦进⾏配置,想到得到第⼀个hellow world这样的例⼦时,常常也会遇到不少的问题,最可能的就是⽆图,或者有图⽆数据。
先说⽆图吧,主要是检查先确定你的IP地址、snmp comunite、snmp version等信息配置没有错误,如果都没有错误,那么你确定才⼀个采集周期(⼀般默认采集周期300秒)以后去检查rra⽬录,看是否有相应的rra⽂件⽣成,如果是新安装,本来rra⽬录只有⼀
个.placeholder⽂件。你只要关注以rra为⽂件后缀的⽂件即可。如果没有那么⼀是rra⽂件权限,windows是ntfs和linux等下有这个问题,其它就检查snmp的设置。
解决cacti中⽆图或⽆数据的问题
snmpwalk -v 2c -c public yourIP if
中秋节的祝福短信 如果有数据返回,则snmp的数据没有问题。如果出现“Timeout: No Response from ...”之类的错误信息则是snmp设置的问题。
再说有图⽆数据吧,⼀般这样的情况就是snmp采集的结果有问题。这种情况下,⼀般也会出现新建的device的Data Query⾥⾯的状态总是“ Success [0 Items, 0 Rows]”。通过执⾏snmp命令来检查:
snmpwalk -c community -v 2c hostIP if
通过结果可以看到是否允许cacti取这些OID的数据。
eg:
snmpwalk -c public -v1 192.168.0.221 .1.3.6.1.2.1.2.2.1.16.2
当cacti 有图没有数据时,⽽且状态为nan错误解决办法
解决办法:
1.
[root@codfei rra]# pwd
/usr/local/apache2/htdocs/cacti/rra
[root@codfei rra]# rrdtool fetch fxd-mdl11_traffic_d AVERAGE
按照以上命令执⾏如果结果输出为:
1197990600: nan nan
1197990900: nan nan
1197991200: nan nan
1197991500: nan nan
1197991800: nan nan
1197992100: nan nan
则表⽰snmp获取数据有问题,经过仔细检查发现不能获取流量的主机都是64位系统,
⽤以下命令检查:
[root@codfei rra]# snmpwalk -c public -v 2c 192.168.1.2 IF-MIB::ifHCInOctets
输出内容如下,表明不⽀持64位MIB库,终于到原因了。
IF-MIB::ifHCInOctets = No Such Object available on this agent at this OID
2,需要重新安装snmpd⽀持64位MIB库,不过正常⽤源码包安装时在make的时候会出现error,⽆法继续,
解决⽅法:
在源码包下config后,先不要make,请先修改以下两个⽂件。
[root@codfei net-snmp-5.3.1]# vi apps/Makefile
TRAPDWITHAGENT = $(USETRAPLIBS) -ldl -lrpm -lrpmio -lpopt -lz -lcrypto -lm
替换成:
TRAPDWITHAGENT = $(USETRAPLIBS) -ldl -lrpm -lrpmio /usr/lib64/libpopt.so -lz -lcrypto -lm
[root@codfei net-snmp-5.3.1]# vi agent/Makefile
LIBS = ../snmplib/libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION) -ldl -lrpm -lrpmio -lpopt -lz -lcrypto -lm $(PERLLDOPTS)
替换成:
LIBS = ../snmplib/libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION) -ldl -lrpm -lrpmio /usr/lib64/libpopt.so -lz -lcrypto -lm
然后在进⾏make && make install
3,停⽌当前linux⾃带的snmpd,通过daemoonls启动新安装的snmpd就能了。
这时在⽤snmpwalk检测,⽀持64位MIB库了,过⼀会流量监视的图⽚也出来了!
[root@codfei rra]# snmpwalk -c public -v 2c 192.168.1.2 IF-MIB::ifHCInOctets
IF-MIB::ifHCInOctets.1 = Counter64: 2400309170
IF-MIB::ifHCInOctets.2 = Counter64: 256326257624
IF-MIB::ifHCInOctets.3 = Counter64: 0
IF-MIB::ifHCInOctets.4 = Counter64: 624808037429
IF-MIB::ifHCInOctets.5 = Counter64: 0
IF-MIB::ifHCInOctets.6 = Counter64: 0
IF-MIB::ifHCInOctets.7 = Counter64: 0
IF-MIB::ifHCInOctets.8 = Counter64: 0
使⽤模板ucd/net - Memory Usage,检测局域⽹内别的机器发现有图,但是⽆数据,都是nan,
cacti log有如下错误
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[44] WARNING: Result from SNMP not valid. Partial Result: U 04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[43] WARNING: Result from SNMP not valid. Partial Result: U 04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[42] WARNING: Result from SNMP not valid. Partial Result: U 04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[41] WARNING: Result from SNMP not valid. Partial Result: U 04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[40] WARNING: Result from SNMP not vali
d. Partial Result: U 04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[39] WARNING: Result from SNMP not valid. Partial Result: U
于是
wget ftp://mirror.switch.ch/pool/1/mirror/scientificlinux/5rolling/i386/SL/net-snmp-utils-5.3.1-24.el5_2.1.i386.rpm
安装获得snmpget snmpwalk snmpbulkwakl snmpgetnext
snmpwalk -v 2c -c public your_remote_ip if
错误:
世界无烟日手抄报内容Timeout: No Response from your_remote_ip
于是修改snmpd配置 并启动snmpd
com2sec notConfigUser default public--->com2sec notConfigUser your_snmpd_server_ip public
#view all included .1 80---->view all included .1 80
snmpwalk -v 2c -c public your_remote_ip system ok
但
snmpwalk -v 2c -c public your_remote_ip if
周杰伦 一点点错误:
IF-MIB::ifTable = No Such Object available on this agent at this OID
于是再次修改f,并重启snmpd
access notConfigGroup "" any noauth exact systemview none none-->
access notConfigGroup "" any noauth exact all none none
再次snmpwalk -v 2c -c public your_remote_ip if
ok
再访问页⾯终于图和数据出来了
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论