cacti无图无数据等常见问题排查
chmod +x /var/www/html/cacti/cmd.php
===================================================
http://mengsir.blog.51cto.com/2992083/1255331
rrdtool fetch *.rrd AVERAGE
如果成功,才会有数据,否则都是 --nan ,则需检查配置问题了。
http://hi.baidu.com/green_lizard/item/c9e849f346244ddea935a26e
cacti中能显示图像,但是没有数据,都为nan的问题解决
在处理cacti的时候,我有一组机器需要记录他们的图像。其中有一台的cacti图像没有数据,都是nan,但是图像能显示。
1.确认防火墙关闭,selinux关闭(不关闭在创建图像的时候就出错了)。
2.查看cacti源中的rra中的该rrd文件(rrdtool fetch ****.rrd AVERAGE),结果都是nan,证明数据有问题,那么问题就应该出在rrdtool制图的前面。
3.看client端的机器,查看log,并没有看到snmp的log,证明server端没有拿到这里采集的数据。查看server端定时去client端取数据是没有问题的,而偏偏本地的拿不到。那么本地没有生成数据吗?
4.查看能否采集到数据。
[root@dist rra]# snmpwalk -c public -v 2c IP if
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifIndex.3 = INTEGER: 3
IF-MIB::ifIndex.4 = INTEGER: 4
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: eth1
IF-MIB::ifDescr.4 = STRING: sit0
IF-MIB::ifType.1 = INTEGER: softwareLoopback(24)
IF-MIB::ifType.2 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.3 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.4 = INTEGER: tunnel(131)
IF-MIB::ifMtu.1 = INTEGER: 16436
IF-MIB::ifMtu.2 = INTEGER: 1500
IF-MIB::ifMtu.3 = INTEGER: 1500
IF-MIB::ifMtu.4 = INTEGER: 1480
IF-MIB::ifSpeed.1 = Gauge32: 10000000
IF-MIB::ifSpeed.2 = Gauge32: 1000000000
IF-MIB::ifSpeed.3 = Gauge32: 0
IF-MIB::ifSpeed.4 = Gauge32: 0
IF-MIB::ifPhysAddress.1 = STRING:
IF-MIB::ifPhysAddress.2 = STRING: 0:13:72:5a:70:f0
IF-MIB::ifPhysAddress.3 = STRING: 0:13:72:5a:70:f1
IF-MIB::ifPhysAddress.4 = STRING:
IF-MIB::ifAdminStatus.1 = INTEGER: up(1)
IF-MIB::ifAdminStatus.2 = INTEGER: up(1)
IF-MIB::ifAdminStatus.3 = INTEGER: up(1)
IF-MIB::ifAdminStatus.4 = INTEGER: down(2)
IF-MIB::ifOperStatus.1 = INTEGER: up(1)
IF-MIB::ifOperStatus.2 = INTEGER: up(1)
IF-MIB::ifOperStatus.3 = INTEGER: down(2)
IF-MIB::ifOperStatus.4 = INTEGER: down(2)
IF-MIB::ifInOctets.1 = Counter32: 375088
truncating unsigned value to 32 bits (2)
IF-MIB::ifInOctets.2 = Counter32: 295390650
IF-MIB::ifInOctets.3 = Counter32: 0
IF-MIB::ifInOctets.4 = Counter32: 0
IF-MIB::ifInUcastPkts.1 = Counter32: 732
IF-MIB::ifInUcastPkts.2 = Counter32: 1187290183
IF-MIB::ifInUcastPkts.3 = Counter32: 0
IF-MIB::ifInUcastPkts.4 = Counter32: 0
IF-MIB::ifInDiscards.1 = Counter32: 0
IF-MIB::ifInDiscards.2 = Counter32: 0
IF-MIB::ifInDiscards.3 = Counter32: 0
IF-MIB::ifInDiscards.4 = Counter32: 0
IF-MIB::ifInErrors.1 = Counter32: 0
IF-MIB::ifInErrors.2 = Counter32: 8
IF-MIB::ifInErrors.3 = Counter32: 0
IF-MIB::ifInErrors.4 = Counter32: 0
IF-MIB::ifOutOctets.1 = Counter32: 375088
truncating unsigned value to 32 bits (2)
IF-MIB::ifOutOctets.2 = Counter32: 2904147702
IF-MIB::ifOutOctets.3 = Counter32: 0
IF-MIB::ifOutOctets.4 = Counter32: 0
IF-MIB::ifOutUcastPkts.1 = Counter32: 732
IF-MIB::ifOutUcastPkts.2 = Counter32: 1538798681
IF-MIB::ifOutUcastPkts.3 = Counter32: 0
IF-MIB::ifOutUcastPkts.4 = Counter32: 0
IF-MIB::ifOutDiscards.1 = Counter32: 0
IF-MIB::ifOutDiscards.2 = Counter32: 0
IF-MIB::ifOutDiscards.3 = Counter32: 0
IF-MIB::ifOutDiscards.4 = Counter32: 0
IF-MIB::ifOutErrors.1 = Counter32: 0
IF-MIB::ifOutErrors.2 = Counter32: 0
IF-MIB::ifOutErrors.3 = Counter32: 0
IF-MIB::ifOutErrors.4 = Counter32: 0
IF-MIB::ifOutQLen.1 = Gauge32: 0
IF-MIB::ifOutQLen.2 = Gauge32: 0
IF-MIB::ifOutQLen.3 = Gauge32: 0
IF-MIB::ifOutQLen.4 = Gauge32: 0
IF-MIB::ifSpecific.1 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.2 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.3 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.4 = OID: SNMPv2-SMI::zeroDotZero
[root@dist rra]#
能够采集到数据,但是为什么server端拿不到呢?
5.查看MIB库是否支持64位
[root@dist rra]# snmpwalk -c public -v 2c IP IF-MIB::ifHCInOctets(其中cacti正常的服务器)
IF-MIB::ifHCInOctets.1 = Counter64: 347976
IF-MIB::ifHCInOctets.2 = Counter64: 307393075382
IF-MIB::ifHCInOctets.3 = Counter64: 0
IF-MIB::ifHCInOctets.4 = Counter64: 0
[root@dist rra]# snmpwalk -c public -v 2c IP IF-MIB::ifHCInOctets(有问题的、本地的服务器)
IF-MIB::ifHCInOctets = No Such Object available on this agent at this OID
[root@dist rra]#
6.查看版本信息:
lsb_release -a 结果时centos4.2的版本,rpm -qa | grep net-snmp版本是5.1的。5.1的net-snmp版本不支持64为的MIB,所以必须安装达到5.2的版本。
service snmpd stop
yum remove net-snmp(rpm -qa | grep net-snmp查看是否卸载干净)
下载net-snmp所需的rpm包,之后再安装,重启snmpd服务。
6.查看现在支持64位的MIB:
[root@dist ~]# snmpwalk -c public -v 2c IP IF-MIB::ifHCInOctets
IF-MIB::ifHCInOctets.1 = Counter64: 375088
IF-MIB::ifHCInOctets.2 = Counter64: 298968640019
IF-MIB::ifHCInOctets.3 = Counter64: 0
IF-MIB::ifHCInOctets.4 = Counter64: 0
7.等待一段时间,该主机的cacti图像正常了。
可能是我创建该主机的时候,在Output type ID 中选择的是In/Out Bits(64-bit Counters),如果选择In/Out Bits不知道能不能出现图像,我想应该可以的。
http://tech.climberlife.com/blog/?p=132
http://hi.baidu.com/arongdy/blog/item/976582af9ce866c47cd92af6.html
http://g.51cto.com/linuxops/122405
view systemview included .1.3.6.1.2.1.6.9.0 <------添加
view all included .1 <-----------添加
http://www.crazycen.com/linux/1158.html
装过cacti遇到过很多问题,比如说无图像或者无数据。
网上查了很多资料。
来总结一下:
1.system utilities –>Rebuild poller cache
2.系统时间不准确,重新设置时间
3.图像没有生成,运行#/usr/bin/php /srv/www/htdocs/cacti/poller.php –force
4.权限问题,修改权限#chmod 777 -R /srv/www/htdocs/cacti/rra
5.数据库表有损坏,修复#mysqlcheck -ao cacti –auto-repair -uroot -p
6.重启snmpd服务#service snmpd restart
通过以上的检查,一般问题都是可以解决的!
===================================================
http://17610376.blog.51cto.com/366886/377114
1. 首先检查一下rra/下面,有没有数据,如果没有检查rra/ log/的拥有者是不是cactiuser
2. snmpwalk -v 2c -c public ServerIP if 用来测试被控对象(serverIP)是否开启了SNMP服
务
3. snmpwalk -v 2c ServerIP -c public .1.3.6.1.4.1.2021.10.1.3 查看被控端是否有CPU负
载的数据返回
4. /usr/local/bin/php /home/wwwroot/cacti/poller.php 用来测试PHP是否可以采集到数据
。如果上面的都正确,但这步出错,很有可能是PHP配置的问题,或开启了SuLinux。
5. 如果按第2步snmpwalk能采集到数据,但第3步无法采集,可能是PHP设置的问题,修改
PHP.ini,很有可能是PHP权限问题。如果第4步正常而无法显示图,则可能是rra/ log/ 的
Owner不对
6. #crontab -e
*/5 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
//每5分钟自动执行一次数据
注意:如果执行没成功是模式没有执行
或者运行一下该命令看rra文件夹是否有数据
# /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php
查询模式crond的
[root@localhost bin]# chkconfig --list| grep cron
anacron 0:off 1:off 2:on 3:off 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:off 4:on 5:on 6:off
[root@localhost bin]# chkconfig crond on //更改模式为启动计划任务
[root@localhost bin]# chkconfig --list| grep cron
anacron 0:off 1:off 2:on 3:off 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:of
############################################
http://hi.baidu.com/arongdy/blog/item/976582af9ce866c47cd92af6.html
==========================================
http://bbs.chinaunix.net/thread-1989188-1-1.html
刚安装完cacti,没有图像 执行/usr/bin/php /var/www/cacti/poller.php后也没有图像 查看/var/www/cacti/rra目录居然为空 确定是由于没有rrd文件导致没有图像 下面解决问题 打开cacti监控界面 Console -> Data Source -> 选择没有图像的数据源 -> Turn On Data Source Debug Mode 复制调试命令到监控端以cacti用户执行 执行后会生成rrd文件 随后查看监控界面 已生成图像 |
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
http://bbs.chinaunix.net/thread-2126410-1-1.html
今天也碰到这个问题,跟楼主的现象一样,已经解决了。 是cacti中全局配置(settings)中的 RRDTool Default Font Path The path to the rrdtool default true type font for version 1.2 and above. 这一项没有填对。 |
呵呵,把 Data Source Debug 的命令用sudo去系统里面执行一次,就可以了 |
执行:/usr/bin/php /home/wwwroot/cacti/poller.php |
http://bbs.chinaunix.net/thread-2136772-1-1.html
mkdir -p /usr/local/htdocs/cacti/rra
chmod 777 /usr/local/htdocs/cacti/rra
看看rra目录权限和目录下的各个文件的权限。
因为
cacti是以web服务的用户身份运行的,因此需要把rra的目录的所有者设置为web服务的用户,而且,不要以其他用户的身份手动运行poller.php(经常有人为了测试,用root身份手动更新rra文件),
ERROR: opening '/usr/local/htdocs/cacti/rra/localhost_load_1min_5.rrd': No such file or directory
这个是指没有找到rrd文件,可能是没有能够生成。
可以看看日志。
还有,看看crontab中,是不是以web服务的用户的身份运行定时取数据。
总之,看看权限
先以root身份手动运行poller.php,看看是否能够生成rrd文件,如果能够,说明获取数据是正常的,然后把那些生成的文件的所有者修改为web服务的用户。
最好不要用别的用户身份去定时获取数据,那样权限不好控制。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
*******************************************************
http://tech110.blog.51cto.com/438717/460407
前面已经发布了cacti的安装一文,部署完之后也运行好好的(centos5.5 cacti-0.8.7g),可是今天上班来看监控时,cacti已经打不开,并且也不出图,查看cron定时任务也在运行,听同事说周末放假时,公司机房(内部使用)停了一次电,因此怀疑是停电造成的缘故,于是查看cacti日志(cacti.log),发现里面有大量的错误信息,而且错误开始的时候正是上周五快下班时出现的。排除停电原因。但是查了好久也没找到找到原因,结果在同事的帮助查找下最终找到了原因。如下:
cacti.log日志文件里出现大量错误信息:
CMDPHP: Poller[0] ERROR: Detected RRDtool Crash on'create/usr/local/cacti/rra/192_168_1_151_traffic_in_33.rrd --step 300
Last command was 'update /usr/local/cacti/rra/192_168_1_151_hdd_free_34.rrd --template hdd_used:hdd_free*********************
CMDPHP: Poller[0] ERROR: Detected RRDtool Crash on 'update
/usr/local/cacti/rra/nbr1200_traffic_in_73.rrd --template traffic_out:traffic_in********* Last command was ''
手动执行命令: /usr/bin/php /usr/local/cacti/poller.php 也报错,说是文件/usr/local/cacti/include/plugins.php里
定义的数组array有问题,是第31行,本人也看不懂,如下:
$oldplugins = read_config_option('oldplugins');
$oldplugins = explode(',', $oldplugins);
$plugins = array_merge($plugins, $oldplugins);
于是跳过,因为rrd文件不更新,于是想到可能跟rrdtool的执行有关,于是查看rrdtool文件执行时所用的库文件
# ldd /usr/bin/rrdtool
提示有库文件找不到;
linux-gate.so.1 => (0x00359000)
librrd.so.2 => /usr/lib/librrd.so.2 (0x006e5000)
libfreetype.so.6 => not found
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x0021f000)
libz.so.1 => /usr/lib/libz.so.1 (0x0095f000)
libart_lgpl_2.so.2 => /usr/lib/libart_lgpl_2.so.2 (0x07d99000)
libm.so.6 => /lib/libm.so.6 (0x008af000)
libc.so.6 => /lib/libc.so.6 (0x00761000)
/lib/ld-linux.so.2 (0x0073e000)
libfreetype.so.6 => not found
libfreetype是cacti运行时所需要的文件,这里找不到
执行命令:LD_DEBUG=libs /usr/bin/rrdtool
可以查找当rrdtool文件运行时所查找的路径,提示是到/lib /usr/lib下去寻找,而该路径下均没有此文件,于是执行以下命令查找在哪里:
# locate libfreetype.so.6
/usr/local/lib/libfreetype.so.6
/usr/local/lib/libfreetype.so.6.5.0
/usr/local/lib/ImageMagick-6.2.8/lib/libfreetype.so.6
因此可以看出问题所在,rrdtool运行时是到/lib /usr/lib下去找,并没有到/usr/local/lib下去寻找,所以解决办法由如下两个:
1)cp /usr/local/lib/libfreetype.so.6 /usr/lib (复制过去)或者
2)ln -s /usr/local/lib/libfreetype.so.6 /usr/lib/libfreetype.so.6 (建立软连接)
做完以上步骤之后,cacti可以出表格了(之前表格也没有),但是cacti还是一直没有数据,接着查看日志:
POLLER: Poller[0] WARNING: Cron is out of sync with the Poller Interval! The Poller
Interval is '300' seconds, with a maximum of a '300' second Cron, but 405 seconds have
passed since the last poll!
(大概意思是poller执行时间超过了300s),于是抱着试一试的想法把每5分钟执行一次的命令:
*/5 * * * * /usr/bin/php /usr/local/cacti/poller.php > /dev/null 2>&1
改成每1分钟一次,改完后重启crond服务,结果问题得以解决,在正常之后又改回5分钟,运行正常。
在把问题解决之后,顺便看了一下历史命令记录,结果是公司开发人员把之前装好的libfreetype给卸载了,又重新换了一个目录安装,就造成了cacti不出图的问题。嗨,真没办法搞开发的,谁叫咱运维是为他们服务的呢!!!
因此把解决问题的整个经过写下来,方便以后出现同样问题时能够尽快解决,也希望帮助出现同样问题的朋友!
本文出自 “宗军” 博客,请务必保留此出处http://tech110.blog.51cto.com/438717/460407
http://storysky.blog.51cto.com/628458/244804
这个问题姑且不谈,结果我发现Cacti 监控服务器上又发现新的问题,宕机的那台服务器的网络流量模板里的数据采集不到了如下图:
而同一台服务器的其他模板数据采集正常
觉得很奇怪,用命令测试查看是不是采集不到数据了
rrdtool fetch fxd-mdl11_traffic_in_365.rrd AVERAGE
261028400: 2.5984737488e+05 3.4129674937e+05
1261028700: 2.4608829433e+05 3.1526302933e+05
1261029000: nan nan
竟然数据都在,这是为什么?
于是上网找原因.搜了半天也没搜到类似的状况...
开始在cacti的选项里面来回寻找,这时我忽然想到了在cacti更换轮训器的时候需要清空 poller cache ,是不是因为缓存导致了我的模板里显示不出数据呢?
不管了,先试试再说。system utilities -->Rebuild poller cache
清空了缓存,开始等待。几分钟后模板里终于有数据了。
呵呵问题是解决了,可是导致这个问题的原因我到现在也不知道,而且是一部分模板有数据,另一部分却没有...
希望这篇文章能对朋友们有所帮助
本文出自 “story的天空” 博客,请务必保留此出处http://storysky.blog.51cto.com/628458/244804