1. 环境准备
1.1 准备安装环境
操作系统:RedHat Enterprise Linux 6.8 x64
ZABBIX:ZABBIX 3.4.6
数据库:Oracle 12c
PHP:PHP7.2
Nginx: Nginx 1.12.2
所需操作系统用户:root zabbix oracle nginx
1.2 准备编译环境
1.2.1 配置操作系统
使用root
用户登录系统,并依次执行如下操作:
关闭SElinux
vim /etc/sysconfig/selinux
将enforcing
改为disabled
,如图所示:
停止防火墙:
chkconfig iptables off
service iptables stop
Copy
重启系统:
reboot
1.2.2 解决依赖关系
使用root
用户登录系统,并执行如下操作:
安装所需包,解决编译安装依赖关系:
yum -y groupinstall "Development Tools"
yum -y install vim ftp wget libxml2-devel libpng-devel freetype-devel libjpeg-devel libxml2-devel libpng-devel freetype-devel libjpeg-devel unixODBC* net-snmp* libssh2* OpenIPMI* openjdk* openldap* libcurl* libxml2* ncurses-devel libevent2
yum -y install libcurl-devel libXpm-devel libjpeg-devel libpng-devel freetype-devel libicu-devel openldap-devel.i686 libmcrypt-devel bzip2-devel openldap-devel.i686
安装五个孤立包(如使用光盘yum源,可能缺少如下包,可按照下列方法安装):
yum install http://mirrors.ustc.edu.cn/centos/6/os/x86_64/Packages/OpenIPMI-devel-2.0.16-14.el6.x86_64.rpm
yum install http://mirrors.ustc.edu.cn/centos/6/os/x86_64/Packages/libssh2-devel-1.4.2-2.el6_7.1.x86_64.rpm
yum install http://mirrors.ustc.edu.cn/centos/6/os/x86_64/Packages/libevent2-devel-2.0.21-2.el6.x86_64.rpm
yum install http://mirrors.ustc.edu.cn/centos/6/os/x86_64/Packages/pcre-devel-7.8-7.el6.x86_64.rpm
yum install http://mirrors.ustc.edu.cn/centos/6/os/x86_64/Packages/libicu-devel-4.2.1-14.el6.x86_64.rpm
1.2.3 下载编译需要的源码包
编译ZABBIX需要:
ZABBIX源代码:
https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.4.6/zabbix-3.4.6.tar.gz
fping(支持ZABBIX Web监控):
https://github.com/schweikert/fping/archive/v4.0.tar.gz
libssh2:
https://www.libssh2.org/download/libssh2-1.8.0.tar.gz
编译Nginx需要:
Nginx源代码:
https://nginx.org/download/nginx-1.12.2.tar.gz
Pcre源代码:
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz
Zlib源代码:
https://zlib.net/zlib-1.2.11.tar.gz
Openssl源代码:
https://www.openssl.org/source/openssl-1.1.0g.tar.gz
编译PHP需要:
PHP源代码:
http://cn2.php.net/distributions/php-7.2.1.tar.gz
1.2.4 创建及配置编译用户
创建zabbix
用户
useradd zabbix
passwd zabbix
修改用户环境变量:
su – zabbix
vim ~/.bash_profile
加入如下内容:
#ORACLE_HOME请根据实际情况修改
ORACLE_HOME=/database/app/oracle
PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_HOME
export PATH
export LD_LIBRARY_PATH
将下载好的源码包放入/home/zabbix/packages
目录,解压备用。
package
目录下的包文件应如下图:
2. 配置数据库
2.1 创建数据库
使用oracle
用户连接服务器,并运行:
dbca
按照如下组图所示,创建数据库:
如不想设置高强度密码,按Yes下一步即可。
开始创建数据库,请等待数据库创建完成。
创建监听:
netca
编辑$ORACLE_HOME/network/admin/tnsnames.ora
文件
写入如下内容:
#文件内容需要根据实际情况修改
ZABBIX =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.90.113)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = zabbix.digeekao.local)
)
)
创建数据库用户:
请根据实际情况更改密码,用户名等参数。
sqlplus / as sysdba
SQL> alter session set container=zabbix;
Session altered.
SQL> create user zabbix identified by zabbix;
User created.
SQL> grant dba to zabbix;
Grant succeeded.
SQL>exit
2.2 初始化数据库
使用root
用户登录服务器,依次执行下列命令初始化数据库:
准备脚本:
cp /home/zabbix/packages/zabbix-3.4.6/database/oracle/* /home/oracle/
cp -r /home/zabbix/packages/zabbix-3.4.6/misc/images /home/oracle/
将schema.sql
脚本中字符类型nvarchar2
修改为varchar2
sed -i 's/nvarchar2/varchar2/g' /home/oracle/schema.sql
修改images.sql
中图片的位置:
修改image_dir
路径,如下图:
修改权限:
chown -R oracle:oinstall /home/oracle/images
chown -R oracle:oinstall /home/oracle/*.sql
使用oracle
用户登录服务器,登录数据库:
sqlplus zabbix/zabbix@zabbix
确认连接无误:
SQL> show con_name;
CON_NAME
------------------------------
ZABBIX
SQL> show user;
USER is "ZABBIX"
SQL>
执行初始化脚本:
SQL>@/home/oracle/schema.sql;
SQL>@/home/oracle/images.sql;
SQL>@/home/oracle/data.sql;
SQL>commit;
3. 编译安装ZABBIX Server
切换到zabbix
用户,运行以下命令,进入源代码目录:
cd /home/zabbix/packages
tar –xvf libssh2-1.8.0.tar.gz
cd /home/zabbix/packages/zabbix-3.4.6
配置编译参数如下:
./configure \
--enable-server \
--with-openipmi \
--with-ssh2 \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--prefix=/home/zabbix/zabbix-server \
--with-oracle \
--with-oracle-lib
如一切正常,应出现如下图提示:
执行编译命令,并安装:
make
make install
4. 编译安装PHP
在zabbix
用户下执行如下命令:
cd /home/zabbix/packages
tar -xvf php-7.2.1.tar.gz
cd cd /home/zabbix/packages/php-7.2.1
配置编译参数如下:
./configure --prefix=/opt/php7 \
--with-config-file-path=/opt/php7/etc \
--with-config-file-scan-dir=/opt/php7/etc/conf.d \
--enable-bcmath \
--with-bz2 \
--with-curl \
--enable-filter \
--enable-fpm \
--with-gd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--enable-intl \
--enable-mbstring \
--enable-mysqlnd \
--enable-opcache \
--with-openssl \
--enable-simplexml \
--with-sqlite3 \
--enable-xmlreader \
--enable-xmlwriter \
--enable-zip \
--with-zlib \
--enable-ctype \
--with-libxml-dir \
--enable-sockets \
--with-gettext \
--with-ldap \
--with-oci8=$ORACLE_HOME
如一切正常,应出现如下图提示:
执行编译命令,并安装:
make
#运行make test
检测编译是否完整
make test
#使用root
用户执行make install
make install
5. 编译安装Nginx
在zabbix
用户下执行如下命令:
cd /home/zabbix/packages/
tar -xvf pcre-8.41.tar.gz
tar -xvf zlib-1.2.11.tar.gz
tar -xvf openssl-1.1.0g.tar.gz
tar -xvf nginx-1.12.2.tar.gz
cd /home/zabbix/packages/nginx-1.12.2
配置编译参数如下:
./configure \
--prefix=/opt/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-pcre=../pcre-8.41 \
--with-pcre-jit \
--with-zlib=../zlib-1.2.11 \
--error-log-path=/var/log/nginx-error.log \
--http-log-path=/var/log/nginx-access.log \
--with-openssl=../openssl-1.1.0g
如一切正常,应出现如下图提示:
执行编译命令,并安装:
make
#使用root
用户执行make install
make install
6. 安装后配置
6.1 配置ZABBIX Server
编辑/home/zabbix/zabbix-server/etc
,修改如下选项:
LogFile=/home/zabbix/zabbix-server/zabbix_server.log
DBName=zabbix.digeekao.local
DBUser=zabbix
DBPassword=zabbix
DBPort=1521
将zabbix-server
注册为系统服务(可选):
zabbix-server
注册为系统服务并使用chkconfig
工具进行控制。切换到root
用户,执行下列命令:
cp /home/zabbix/packages/zabbix-3.4.6/misc/init.d/fedora/core5/zabbix_server /etc/init.d/
修改/etc/init.d/zabbix_server
文件:
vi /etc/init.d/zabbix_server
更改zabbix-server
可执行文件目录:
#请按照实际情况修改
./home/zabbix/.bash_profile
ZABBIX_BIN="/home/zabbix/zabbix-server/sbin/zabbix_server"
将zabbix_server
注册为系统服务:
chkconfig --add zabbix_server
chkconfig --list zabbix_server
即可如下命令启动zabbix_server
:
service zabbix_server start
6.2 配置PHP-FPM
创建php-fpm.conf
cp /opt/php7/etc/php-fpm.conf.default /opt/php7/etc/php-fpm.conf
vi /opt/php7/etc/php-fpm.conf
修改以下配置项目:
error_log = /opt/php7/var/log/php-fpm-error.log
log_level = warning
加入如下配置:
#根据实际情况修改
env[ORACLE_HOME] = /database/app/oracle
创建www.conf
:
cp /opt/php7/etc/php-fpm.d/www.conf.default /opt/php7/etc/php-fpm.d/www.conf
vi /opt/php7/etc/php-fpm.d/www.conf
修改以下配置项目:
user = zabbix
group = zabbix
listen = /var/php-fpm.sock
listen.owner = zabbix
listen.group = zabbix
listen.mode = 0660
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 30
php_admin_value[error_log] = /opt/php7/var/log/fpm-php.www-error.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 32M
将php-fpm
安装为系统服务(可选):
创建/etc/init.d/php-fpm
文件,写入如下内容:
#! /bin/sh
### BEGIN INIT INFO
# Provides: php-fpm
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts php-fpm
# Description: starts the PHP FastCGI Process Manager daemon
### END INIT INFO
prefix=/opt
exec_prefix=/opt
php_fpm_BIN=/opt/php7/sbin/php-fpm
php_fpm_CONF=/opt/php7/etc/php-fpm.conf
php_fpm_PID=/opt/php7/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF"
wait_for_pid () {
try=0
while test $try -lt 35 ; do
case "$1" in
'created')
if [ -f "$2" ] ; then
try=''
break
fi
;;
'removed')
if [ ! -f "$2" ] ; then
try=''
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting php-fpm "
$php_fpm_BIN $php_opts
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
fi
wait_for_pid created $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Gracefully shutting down php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed. Use force-quit"
exit 1
else
echo " done"
fi
;;
force-quit)
echo -n "Terminating php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -TERM `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reload service php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -USR2 `cat $php_fpm_PID`
echo " done"
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload}"
exit 1
;;
esac
6.3 配置Nginx
使用root
用户操作
vim /opt/nginx/conf/nginx.conf
修改如下参数:
user zabbix;
worker_processes auto;cd make
error_log logs/error.log info;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
access_log logs/access.log;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
include /opt/nginx/conf/conf.d/*.conf;
gzip on;
}
其余参数可删除或注释掉。
mkdir /opt/nginx/conf/conf.d
vim /opt/nginx/conf/conf.d/zabbix.conf
写入如下内容:
server {
listen 80;
server_name 此处填写服务器域名或IP;
root /opt/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /opt/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "post_max_size = 16M
memory_limit = 128M
max_execution_time = 300
date.timezone = Asia/Shanghai";
include fastcgi_params;
}
}
将nginx
安装为系统服务(可选)。
创建/etc/init.d/nginx
文件,写入如下内容:
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/opt/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE=/opt/nginx/conf/nginx.conf
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
6.4 安装ZABBIX前端
复制ZABBIX前端到Nginx网站目录下:
cp -r /home/zabbix/packages/zabbix-3.4.6/frontends/php /opt/nginx/html/zabbix/
chown -R zabbix:zabbix zabbix/
6.5 启动服务
6.5.1启动数据库
在oracle
用户下执行:
sqlplus / as sysdba
SQL>startup
SQL>alter pluggable database zabbix open;
SQL>exit
6.5.2 启动php-fpm及Nginx
在root
用户下执行:
service php-fpm start
service nginx start
6.6 配置ZABBIX前端
所有服务启动完毕后,浏览http://IP:port/zabbix
可以看到如下图所示页面:
点击Next step
继续:
确认所有条件均满足,点击Next step
继续:
填写数据库连接信息,点击Next step
继续:
填写ZABBIX Server安装服务器信息,点击Next step
继续:
确认设置信息,无误点击Next step
继续:
安装完成:
进入登录页面,默认用户名为Admin
,密码为zabbix
登录后页面如下:
评论