登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

杨树叶子的博客

 
 
 

日志

 
 
 
 

安装CactiEZ0.2b和让其支持中文的方法  

2006-12-12 16:47:26|  分类: cacti |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
CactiEZ是一个专门用作运行cacti的linux发行版,该版本由JimmyConner制作发行,基于CentOS4.4。安装后只会在系统中安装cacti和webmin所必须的软件,整个系统非常小(安装光盘只有282M),并且已经安装好了一些cacti的插件,如BackUp,Discovery,Flowview,Haloe,MacTrack,Monitor,NTop,RRDClean,Reports,Thold,Tools,Update等,其中有些需要用户自己启用才可使用。整个操作系统一旦安装完成,配置好IP后即可使用Cacti,为大家节省了的安装配置时间,只不过需要占用一台服务器。该发行版的主页地址为:http://cactiusers.org/
CactiEZ0.2b是一个测试版本,但的确可以投入正式使用。该发行版的cacti版本为0.8.6i,rrdtool版本为1.2.15。其他插件版本请看发行说明。
但是Cacti不能正常显示设备的中文名,rrdtool不能正常显示中文的问题在CactiEZ中同样没有解决。
下面将介绍如何安装CactiEZ和解决中文显示问题的方法。

一:安装CactiEZ0.2b
CactiEZ0.2b的安装非常简单,请在网站主页下载光盘ISO镜像文件,刻录光盘后,将光盘插入光驱,启动机器。从光盘启动后进入CactiEZ的安装界面,回车后自动安装整个操作系统。安装大概5-10分钟,安装完成后请取出安装光盘。重起后进入登陆界面,默认系统root用户的密码为:CactiEZ。

二:配置服务器的IP地址和域名服务器
第一次登陆后会提示修改密码。修改密码完成后需要配置网络。请编辑/etc/sysconfig/network-scripts/ifcfg-eth0,文件应该包含如下几部分,自己做适当修改:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.0
BROADCAST=192.168.1.255
NETWORK=192.168.1.0
GATEWAY=192.168.1.1
ONBOOT=yes
TYPE=Ethernet

CactiEZ安装时没有设置DNS服务器的界面,在进行yum之前需要配置系统的DNS服务器。请编辑/etc/resolv.conf,增加你的域名服务器,我在深圳,所以采用深圳、广州电信的DNS服务器,请按照实际情况进行修改
[root@localhost network-scripts]# more /etc/resolv.conf
search localdomain
nameserver 202.96.134.133
nameserver 202.96.128.68

现在,你就可以使用
http://ip来登陆cacti了,默认用户名为:admin,密码为:CactiEZ

三:重新编译rrdtools,并安装中文字体包

1.安装编译器和中文字体包
可惜现在Cacti还不支持中文,要做如下操作。
cacti支持中文只需要修改 host.php文件,而rrdtool支持中文需要修改源代码,重新编译。但是CactiEZ没有安装c编译器gcc、C++编译器gcc-c++和中文字体ttfonts-zh_CN,在编译之前,请用yum安装好这些包。
yum install gcc
yum install gcc-c++
yum installttfonts-zh_CN  (字体安装在/usr/share/fonts/)

2.设置locale
修改/etc/sysconfig/i18i,将系统的语言设置为 cn_ZH.UTF-8。
整个i18n的内容应该如下:
LANG="zh_CN.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en:en_GB.UTF-8:en_GB:en:en_US.UTF-8:en_US:en:fr_FR.UTF-8:fr_FR:fr:de_DE.UTF-8:de_DE:de:el_GR.UTF-8:el_GR:el:fi_FI@euro:fi_FI:fi"
SYSFONT="latarcyrheb-sun16"

3.下载和安装rrdtool依赖库
编译rrdtool需要先编译好依赖库freetype-2.1.10.tar.bz2,libart_lgpl-2.3.17.tar.gz,libpng-1.2.10.tar.gz,然后修改rrdtool的源代码文件,再编译rrdtool。整个过程如下
cd ~
mkdir tmp
cd tmp
wget
http://ftp.idilis.ro/mirrors/rrdtool/libs/freetype-2.1.10.tar.bz2
wget http://ftp.idilis.ro/mirrors/rrd ..._lgpl-2.3.17.tar.gz
wget http://ftp.idilis.ro/mirrors/rrdtool/libs/libpng-1.2.10.tar.gz
tar -jxvf freetype-2.1.10.tar.bz2
tar -zxvf libart_lgpl-2.3.17.tar.gz
tar -zxvf libpng-1.2.10.tar.gz
cd freetype-2.1.10
./confgiure --prefix=/usr ; make ; make install
cd ../libart_lgpl-2.3.17
./confgiure --prefix=/usr ; make ; make install
cd ../libpng-1.2.10
./confgiure --prefix=/usr ; make ; make install
cd ../

4.下载rrdtool和修改源文件
wget
http://ftp.idilis.ro/mirrors/rrdtool/rrdtool-1.2.15.tar.gz
tar -zxvf rrdtool-1.2.15.tar.gz
cd ../rrdtool-1.2.15/src

现在修改rrdtool的源文件,需要修改的文件有rrd_gfx.c和rrd_graph.c

修改rrd_graph.c:
请删除rrd_graph.c文件 3065和3067行
3065: setlocale(LC_TIME,"");
3067: setlocale(LC_CTYPE,"");
在原3067行增加以下内容:
   setlocale(LC_ALL,"zh_CN.UTF-8");

修改rrd_gfx.c:
1).请在519行增加:
  free(w_text);
2)请修改446行为:
    glyph->index =FT_Get_Char_Index( face, w_text[n]);
3)请417行处增加:
  w_text = (wchar_t) calloc(string->count,sizeof(wchar_t));
  mbstowcs(w_text,text,string->count);
4)请在387行处增加
  wchar_t* w_text;
如有问题,请参考
http://bbs.chinaunix.net/viewthr ...p;extra=&page=1 ,abel和zqli的发言。abel的pathc有问题,估计是没注意,zqli的patch是修改后的,但只适用于1.2.12。

现在修改完毕,可以开始编译了
5.编译新的rrdtool
cd ../
./configure --prefix=/usr --exec-prefix=/usr/rrd1.2.15
make
make install
新版本rrdtool的可执行文件安装在/usr/rrd1.2.15/bin中,系统原有的在/usr/bin中。需要修改cacti的设置,用新编译好的rrdtool版本替换原有版本。

四.修改Cacti的rrdtool设置和cacti的host.php文件,使其支持中文设备名和图片中输出中文
1.修改Cacti的rrdtool设置
请登陆Cacti,在主页的右边点击setting,选择paths页(console>>setting>>paths)
将RRDTool Binary Path修改为:/usr/rrd1.2.15/bin/rrdtool
还需要修改rrdtool的字体设置。
请登陆Cacti,在主页的右边点击setting,选择paths页(console>>setting>>paths)
将RRDTool Default FontPath修改为:/usr/share/fonts/zh_CN/TrueType/gkai00mp.ttf
点击save。

2.修改cacti的host.php文件
修改host.php文件852行,原内容为:
                     <a href="host.php?action=edit&id=<?phpprint $host["id"];?>"><?php print eregi_replace("(" .preg_quote($_REQUEST["filter"]) . ")", "<spanstyle='background-color: #F8D93D;'>\\1</span>",$host["description"]);?></a>
修改为:
                     <a href="host.php?action=edit&id=<?phpprint $host["id"];?>"><?php if ($_REQUEST["filter"] != ""){ print eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")","<span style='background-color: #F8D93D;'>\\1</span>",title_trim($host["description"], 200)); }else{ printtitle_trim($host["description"], 200); } ?></a>
采用了graphs.php文件中的做法,使用title_trim()来显示汉字,可能比aben直接删除的方法更好吧。

五.其他
1.修改cacti默认字体的大小
cacti默认的字体太小,看起来伤眼睛。请修改include/main.css文件,将第一段的
body, table, tr, td {
       font-family: Verdana, Arial, Helvetica,sans-serif;
       font-size: 10px;
}
修改为
body, table, tr, td {
       font-family: Verdana, Arial, Helvetica,sans-serif;
       font-size: 12px;
}

六.感谢
1.感谢Cacti Group ,其他的话就不用说了。
2.如果你觉得该篇文章有用,那大部分都是JimmyConner的功劳,有他,才又如此方便的CactiEZ。请在JimmyConner的网站论坛上向他表示感谢,并说明你是中国用户!
3.abel和zqli提供了修改rrdtool源代码的方法,本文只是将其方法应用到了rrdtool1.2.15版。abel对rrdtool有深入研究,我只是位门外汉,取巧借用他的成果而已,向他表示敬意。
4.在字体设置方面参考了几位台湾朋友的帖子,虽然没有直接用上,但是提示我走的是弯路。向台湾的朋友致敬,喜欢他们的探索、原创和分享精神。
5.CU论坛的朋友让我认识了cacti,并逐渐学会使用,感谢CUer。

该帖只是一些简单的安装和修改,高手见笑。如果对这篇文章有任何建议和疑问,欢迎指出。也希望大家补充一些内容。

另外,我一直想对cacti进行汉化。
www.cacti.com.cn太让人失望了。希望熟悉php,想对Cacti汉化的朋友能够聚集在一起。最好对制作linux发行版熟悉的朋友也能参与进来,做一个类似CactiEZ的中文版。


 

文章引用自: http://bbs.chinaunix.net/viewthread.php?tid=853878&highlight=cacti
  评论这张
 
阅读(197)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018