免费注册 查看新帖 |

Chinaunix

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

RedHat AS 4下安装支持中文的Cacti [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-28 09:53 |只看该作者 |倒序浏览
在RedHat AS 4下安装支持中文的Cacti

                                                                                                           LEO
                                                                                                    2006-4-28

安装RedHat AS 4原始系统,不要选择Web服务器的所有包,选择Mysql开头的所有包,选择开发工具上面的所有包.

安装Apache
tar -zvxf httpd-2.2.tar.gz
cd httpd-2.2
./configure --prefix=/usr/local/apache --enable-so
make
make install

安装Net-snmp
在disk 2上执行
# rpm -ivh lm_sensors-2.8.7-2.i386.rpm
在disk 2,disk 4上执行
# rpm -ivh net-snmp*
# rpm -qa | grep net-snmp
net-snmp-libs-5.1.2-11
net-snmp-perl-5.1.2-11
net-snmp-5.1.2-11
net-snmp-devel-5.1.2-11
net-snmp-utils-5.1.2-11
# vi /etc/snmp/snmpd.conf
更改 1、com2sec notConfigUser default     public
    改为:com2sec notConfigUser   127.0.0.1     public
    2、access notConfigGroup ""     any     noauth   exact systemview none none
    改为:access notConfigGroup ""     any     noauth   exact all none none
    3、#view all   included .1       80
    将前面的 # 注释 去掉。
保存退出 :wq
# service snmpd restart
# service mysqld start
/usr/local/apache/bin/apachectl start
chkconfig --level 345 snmpd on
chkconfig --level 345 mysqld on

* 设置环境变量
[root@leo ~]# mkdir /tmp/rrdbuild
[root@leo ~]# mkdir /usr/local/rrdtool-1.2.12
BUILD_DIR=/tmp/rrdbuild
INSTALL_DIR=/usr/local/rrdtool-1.2.12
* zlib
cd $BUILD_DIR
wget http://people.ee.ethz.ch/oetiker ... s/zlib-1.2.2.tar.gz
tar  zxf zlib-1.2.2.tar.gz
cd zlib-1.2.2
env CFLAGS="-O3 -fPIC" ./configure --prefix=$BUILD_DIR/lb
make
make install
* libpng
cd $BUILD_DIR
wget http://people.ee.ethz.ch/oetiker ... 1.2.8-config.tar.gz
tar zxvf libpng-1.2.8-config.tar.gz
cd libpng-1.2.8-config
env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib"  CFLAGS="-O3 -fPIC" \
./configure --disable-shared --prefix=$BUILD_DIR/lb
make
make install
* freetype
cd $BUILD_DIR
wget http://people.ee.ethz.ch/oetiker ... eetype-2.1.9.tar.gz
tar zxvf freetype-2.1.9.tar.gz
cd freetype-2.1.9
env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \
./configure --disable-shared --prefix=$BUILD_DIR/lb
make
make install
* libart_lgpl
cd $BUILD_DIR
wget http://people.ee.ethz.ch/oetiker ... _lgpl-2.3.17.tar.gz
tar zxvf libart_lgpl-2.3.17.tar.gz
cd libart_lgpl-2.3.17
env CFLAGS="-O3 -fPIC" ./configure --disable-shared --prefix=$BUILD_DIR/lb
make
make install
* 再次设置环境变量
IR=-I$BUILD_DIR/lb/include
CPPFLAGS="$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng"
LDFLAGS="-L$BUILD_DIR/lb/lib"
CFLAGS=-O3
export CPPFLAGS LDFLAGS CFLAGS
* rrdtool
mkdir $BUILD_DIR/rrdtool-1.2.12
cd $BUILD_DIR/rrdtool-1.2.12
wget http://211.155.16.55/linux_soft/rrdtool-1.2.12.tar.gz
tar zxvf rrdtool-1.2.12.tar.gz
cd rrdtool-1.2.12/src/

rrdtool 1.2.12 中文化 Patch , 若不懂 patch 请先研究用法
(建议手动修改源代码)
新版的 rrd (1.2.x) 调用 FT (freetype2) 做 TTF 输出
所以程序用 1.0.x 版完全不能适用哦,切记

# diff -u rrd_gfx.c.bak rrd_gfx.c
--- rrd_gfx.c.bak       2005-12-19 04:30:45.000000000 +0800
+++ rrd_gfx.c   2006-04-23 11:05:47.000000000 +0800
@@ -384,6 +384,7 @@
   int          n;
   int           error;
   int        gottab = 0;
+  wchar_t* w_text;

#ifdef HAVE_MBSTOWCS
   wchar_t      *cstr;
@@ -414,6 +415,8 @@
   string->transform.xy = (FT_Fixed)(-sin(M_PI*(rotation)/180.0)*0x10000);
   string->transform.yx = (FT_Fixed)( sin(M_PI*(rotation)/180.0)*0x10000);
   string->transform.yy = (FT_Fixed)( cos(M_PI*(rotation)/180.0)*0x10000);
+  w_text = (wchar_t) calloc (string->count,sizeof(wchar_t));
+  mbstowcs(w_text,text,string->count);

   use_kerning = FT_HAS_KERNING(face);
   previous    = 0;
@@ -443,7 +446,7 @@
     glyph->pos.x = 0;
     glyph->pos.y = 0;
     glyph->image = NULL;
-    glyph->index = FT_Get_Char_Index( face, letter );
+    glyph->index = FT_Get_Char_Index( face, w_text[n]);

     /* compute glyph origin */
     if ( use_kerning && previous && glyph->index ) {
@@ -516,6 +519,7 @@
       string->width = string->bbox.xMax - string->bbox.xMin;
   } */
   string->height = string->bbox.yMax - string->bbox.yMin;
+  free(w_text);
   return string;
}

diff -u rrd_graph.c.bak rrd_graph.c
--- rrd_graph.c.bak     2005-12-19 04:30:45.000000000 +0800
+++ rrd_graph.c 2006-04-23 11:05:53.000000000 +0800
@@ -2871,7 +2871,8 @@
     tzset();
#endif
#ifdef HAVE_SETLOCALE
-    setlocale(LC_TIME,"");
+    //setlocale(LC_TIME,"");
+    setlocale(LC_ALL,"zh_CN.GB2312");
#endif
     im->yorigin=0;
     im->xorigin=0;

打完补丁后,继续
cd /tmp/rrdbuild/rrdtool-1.2.12/rrdtool-1.2.12
./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl
make clean
make
make install
* GD
cd $BUILD_DIR
wget http://211.155.16.55/linux_soft/ ... er/gd-2.0.33.tar.gz
tar zxvf gd-2.0.33.tar.gz
cd gd-2.0.33
./configure --prefix=/usr/local/gd --with-freetype=/usr/local/freetype --
with-libpng=/usr/local/libpng
make
make install

PHP:
cd $BUILD_DIR
wget http://211.155.16.55/linux_soft/php-5.1.2.tar.gz
tar zxvf php-5.1.2.tar.gz
cd php-5.1.2
./configure --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/lib/mysql --with-gd=/usr/local/gd --with-zlib --with-png=/usr/local/libpng --with-jpeg --with-freetype=/usr/local/freetype --enable-sockets
make
make install
cp ./php.ini-dist /usr/local/lib/php.ini

修改httpd.conf
#vi /usr/local/apache/conf/httpd.conf
加载php模块,去掉注释“#”,如没有此行,请加上。
LoadModule php5_module        modules/libphp5.so
加上此两行
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

DirectoryIndex index.html
在后面加上 index.php
如下:
DirectoryIndex index.html index.php
重启Apache生效

Cacti:
cp cacti-0.8.6g.tar.gz /usr/local/apache/htdocs
cd /usr/local/apache/htdocs
tar zxvf cacti-0.8.6g.tar.gz
mv cacti-0.8.6g cacti
cd cacti
mysqladmin -uroot create cacti
mysql -uroot cacti < cacti.sql
创建帐号:
mysql -uroot
grant all privileges on cacti.* to cactiuser@localhost identified by 'cacti';
flush privileges;
exit
useradd cactiuser
chown –R cactiuser rra/ log/
vi ./include/config.php
$database_type = “mysql”;
$database_default = “cacti”;
$database_hostname = “localhost”;
$database_username = “cactiuser”;
$database_password = “cacti”;
vi /etc/crontab
*/5 * * * * cactiuser /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php >  /dev/null 2>&1

我们发现,如果将一个device以中文命名,会在devices页面出现乱码,而且图像也会出现乱码。为了解决这些问题,实现使用中文的目的,我们需要修改cacti和rrdtool的代码,以让其支持中文。
注意:我这里所说的“支持中文”只是让cacti能显示中文,而不是将cacti全部汉化。如果有朋友有兴趣想要为cacti的汉化出一份力的话,可以联系其作者。

软件版本:
cacti-0.8.6g
rrdtool-1.2.12
支持中文环境的linux

最后在cacti的“setting”-》“Paths”-》“RRDTool Default Font Path”中填上中文的fonts,比如:“/usr/share/fonts/zh_CN/TrueType/gbsn00lp.ttf”。

在支持中文环境的linux上能成功实现中文显示。

输入下面地址测试:
http://127.0.0.1/cacti/
默认的用户名和密码都是admin.

[ 本帖最后由 zqli 于 2006-4-28 10:18 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-04-28 10:43 |只看该作者

图示

cacti截图

cacfti.jpg (42.74 KB, 下载次数: 16)

cacti

cacti

cacti2.jpg (44.54 KB, 下载次数: 14)

cacti

cacti

论坛徽章:
0
3 [报告]
发表于 2006-04-28 11:08 |只看该作者
不错的东西,cacti的华丽的颜色还不错

论坛徽章:
0
4 [报告]
发表于 2006-04-28 11:36 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP