分类: 系统运维
2011-04-19 15:17:36
项目环境:搭建Linux(Fedora Core release 6 Kernel 2.6.18)+Apache2+Mysql4+Php5+zabbix1.6系统环境实现网络状况监控
整理人:dagun 时间:2011年4日
技术交流QQ流群:75719734
此文档主要做技术交流用,如果转载请注明出处。
安装所需要其它软件包,如果都装了,其实应该没什么问题的。其它一些细节地方,会在最近也贴到网络上。
希望大家都多留言,指正不妥之处。
配置mysql的my.cnf配置文件,加入了utf-8支持。
编译mysql中加入中文写入支持,以及linux大文件写入数据支持。
1.2、Mysql5数据库安装CFLAGS=”-pipe –Wall -O2” -D_FILE_OFFSET_BITS=64
-D_LARGE_FILE //mysql支持大文件>2G” ./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_bin
--with-extra-charsets=big5,ascii,gb2312,gbk,utf8,latin1 --enable-thread-safe-client
\ //编译线程安全版的客户端库
--without-debug \ //关闭debug功能 --localstatedir=/data/mysqldata
\ //设定数据库文件目录
make //编译
make install //安装
cd /
mkdir /data //设置数据库位置,自定义
mkdir /data/mysqldata
/usr/local/mysql/bin/mysql_install_db //初始化授权
注释:这一命令如果出错(...gethostname...)
修改/etc/hosts中第一行开头为:
127.0.0.1
chown –R root:root /usr/local/mysql //文件属性改为root用户
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf //复制配置文件
----------------------------------启动MySQL服务----------------------------------
/usr/local/mysql/bin/mysqld_safe
--user=root & //启动MySQL
----------------------------------修改MySQL密码----------------------------------
/usr/local/mysql/bin/mysqladmin
-uroot password 123456//修改密码
----------------------------------关闭MySQL服务----------------------------------
/usr/local/mysql/bin/mysqladmin
-uroot -pmysqlsecret shutdown //关闭MySQL
具体导入数据文件过程和设置访问mysql用户,请参考《安装补充说明》
2、安装Apache 2.1、编译安装进入apache安装目录
#cd httpd-2.2.9
配置apache
#./configure --prefix=/usr/local/apache --enable-modules --enable-ssl –enable-so
编译
#make
生成到系统
#make install
试试能否启动apache, 如果启动了,可以打开浏览器,就可以看到默认的apache页面了
#/usr/local/apache/bin/apachectl start
随系统启动(终端未实现,图形界面下用服务管理器打开)
如果没起来,看看日志:more
/usr/local/apache/logs/error_log,可能是这台机器80端口被别的程序(如resin)占用了,修改一下配置文件:
vi /usr/local/apache/conf/httpd.conf
注释:安装过程中,如果少某些头文件或者库文件,可以通过RPM包安装
#rpm -qa |grep
openssl
返回:openssl-0.9.7a-43.2 openssl-devel-0.9.7a-43.2 openssl096b-0.9.6b-22.3
xmlsec1-openssl-1.2.6-3
#rpm -qa | grep curl
返回:curl-7.12.1-5.rhel4
curl-devel-7.12.1-5.rhel4
#rpm -qa | grep zlib
返回:zlib-devel-1.2.1.2-1.2 zlib-1.2.1.2-1.2
#rpm -qa | grep
libpng
返回:libpng-1.2.7-1 libpng10-1.0.16-1
#rpm -qa | grep
freetype
返回:freetype-2.1.9-1
#rpm -qa | grep jpeg
返回:libjpeg-6b-33
#rpm -qa | grep
fontconfig
返回:fontconfig-2.2.3-7
./configure –enable-libxml2
#rpm -qa | grep
gettext
返回:gettext-0.14.1-13
(这个包不安装则会导致gd包无法安装(gd包依赖此包),而gd包是php必要的一个包,所以
#rpm -qa | grep gd
返回:gd-2.0.28-4
#rpm -qa | grep
libxml2
返回:libxml2-python-2.6.16-6
libxml2-devel-2.6.16-6 libxml2-2.6.16-6
#rpm -qa | grep
libxslt
返回:libxslt-1.1.11-1
#tar zxvf
openssl-0.9.8h.tar.gz
#cd openssl-0.9.8h
#./config --prefix=/usr/local/openssl
#make
#make install
#tar zxvf curl-7.14.0.tar.gz
#cd curl-7.18.2
#./configure --prefix=/usr/local/curl
#make
#make install
安装libpng和gd前需要先安装zlib。
#tar zxvf zlib-1.2.3.tar.gz
#cd zlib-1.2.3
#./configure --prefix=/usr/local/zlib
#make
#make install
#tar zxvf libpng-1.2.30.tar.gz
#cd libpng-1.2.30
#./configure --prefix=/usr/local/libpng
#make
#make install
3.6、Freetype的安装
#tar zxvf freetype-2.3.7.tar.gz
#cd freetype-2.3.7
#./configure
--prefix=/usr/local/freetype
#make
#make install
peg不能自己创建安装所需的目录,要提前创建好,通过mkdir -pv
/usr/local/jpeg/{,bin,lib,include,man/man1,man1} 命令创建即可。
#tar zxvf jpeg-6b.tar.gz
#cd jpeg/src
#mkdir -pv
/usr/local/jpeg/{,bin,lib,include,man/man1,man1}
#./configure --prefix=/usr/local/jpeg
--enable-shared --enable-static
#make
#make install
不装此包可能会出现在装gd包时出现 AM_ICON 的错误提示,此时需要安装 gettext 软件包,安装时间稍长
#tar zxvf gettext-0.17.tar.gz
#cd gettext-0.17
#./configure --prefix=/usr/local/gettext
#make
#make install
./configure –with-freetype-config=/usr/local/freetype/bin/freetype-config
make
make install
3.10、gdlib安装
有些库,可以—with-xpm=no不要安装,例如下面列出的yes和no
#tar zxvf gd-2.0.35.tar.gz
#cd gd-2.0.35
#CPPFLAGS="-I/usr/local/freetype/include -I/usr/local/jpeg/include
-I/usr/local/libpng/include -I/usr/local/gettext/include" ./configure
--prefix=/usr/local/gd2/ --with-zlib=/usr/local/zlib/ --with-png=/usr/local/libpng/
--with-jpeg=/usr/local/jpeg/ --with-freetype=/usr/local/freetype/
--with-gettext=/usr/local/gettext/
#make && make install
#cp gd.h /usr/local/gd2/lib/
** 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: no
Support for Xpm
library: no
Support for
pthreads:
yes
----------------------------------------
#make && make install
3.11、libxml2的安装
#tar zxvf libxml2-2.6.27.tar.gz
#cd libxml2-2.6.32
#./configure
--prefix=/usr/local/libxml2
#make
#make install
#tar zxvf libxslt-1.1.22.tar.gz
#cd libxslt-1.1.22
#./configure
--prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
#make && make install
#tar zxvf php-5.2.6.tar.gz
#cd php-5.2.6
#./configure --prefix=/usr/local/php
--with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/
--enable-ftp -–enable-sockets --with-libexpat-dir=/usr/local/lib –with-openssl=/usr/local/ssl
--with-gd=/usr/local/gd2/ --with-jpeg-dir=/usr/local/jpeg/
--with-zlib-dir=/usr/local/zlib/ --with-png-dir=/usr/local/libpng/
--with-freetype-dir=/usr/local/freetype/ --with-curl=/usr/local/curl --enable-bcmath
-–enable-soap –enable-mbstring
#make && make install
注意:在make过程中可能会有错误出现,可能是之前的xml的相关的包没有装好。
整合php和apache:
#cp /root/php-5.2.6/php.ini-dist
/usr/local/php/lib/php.ini
#vi /usr/local/php/lib/php.ini
1.将extension=php_mysql.dll前面的#去掉
2.将脚本超时的30s(PHP max execution time) 改成300s
3.将date.timezone ="asia/shanghai"
注意:/usr/local/apache/conf/httpd.conf加上如下代码使apache执行PHP
LoadModule php5_module modules/libphp5.so (这段代码肯定可以在httpd.conf找到,如果找不到则需要重新编译了)
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
(这两行是让apache知道php的文件类型)
DirectoryIndex index.html 改成DirectoryIndex index.html index.php
让apache默认的首页也支持index.php
注意:重启apache服务器,使得其加载php解析
在默认的/usr/local/apache/htdocs下建立info.php(给予777权限可执行权限)
phpinfo();
?>
3.14、net-snmp组件安装
先装beecrypt-4.1.2,因为net-snmp需要这个包
#tar zxvf beecrypt-4.1.2.tar.gz
#cd beecrypt-4.1.2
#./configure --prefix=/usr(默认是安装在/usr/local,我们需要安装在/usr目录下)
#make
#make install
安装net-snmp:
#tar -zxvf net-snmp-5.3.2.tar.gz
#cd net-snmp-5.3.2
#./configure
a.回车
b.输入 3
c.输入 root@
d.输入 Unknown
e.输入 /var/log/snmpd.log
f.输入 /var/net-snmp
2.ln -s libelf.so.1
/usr/lib/libelf.so //不知道什么意思
3.#make
4.#make install
3.15、 ssh开发库的安装
Zabbix支持版本Libssh2-1.2.4.tar.gz 版本必须高于version 1. 默认安装在/usr/local/lib下。
#./configure
#make
#make install
4、zabbix-1.6安装 4.1、建立数据库
解压缩mysqldata. 它包括mysql.sql, images_mysql.sql, data.sql等数据库文件.
登录mysql.
注释掉my.cnf中log-bin=mysql-bin
执行: mysql>use mysql;
mysql>create database zabbix default character set utf8; //支持utf8中文字符集
mysql>use zabbix;
mysql> source /路径/mysql.sql;
mysql>source /路径/data.sql;
mysql>source /路径/images_mysql.sql;
mysql>quit;
添加一个远程登录用户,用户导入备份的数据库.grant all privileges on *.* to 创建的用户名 @"%" identified by "密码";
flush privileges; * 刷新刚才的内容*
在window下导入数据库备份文件.
4.2、从windows下导入备份的数据库表sun 20090702 1719.sql和yang 20091126 1536.sql
5. useradd zabbix //创建zabbix用户
useradd apache -g daemon -M -r
6. mkdir /data
mkdir /data/mysqldata
/usr/local/mysql/bin/mysql_install_db
/usr/local/mysql/bin/mysqladmin -uroot password 123456
服务器端+客户端的编译:
#./configure --with-mysql --with-net-snmp=/usr/lcoa/net-snmp/bin/net-snmp-config --enable-server --enable-agent --prefix=/usr/local/zabbix --with-unixodbc –-with-openipmi
--with-ssh2=/usr/local/
make install后出现如下
Configuration:
Detected
OS: linux-gnu
Install path:
/usr/local/zabbix
Compilation arch: linux
Compiler:
gcc
Compiler flags: -g
-O2 -I/usr/include/mysql -g -pipe -m32 -march=i386 -mtune=pentium4
-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-fno-strict-aliasing -I/usr/include/rpm -I. -I/usr/local/include
Enable
server: yes
With database: MySQL
WEB Monitoring via: no
Native Jabber: no
SNMP:
net-snmp
IPMI:
no
Linker
flags:
-L/usr/lib/mysql -L/usr/lib -L/usr/local/lib -lnetsnmp
-lcrypto -lm -lcrypto -L/usr/local/lib -lnetsnmp -lcrypto -lm -lcrypto
Libraries:
-lm -lresolv -lmysqlclient
-lnetsnmp
Enable proxy: no
Enable
agent: yes
Linker flags:
Libraries:
-lm -lresolv
LDAP
support: no
IPv6 support: no
***********************************************************
* Now run
'make install'
*
*
*
* Thank you
for using
ZABBIX!
*
*
<>
*
***********************************************************
================================================
# make
# make install
20、zabbix 设置
#vi /etc/services
zabbix-agent 10050/tcp #Zabbix Agent
zabbix-agent 10050/udp #Zabbix Agent
zabbix-trapper 10051/tcp #Zabbix Trapper
zabbix-trapper 10051/udp #Zabbix Trapper
配置文件
#chown -R
zabbix.zabbix /usr/local/zabbix/
#cp misc/conf/zabbix_* /etc/zabbix/
#vi /usr/local/zabbix/zabbix_server.conf
ListenIP=127.0.0.1
ListenPort=10051
DBHost=localhost
DBName=zabbix
DBUser=root
DBPassword=123456
DBSocket=/tmp/mysql.sock
复制启动程序
cp misc/init.d/redhat/zabbix_server_ctl /etc/init.d/
cp misc/init.d/redhat/zabbix_agentd_ctl /etc/init.d/
vi /etc/init.d/zabbix_server_ctl
# base zabbix dir
BASEDIR=/usr/local/zabbix
# PID file
PIDFILE=/var/tmp/zabbix_server.pid
# binary file
ZABBIX_SUCKERD=$BASEDIR/sbin/zabbix_server
复制zabbix
mkdir
/usr/local/apache/htdocs/zabbix
cp -Rpf frontends/php/* /usr/local/apache/htdocs/zabbix
在浏览器里输入可以出现界面。接下来会做一些配置以及连接数据库的操作。
------安装中第3步检查配置信息无错误则会返回正常,可进行继续安装操作--------
PHP version: 5.2.6 Ok
PHP Memory limit: 128M
Ok
PHP post max size: 8M Ok
PHP max execution time: 300 sec Ok
PHP Databases support: MySQL Ok
PHP BC math
support yes Ok
GD Version: 2.0 or higher Ok
Image formats: PNG Ok
PHP Timezone: asia/shanghai Ok
-----------------
安装完成进入界面管理()
默认用户admin,密码zabbix