hb120973135 发表于 2019-1-12 07:55:25

cacti故障解决实例

  前面已经发布了cacti的安装一文,部署完之后也运行好好的(centos5.5   cacti-0.8.7g),可是今天上班来看监控时,cacti已经打不开,并且也不出图,查看cron定时任务也在运行,听同事说周末放假时,公司机房(内部使用)停了一次电,因此怀疑是停电造成的缘故,于是查看cacti日志(cacti.log),发现里面有大量的错误信息,而且错误开始的时候正是上周五快下班时出现的。排除停电原因。但是查了好久也没找到找到原因,结果在同事的帮助查找下最终找到了原因。如下:
  cacti.log日志文件里出现大量错误信息:
  CMDPHP: Poller 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 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 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不出图的问题。嗨,真没办法搞开发的,谁叫咱运维是为他们服务的呢!!!
  因此把解决问题的整个经过写下来,方便以后出现同样问题时能够尽快解决,也希望帮助出现同样问题的朋友!



页: [1]
查看完整版本: cacti故障解决实例