在执行poller.php获取数据的时候,由于php版本问题,所以会报几个错误:
解决方法。
(1)在cmd.php和include/global_arrays.php 文件开头添加date_default_timezone_set('UTC'); 这行。
(2)如果报这个错误PHP Deprecated: Function split() is deprecated in的话,需要将对应的php文件中的split替换成explode() 函数就而已了。
(3)如果报这个错误Deprecated: Function ereg_replace() is deprecated in 的话,需要将对应的php文件中的ereg_replace()函数前面添加一个@符号,屏蔽该函数。
(4)还有一个类似的错误,PHP Deprecated: Assigning the return value of new by reference is deprecated in
是需要将对应的php中的&=修改为=来解决。
(5)最后还有一个比较古怪的问题,当上面步骤都安装完了以后,在graphs页面不显示图片,但是点进去。又可以看见图片,这个主要是rrdtool的版本不对造成的,解决方法是在console页面有一个setting,点进去后,修改rrdtool的版本就可以了。
通过以上方法如果还是报错的话,可以试着重新导入mysql,然后删除rra文件夹下的文件,重新获取一次。重启snmpd等方法看看能否解决。
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文档存在,则能够使用
Server# 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的配置有问题,请手工测试一下:
Server# 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的配置.如何修改请看:
http://bbs.chinaunix.net/viewthread.php?tid=594019 的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
当然,您还能够从[url]www.cacti.net[/url]上找到新的模板或添加自己的模板.
5、我以前用MRTG进行流量的监测,是否能够将MRTG中的数据导入到Cacti中呢?
当然能够!因为我就是这样做的.
请看:[url]http://bbs.chinaunix.net/viewthread.php?tid=595090[/url]
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默认并没有安装,所以即使您选择了他也不会生效的.
您能够从这里([url]http://www.cacti.net/cactid_download.php[/url])下载cactid的源码或rpm(bin)文档进行安装.然后在PATH中指定cactid的路径即可.
7.2、在POLLER的配置中加大cmd.php的进程数,即同时运行多个cmd.php进行数据的采集.但这样的话会加重您的系统负载.
假如您的机器性能太差,建议还是改用cactid为好.
PS:当磁盘空间满的时候会出现这个问题,原因是磁盘空间慢导致snmpget的时间变长.
8、怎么备份Cacti和他的数据呀?
只需要备份rra目录和数据库就能够了.您喜欢也能够将log目录一起备份.
假如您自己添加了一些插件的话记得也拷过去.
9、如何将数据合并?如何自定义脚本?
请看:
http://bbs.chinaunix.net/viewthread.php?tid=631801
1、脚本: #!/bin/sh
exec .1.3.6.1.4.1.2021.51 mytest /bin/sh /tmp/echo.sh
|
10、使用monitor、threshld插件
请看:
http://bbs.chinaunix.net/viewthread.php?tid=631801 的四楼.
使用monitor、threshld插件 |
11、为什么月、年的流量图下面的字母乱码?
是由于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支持中文吧.
http://bbs.chinaunix.net/viewthr ... p;extra=&page=1
12、cacti是否支持中文?
cacti默认在某些页面不能正常显示中文,rrdtool默认也不能够显示中文.
假如真的需要使用中文,请参考下面连接.
http://bbs.chinaunix.net/viewthread.php?tid=631801
我们发现,如果将一个device以中文命名,会在devices页面出现乱码,而且图像也会出现乱码。 <a class="linkEditMain" href="host.php?action=edit&id=<?php print $host["id"];?>"><?php prin
<a class="linkEditMain" href="host.php?action=edit&id=<?php print $host["id"];?>"><?php prin
|
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、CACTI 和 RRDTOOL 各自的优势是什么?
MRTG的优点:简单、易上手,基本安装完了之后只要更改一下配置文件即可。
缺点:
1、使用文本式的数据库,数据不能重复使用;
2、只能按日、周、月、年来查看数据;
3、只能画两个DS(一条线、一个块);
4、每取一次数据即需要绘图一次,浪费系统资源;
5、无管理功能;
rrdtool的优点:
1、使用rrd存储格式,数据能重复使用,比如我可以将一个rrd文件中的数据与另一个rrd文件中的数据相加。
2、可以定义任意时间段画图,即你可以画出一张半年以来的数据的图,也可以画出一张半小时以来的图。
3、能画任意个DS。
4、CDEF让你能任意摆弄数据。
缺点:
1、rrdtool的作用只是存储数据和画图,它没有mrtg中集成的数据采集功能;
2、在命令行的使用非常复杂,参数极多。
3、无管理功能。
cacti其实是一套php程序,它运用snmpget采集数据,使用rrdtool绘图。它的界面非常漂亮,能让你根本无需明白rrdtool的参数能轻易的绘出漂亮的图形。更难能可贵的是,它提供了强大的数据管理和用户管理功能,一张图是属于一个host的,每一个host又可以挂载到一个树状的结构上。用户的管理上,作为一个开源软件,它居然做到为指定一个用户能查看的“树”、host、甚至每一张图,还可以与LDAP结合进行用户的验证!我不由得佩服作者考虑的周到!Cacti还提供自己增加模板的功能,让你添加自己的snmp_query和script!可以说,cacti将rrdtool的所有“缺点”都补足了!
15、请写出 apache 支持 PHP 的配置:
############### for php and cacti ###################
AddType application/x-tar .tgz
AddType application/x-httpd-php .php
AddType image/x-icon .ico
DirectoryIndex index.php index.html index.html.var
####################### over #####################
16、如何安装 rrdtool:
./configure
make && make install 即可
与mrtg相比,rrdtool自带了gd库,所以不用先安装gd库.(不过由于rrdtool自带的gd库不支持中文,所以rrdtool画出来的图也不能有中文,否则会出现乱码).
注意:rrdtool1.2的版本由于已经不再自带外部的lib库(如cgilib,zlib等),所以需要从http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/libs/下载这些库来安装。建议还是使用1.0的版本,比较方便。
17、简单描述配置SNMP的过程:
打开默认的/etc/snmp/snmpd.conf文件,更改如下配置:
1、查找以下字段:
# sec.name source community |
将"comunity"字段改为你要设置的密码.比如"public".
将“default”改为你想哪台机器可以看到你的snmp信息,如10.10.10.10。
2、查找以下字段:
# Finally, grant the group read-only access to the systemview view. |
将"read"字段改为all.
#access notConfigGroup "" any noauth exact systemview none none
3、查找以下字段:
## incl/excl subtree mask |
将该行前面的"#"去掉.
4、运行/etc/init.d/snmpd start命令运行snmpd.
最后运行netstat -ln查看161端口是否打开了
###############################
今天遇到一同学的数据列表里面有图形,graphs里图是X,看他的cacti支持的rrdtool版本是1.0-1.3,尼玛他装了个1.4版本的。卸载重装OK!