作者:无暇 (整理+原创+修改)
原创:http://www.chinacentos.com/
以下基于Centos5.0 下,完整教程,其中有可能省略了解压缩包的命令,
如果是,希望大家自己弄,就不用我说了吧。
这个过程是我2007年9月-10月间,自己通过找教程弄来的,
按这个过程走100%可以完成安装,并画出中文图
前言,安装centos
安装时一般最小安装,但gcc等工具要装上,还有 snmp 软件包,这样避免装完以后再yum安装,而且据说yum等安装的snmp很多时候不是很好用,具体不知。
安装完以后,一般只留以下服务即可,并关闭防火墙。
crond
httpd //以后装的
iptables
kudzu
mysqld //以后装的
network
sendmail
snmpd
snmptrapd
sshd
yum-updatesd
使用软件如下
cacti-0.8.6j-cn.tar.gz
freetype-2.3.5.tar.gz
httpd-2.2.6.tar.gz
libart_lgpl-2.3.17.tar.gz
libpng-1.2.18.tar.gz
zlib-1.2.3.tar.gz
mysql-5.0 .45-linux-i686-glibc23.tar.gz
php-5.1.6.tar.gz
rrdtool-1.2.23.tar.gz
fonts-chinese-3.02-9.6.el5.noarch.rpm
安装libxml,RedHat AS 4默认安装libxml包,但版本太低,PHP5需要更高版本的libxml包。
# tar –zxvf libxml2-2.6.25.tar.gz
# cd libxml2-2.6.25
# ./configure
# make
# make install
一,安装 Mysql
1. 从http://www.mysql.com/ 下载二进制版的Mysql安装包 //这个MYSQL是二进制版的,不用编译
2.将mysql的压缩包复制到/usr/local/ 目录
# cp mysql-standard-5.0.15-linux-gnu-i686-glibc23.tar.gz /usr/local
3. 解压缩到/usr/ocal/下并改名为mysql,并为了节省空间,删除mysql安装包
# tar xzvf mysql-standard-5.0.15-linux-gnu-i686-glibc23.tar.gz
# mv mysql-standard-5.0.15-linux-gnu-i686-glibc23 mysql
# rm mysql-standard-5.0.15-linux-gnu-i686-glibc23
4.建立mysql组,建立mysql用户并且加入到mysql组中
# groupadd mysql
# useradd mysql -g mysql
5. 覆盖/etc/my.cnf
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
6. 进入mysql目录初试化表并且规定用mysql用户来访问。初始化表以后就开始给mysql和root用户设定访问权限
# cd /usr/local/mysql
# ./scripts/mysql_install_db --user=mysql
7. 设定root能访问/usr/local/mysql
# chown -R root .
8. 设定mysql用户能访问/usr/local/mysql/data ,里面存的是mysql的数据库文件.这个目录是在/etc/my.cnf中有配置,在mysql_install_db时产生
# chown -R mysql data
9. 设定mysql用户能访问/usr/local/mysql/data/mysql下的所有文件
# chown -R mysql data/.
10.设定mysql组能够访问/usr/local/mysql
# chgrp -R mysql .
11. 运行mysql,如果没有问题的话,应该会出现类似这样的提示:
[1] 42264
Starting mysqld daemon with databases from /usr/local/mysql/var
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
如果出现 mysql ended这样的语句,表示Mysql没有正常启动,你可以到log中查找问题,Log文件的通常在/etc/my.cnf中配置。大多数问题是权限设置不正确引起的。
12. 用如下命令修改MYSQL密
# /usr/local/mysql/bin/mysqladmin -u root password yourpassword
13. copy编译目录的一个脚本,设置使mysql每次启动都能自动运行
# cp support-files/mysql.server /etc/init.d/mysqld
# chmod 700 /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --level 345 mysqld on
14. 进入mysql
# mysql –uroot -p
二,编译Apache
# ./configure --prefix=/usr/local/apache --enable-so
# make
# make install
# cp /usr/local/apache/bin/* /usr/bin/
# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
注意,如果是第二次安装apache会提示出错:apr之类的,请用下面的方式安装:
安装APR
cd srclib/apr
#./configure --prefix=/usr/local/apr
#make
#make install
安装APR-util
cd srclib/apr-util
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#make
#make install
然后进入apache编译目录
./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=all --enable-cgi --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/bin
使用编辑器打开httpd文件,并在第一行#!/bin/sh下增加两行文字如下
# chkconfig: 345 80 15
# description: Apache
接着注册该服务
#chkconfig --add httpd
三,编译 PHP
安装PHP前需要安装一些支持库:
1).安装zlib
tar zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure --prefix=/usr/local/zlib
make
make install
2).安装libpng
tar zxvf libpng-1.2.16.tar.tar
cd libpng-1.2.16
cd scripts/
mv makefile.linux ../makefile
cd ..
make
make install
注意,这里的makefile不是用./configure生成,而是直接从scripts/里拷一个
3).安装freetype
tar zxvf freetype-2.3.4 .tar.gz
cd freetype-2.3.4
./configure --prefix=/usr/local/freetype
make
make install
4).安装Jpeg
tar -zxf jpegsrc-1.v6b.tar.gz
cd jpeg-6b/
mkdir /usr/local/libjpeg
mkdir /usr/local/libjpeg/include
mkdir /usr/local/libjpeg/bin
mkdir /usr/local/libjpeg/lib
mkdir /usr/local/libjpeg/man
mkdir /usr/local/libjpeg/man/man1
//可以用mkdir -p /usr/local/libjpeg/man/man1 一步创建多层目录
./configure --prefix=/usr/local/libjpeg --enable-shared --enable-static
make && make install
注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库
5).安装Fontconfig
tar -zxvf fontconfig-2.5.91.tar.gz
cd fontconfig-2.5.91
./configure --prefix=/usr/local/fontconfig --with-freetype-config=/usr/
local/freetype/bin/freetype-config
make
make install
6).安装GD
tar -zxvf gd-2.0.34.tar.gz
cd gd-2.0.34
./configure --with-fontconfig=/usr/local/fontconfig --with-png --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/libjpeg
make
make install
编译时显示以下信息:
** Configuration summary for gd 2.0.34:
Support for PNG library: yes
Support for JPEG library: yes
Support for Freetype 2.x library: yes
Support for Fontconfig library: yes
Support for Xpm library: no
Support for pthreads: yes
7).安装libxml,RedHat AS 4默认安装libxml包,但版本太低,PHP5需要更高版本的libxml包。
# tar –zxvf libxml2-2.6.25.tar.gz
# cd libxml2-2.6.25
# ./configure
# make
# make install
8).安装libart_lgpl-2.3.17
# tar –zxvf libart_lgpl-2.3.17
# cd libart_lgpl-2.3.17
# ./configure --prefix=/usr/local/libart-2.0
# make
# make install
下面开始安装php:
注:直接复制以下代码,有可能因为空格及回车问题导致不完整,请仔细验证
#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-gd --with-pcre-regex --enable-mbstring=all --with-libmbfl --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --with-freetype-dir=/usr/local/freetype –with-mail --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr --with-zlib-dir=/usr/local/zlib --enable-xml --enable-sockets --enable-ucd-snmp-hack
# make
# make install
# cp /usr/local/php/bin/* /usr/bin
# cp /usr/local/php/bin/* /usr/local/bin
# cp php.ini-dist /usr/local/php/lib/php.ini
# vi /usr/local/apach/conf/httpd.conf
添加如下2行:(添在AddType *** 之后,自己看)
AddType application/x-httpd-php .php .phtml .php3 .php4 .php5
AddType application/x-httpd-php-source .phps
四,编译 rrdtool
解压缩后,修改rrd_graph.c.将(行数因版本问题,可能不同,请自己看好),然后再编译
行51: {60, 24*3600, TMT_MINUTE,30, TMT_HOUR,2, TMT_HOUR,4, 0,"%d日(%H:%M)"},
行53: {180, 24*3600, TMT_HOUR,1, TMT_HOUR,6, TMT_HOUR,12, 0,"%d日(%H:%M)"},
行55: {600, 0, TMT_HOUR,6, TMT_DAY,1, TMT_DAY,1, 24*3600,"周%a(%d日)"},
行56: {1200, 0, TMT_HOUR,6, TMT_DAY,1, TMT_DAY,1, 24*3600,"%d日"},
行57: {1800, 0, TMT_HOUR,12, TMT_DAY,1, TMT_DAY,2, 24*3600,"周%a(%d日)"},
行58: {2400, 0, TMT_HOUR,12, TMT_DAY,1, TMT_DAY,2, 24*3600,"周%a(%d日)"},
行59: {3600, 0, TMT_DAY,1, TMT_WEEK,1, TMT_WEEK,1, 7*24*3600,"%V周"},
行60: {3*3600, 0, TMT_WEEK,1, TMT_MONTH,1, TMT_WEEK,2, 7*24*3600,"%V周"},
行3065: //setlocale(LC_TIME,"");
秆3066: #ifdef HAVE_MBSTOWCS
行3067: setlocale(LC_ALL,"zh_CN");
先把freetype2的库文件环境变量设置好:(否则会报错找不到freetype2或者libart)
#ln -s /usr/local/freetype/include/freetype2 /usr/local/include/freetype2
#ln -s /usr/local/freetype/include/freetype2 /usr/include/freetype2
#cp /usr/local/freetype/lib/libfreetype.a /usr/lib
#ln -s /usr/local/include/libart-2.0 /usr/include/libart-2.0
#cp /usr/local/libart-2.0/lib/libart_lgpl_2.a /usr/lib
#cd /usr/temp/rrdtool-1.2.26
# ./configure --prefix=/usr/local/rrdtool
# make
# make install
# cp /usr/local/rrdtool/bin/* /usr/local/bin/ 复制文件
# ln -s /usr/local/rrdtool-1.2.6 /usr/local/rrdtool 改名
六,安装cacti
# tar zxvf cacti-0.8.7b.tar.gz
# cp -r cacti-0.8.7b /usr/local/apache/htdocs/cacti
# cd /usr/local/apache/htdocs/cacti
# vi /usr/local/apache/htdocs/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
//为cacti用户添加cron任务
# su – cacti
# crontab –e
*/1 * * * * /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
4.安装Cactid
CACTID 的安装需要以下支持:
o net-snmp-devel (需要编译安装net-snmp时添加--enable-developer选项)
o mysql
o mysql-devel (mysql源文件编译安装后默认支持)
o openssl-devel (Redhat默认安装)
# tar -zxvf cacti-cactid-0.8.6i.tar.gz
# cd cacti-cactid-0.8.6i
# ./configure --with-mysql=/usr/local/mysql --with-snmp=/usr/local/net-snmp
# make
//这时你将在此目录下看到多出了cactid、cactid.conf两个文件
# mkdir /usr/local/cactid
# cp cactid cactid.conf /usr/local/cactid
# vi /usr/local/cactid/cactid.conf //修改cactid配置文件
DB_Host 127.0.0.1
DB_Database cacti
DB_User cacti
DB_Pass cacti
七,上传cacti,以及导入数据库等
创建cacti数据库
1、创建MYSQL数据库:
mysql –user=root -p create cacti
2、导入cacti标准库:
mysql –uroot –p cacti < cacti.sql(注意cacti.sql文件是否为可读)
3、创建一个MYSQL用户名和密码:
mysql –user=root mysql
GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY ‘cacti’;
flush privileges;
4、编辑/var/www/cacti/inlude/config.php,指定MYSQL用户名/密码和数据库名称
$database_default = ‘cacti’;
$database_hostname = ‘localhost’;
$database_username = ‘cacti’;
$database_password = ‘cacti’;
按我的教程,上传文件到 /usr/local/apache/htdocs/cacti 就可以用ip访问了
安装cacti的插件:
1、 首先上传cacti-plugin-0.8.6j-cn.diff文件至cacti安装目录
运行命令patch -p1 -N < cacti-plugin-0.8.6j-cn.diff
2、 上传thold并解压
3、 解压后会出现一个thold文件夹,将该文件夹复制到/cacti/plugins文件夹,然后编辑/cacti/include/config.php文件,
在 $plugins = array();下面加上:
$plugins[] = 'thold';
(如果安装monitor的话加上 $plugins[] = 'monitor';)
4、 按照你自己apache的结构目录修改config.php
例如如果是这样的结构:
http://servername/cacti/
那就找到下面这行配置并更改如下:
$config['url_path'] = "/cacti/";
保存即可。
# tar -zxvf cacti-cactid-0.8.6i.tar.gz
安装cactid
# cd cacti-cactid-0.8.6i
# ./configure --with-mysql=/usr/local/mysql --with-snmp=/usr/local/net-snmp
# make
//这时你将在此目录下看到多出了cactid、cactid.conf两个文件
# mkdir /usr/local/cactid
# cp cactid cactid.conf /usr/local/cactid
# vi /usr/local/cactid/cactid.conf //修改cactid配置文件
DB_Host 127.0.0.1
DB_Database cacti
DB_User cacti
DB_Pass cacti
apache的配置和cacti的.php文件如何连数据库我就不说了
1,建mysql数据库,建议使用phpmyadmin,那些命令太烦了,但注意下图
七,设置snmp
aix上的snmp安装需要如下参数
--prefix=/usr/local/net-snmp --with-perl-modules --without-kmem-usage --enable-ipv6 --enable-embedded-perl --enable-shared --with-mib-modules=ucd-snmp/diskio
修改 /etc/snmp/snmpd.conf
1、查找以下字段:
代码:
# sec.name source community
com2sec notConfigUser default public
将"comunity"字段改为你要设置的密码.比如"chinacentos".
将“default”改为你想哪台机器可以看到你的snmp信息,如10.10.10.10。授权服务器IP
2、查找以下字段:代码:
####
# Finally, grant the group read-only access to the systemview view.
# group context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact systemview none none
将"read"字段改为all.
代码:
#access notConfigGroup "" any noauth exact all none none
3、查找以下字段:代码:
## incl/excl subtree mask
#view all included .1 80
将该行前面的"#"去掉.
4、查找以下字段:代码#
#name incl/excl subtree mask(optional)
添加一行view all included .1
变成
#name incl/excl subtree mask(optional)
view all included .1
5、查找一下字段:代码
#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
将该行前面的"#"去掉.
6、启动snmp
#ps –ef|grep snmp
#kill -9 查出来的id
#snmpd -d –L
检测snmp是否已经能够工作
snmpwalk -v 2c -c public localhost if
八,设置poller.php 自动采集数据
#crontab -u root -e
然后输入 (/5,是5分钟执行一次的意思,可以改你要的时间。具体用法可以baidu一下crontab)
为什么用root执行,简单,如果有条件,就单独建用户,不过我觉得没什么。
如果单独建用户,上边的命令就要改成 -u user -e ,如果用root来执行这个命令,还要再加一下
chown -R user catci/rra cacti/log 呵呵
*/5 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
手工执行以上命令是
#/usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php ,也是同样效果
这里插一条,要安装字体库
# rpm -ivh fonts-chinese-3.02-9.6.el5.noarch.rpm
九,使用cacti,并设置流量图
安装完cacti以后,点 全局配置-路径
/usr/share/fonts/zh_CN/TrueType/ukai.ttf 这个是设置中文字体文件的路径,自己修改。
点 图象输出 ,输出方式为 输出到本地
1,登陆cacti,点 新建设备
描述,设备名,都写ip地址就行,好区分
设备模板选择 uct/net snmp 设备
“SNMP连接字符串” 这里就是叫你改的snmpd.conf 的里边那个密码
其他默认
点 创建 以后,再点 为此设备生成图像
数据查询 [SNMP - 接口统计] ,这里选择 eth0 ,就是第二个,再点 创建 ,这样,网卡的流量图就有了,等几分钟,就有图了。
这个是建立网卡的,这个设置比较特殊,如果要看cpu和内存的图(使用 ucd/net 模板)
那你要先建立 数据源
再建立 图象
具体自己研究。。