Cacti故障解决实例

前面已经发布了CentOS 5.5下 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不出图的问题。嗨,真没办法搞开发的,谁叫咱运维是为他们服务的呢!!!

因此把解决问题的整个经过写下来,方便以后出现同样问题时能够尽快解决,也希望帮助出现同样问题的朋友!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wygzgz.html