以下基于Centos5.0 下,完整教程,其中有可能省略了解压缩包的命令,
如果是,希望大家自己弄,就不用我说了吧。
这个过程是我2007年Array月-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-Array.6.el5.noarch.rpm
一,安装 Mysql
1. 从
下载二进制版的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
Array. 设定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/rc.d/init.d/mysqld
# chmod 700 /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --level 345 mysqld on
14. 启动mysqld服务
# service mysqld start
二,编译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
使用编辑器打开httpd文件,并在第一行#!/bin/sh下增加两行文字如下
# chkconfig: 345 80 15
# description: Apache
接着注册该服务
#chkconfig --add httpd
三,编译 PHP
注:直接复制以下代码,有可能因为空格及回车问题导致不完整,请仔细验证
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-mysqli=/usr/local/mysql/bin/mysql_config --with-xmlpc --enable-sockets --enable-mbstring --with-pcre-regex
# make
# make install
# cp /usr/local/php/bin/* /usr/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
AddType application/x-httpd-php-source .phps
四,编译安装libpng,freetype,libart_lgpl,zlib
编译 zlib
#./configure --prefix=/usr
#make
#make install
编译 libpng
#cp scripts/makefile.gcmmx makefile
#./configure --disable-shared --prefix=/usr
#make
#make install
编译 freetype
#./configure --disable-shared --prefix=/usr
#make
#make install
编译 libart_lgpl
#./configure --disable-shared --prefix=/usr
#make
#make install
五,编译 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日)"},
行5Array: {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");
# ./configure
# make
# make install
# cp /usr/local/rrdtool/bin/* /usr/local/bin/ //复制文件
# ln -s /usr/local/rrdtool-1.2.6 /usr/local/rrdtool //改名
六,上传cacti,以及导入数据库等
按我的教程,上传文件到 /usr/local/apache/htdocs/cacti 就可以用ip访问了
apache的配置和cacti的.php文件如何连数据库我就不说了
1,建mysql数据库,建议使用phpmyadmin,那些命令太烦了,但注意下图
七,设置snmp
修改 /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
将该行前面的"#"去掉.
八,设置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-Array.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 模板)
那你要先建立 数据源
再建立 图象
具体自己研究。。