cacti升级到0.8.7a

本文可自由转载,但请遵循“署名-非商业用途-保持一致”的创作共用协议。 永久链接:JoeCen's 小猫窝
-----------------------------

cacti最新版本是0.8.7a,我原来用的是0.8.6j。因为自己修改了很多页面,进行批量添加主机之类的操作,所以一直没有去升级。
现在既然cacti已经有cli命令,那么就放弃我原来的东西,直接用官方的好了。
碰到了两个乱码的问题:

1、升级以后,发现中文全部显示不了,包括图像的中文。搞了半天,发现原来是数据库用的是GB2312,之前的cacti版本我修改过页面,不过现在忘记了。那么,在lib/database.php文件中的“db_connect_real”函数里面加入"set names gb2312"即可。
修改完以后的“db_connect_real”函数:

  1. function db_connect_real($host,$user,$pass,$db_name,$db_type, $port = "3306", $retries = 20) {
  2.         global $cnn_id;
  3.         $i = 0;
  4.         $cnn_id = NewADOConnection($db_type);
  5.         $hostport = $host . ":" . $port;
  6.         while ($i <= $retries) {
  7.                 if ($cnn_id->PConnect($hostport,$user,$pass,$db_name)) {
  8.                         $sql = "set names gb2312";
  9.                         $query = $cnn_id->Execute($sql);
  10.                         return(1);
  11.                 }
  12.                 $i++;
  13.                 usleep(40000);
  14.         }
  15.         die("FATAL: Cannot connect to MySQL server on '$host'. Please make sure you have specified a valid MySQL database name in 'include/config.php'\n");
  16.         return(0);
  17. }

2、完了以后发现"data source"的页面的中文还是乱码,直接编辑页面"data_source.php",删除了"htmlentities"函数之后(大概在1150行左右)恢复正常,如下:
修改前:

form_selectable_cell("<a class='linkEditMain' href='data_sources.php?action=ds_edit&id=" . $data_source["local_data_id"] . "'>" . (($_REQUEST["filter"] != "") ? eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim(htmlentities($data_source["name_cache"]), read_config_option("max_title_data_source"))) : title_trim(htmlentities($data_source["name_cache"]), read_config_option("max_title_data_source"))) . "</a>", $data_source["local_data_id"]);

修改后

form_selectable_cell("<a class='linkEditMain' href='data_sources.php?action=ds_edit&id=" . $data     _source["local_data_id"] . "'>" . (($_REQUEST["filter"] != "") ? eregi_replace("(" . preg_quote($_REQUEST["filter"]) . "     )", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim($data_source["name_cache"], read_config_option("ma     x_title_data_source"))) : title_trim($data_source["name_cache"], read_config_option("max_title_data_source"))) . "</a>",      $data_source["local_data_id"]);

update:图像的乱码只修改php代码是不可以解决的,需要编译支持中文的rrdtool来解决。请看"编译安装支持中文的rrdtool".

随机日志

  • debian etch 在console支持显示和输入中文
  • iptables下开放ftp连接
  • 纳闷
  • 找到小时候很喜欢吃的无花果
  • 使用串口管理linux
  • 8 Responses to “cacti升级到0.8.7a”

    1. iakuf Says:

      不好意思,我照你的修改,还是一样.显示????之类.都是乱码

    2. joecen Says:

      不好意思,我照你的修改,还是一样.显示????之类.都是乱码

      我不知道你的数据库是什么编码,如果是默认的lantin1的话,是不需要增加那个"set names gb2312"的。

    3. iakuf Says:

      但我的出成的图中的内容还是乱码啊

    4. joecen Says:

      但我的出成的图中的内容还是乱码啊

      请看:
      http://www.joecen.com/2008/01/25/build-rrdtool-support-chinese/

    5. joesale Says:

      用的是什么编辑器 这么好看 ?

    6. joecen Says:

      用的是什么编辑器 这么好看 ?

      不是编辑器,是用"coolcode"显示的。

    7. mutanwo Says:

      您好:

      有個問題想請教您,那就是我升級cacti從0.8.6e到0.8.7。
      把RRA和LOG兩份檔案都給複製過去,權限方面檢查也都無誤。
      後來觀看各主機的流量圖都無誤。但是發現有個很嚴重問題,
      那是我在新增devices時,在Associated Data Queries部分想新增一些
      Data Query的樣板,比如說增加了SNMP-Get Mounted Partitions
      新增後,staus地方都顯示success 且有資料,但是在create graphs for this host時
      卻無法看任何Data query的資料,檢查DEBUG去看,也無問題。
      請問是升級上去後的BUG嗎?

    8. joecen Says:

      To mutanwo:
      不好意思,因为最近两年都没有用snmp,所以也没有去管data query 相关的功能。你的问题我不能确定是否升级以后的导致 ,建议你上cacti的forum上面问一下。

    Leave a Reply