安装 Cacti 0.87g 遇到的一些本不应该是问题的问题。

环境是 SLES11sp1 + Nginx(FastCGI) + MySQL 5.5.8,软件怎么编译就不再废话了。
事实上,出现的所有问题都与这个 MySQL 5.5.8 有关,因为它好像并不支持以前的一些 SQL 语法了,比如废弃了 TYPE=MyISAM 这样的数据库引擎声明方式,而只支持 ENGINE=MyISAM 这样的声明方式(也许有其它方式来支持,知道的童鞋告我……)。当然这不算什么,直接修改 Cacit.sql 文件替换即可。但问题才刚刚开始。
之后顺利地进入到了熟悉的 Cacit 初始化界面,一切还算正常。
下面就要装插件了,一共有三个插件要安装:setting 、thold 、monitor 。
首先要安装插件的 patch —— cacti-plugin-0.8.7g-PA (PIA,这里是 2.8 版本)。很简单,不再废话。
因为 PIA 已经升级到了 2.8 ,所以安装 Cacti 插件就不用像以前那样去修改 include/config.php 文件了,直接把插件拖到 plugin/ 目录,然后去 Cacit 控制台,进入 Plugin Management 安装即可(要先打开 admin 用户的 Configure Thresholds 权限)。
安装 setting 和 monitor 很顺利,至少现在还没发现什么问题,但安装 thold 就麻烦了,虽然安装时也很顺利。
但很快就会发现,告警模板加不上去,告警设置无效,检查 Cacti 日志会发现大量的红色错误日志,报告 thold_template 表中很多字段无效,就是说 Cacti 无法将一些数据写入 MySQL 数据库中的 thold_template 表,原因很简单,这些字段根本就不存在。有趣的是,查看 thold 插件目录下的 .sql 文件,发现该表确实没有这些字段……解决方法也很简单,进入数据库手动插入字段到相应的表就可以了。之所以会出现这种情况,原因就是 MySQL 5.5.8 对旧语法不再支持,而 Cacti 的 PIA 还在使用。我使用 RHEL5u3 自带的 mysql-server-5.0.77 就没有出现这种问题。解决方法是,换一个低版本的数据库,或者你能打开 MySQL 5.5.8 对旧语法的支持最好。我的解决方法是从低版本的数据库导出这些配置好的数据库,然后再导入到高版本的数据库中去——没办法。

还有一个问题是 PIA 2.8 的 BUG,进入 Cacti 控制台的 Data Sources 下,会发现 Template Name 那列的数据是一片乱码,或者说 php 语句没有被正确解释执行。以前这是一个衔接,点击就可以进入该项目的告警设置了——我经常这么干。


安装 PIA 2.9 可以修正这种混乱的局面——我是说他们解决问题的方法是直接把该功能 CUT 掉……这当然不是我想要的了,于是本人用 Cacti-0.87e 上的同样位置的语句对其进行替换,很幸运的是——it work!
编辑 Cacti 根目录下的 data_sources.php 文件,将 1336 行这句:
    form_selectable_cell(((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", htmlspecialchars($data_source['data_template_name'])) : htmlspecialchars($data_source['data_template_name'])), $data_source["local_data_id"]);
替换为:
    form_selectable_cell(((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $data_source['data_template_name']) : $data_source['data_template_name']) . "</a>", $data_source["local_data_id"]);
问题解决……

你可能感兴趣的:(职场,监控,cacti,休闲)