免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6969 | 回复: 5
打印 上一主题 下一主题

安装CactiEZ0.2b和让其支持中文的方法(对Cacti感兴趣的朋友进来) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-09 16:10 |只看该作者 |倒序浏览
安装CactiEZ0.2b和让其支持中文的方法
CactiEZ 是一个专门用作运行cacti的linux发行版,该版本由Jimmy Conner 制作发行,基于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 install ttfonts-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 Font Path修改为:/usr/share/fonts/zh_CN/TrueType/gkai00mp.ttf
点击save。

2.修改cacti的host.php文件
修改host.php文件852行,原内容为:
                        <a class="linkEditMain" href="host.php?action=edit&id=<?php print $host["id"];?>"><?php print eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $host["description"]);?></a>
修改为:
                        <a class="linkEditMain" href="host.php?action=edit&id=<?php print $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{ print title_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.如果你觉得该篇文章有用,那大部分都是Jimmy Conner的功劳,有他,才又如此方便的CactiEZ。请在Jimmy Conner的网站论坛上向他表示感谢,并说明你是中国用户!
3.abel和zqli提供了修改rrdtool源代码的方法,本文只是将其方法应用到了rrdtool1.2.15版。abel对rrdtool有深入研究,我只是位门外汉,取巧借用他的成果而已,向他表示敬意。
4.在字体设置方面参考了几位台湾朋友的帖子,虽然没有直接用上,但是提示我走的是弯路。向台湾的朋友致敬,喜欢他们的探索、原创和分享精神。
5.CU论坛的朋友让我认识了cacti,并逐渐学会使用,感谢CUer。

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

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

[ 本帖最后由 badseed 于 2006-11-9 18:07 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-11-09 16:26 |只看该作者
好,真是好,十分需要这样的东东

论坛徽章:
0
3 [报告]
发表于 2006-11-09 18:11 |只看该作者
整篇帖子发了半小时在发好,真是晕倒

论坛徽章:
0
4 [报告]
发表于 2006-11-09 23:13 |只看该作者
过两天我发个中文的catci

论坛徽章:
0
5 [报告]
发表于 2006-11-24 16:56 |只看该作者
唉,看来只能12.1号交货了,现在只剩下体力劳动的活了.

论坛徽章:
0
6 [报告]
发表于 2006-12-07 09:48 |只看该作者
rrdtool 我按照上述的方法修改之后 重新编译安装 还是显示的乱码  中文字体已指定了
wysilly  的汉化版 满好用的 非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP