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