ZABBIX3.0在CentOS6.6上的安装部署

Zabbix3.0界面焕然一新,一改10多年的老面孔,alpha4的更新具体记录下:http://www.zabbix.com/rn3.0.0alpha4.php

在网站建设、成都网站建设过程中,需要针对客户的行业特点、产品特性、目标受众和市场情况进行定位分析,以确定网站的风格、色彩、版式、交互等方面的设计方向。成都创新互联还需要根据客户的需求进行功能模块的开发和设计,包括内容管理、前台展示、用户权限管理、数据统计和安全保护等功能。

What's New in 3.0.0alpha4

ZABBIX3.0在CentOS6.6上的安装部署

Zabbix 3.0安装过程与2.x的变化类似,但又少许需要注意的坑(以下标红的),否则会坑的不行。。。

基础环境:

CentOS 6.6 X64

Nginx:1.9.7

MySQL:5.5.32

PHP:5.5.30( zabbix_3.0 要求php版本至少在5.4以上 )

ZABBIX3.0在CentOS6.6上的安装部署

一、Nginx安装:

1.rpm -qa pcre pcre-devel
2.yum install pcre pcre-devel openssl openssl-devel -y
3.mkdir -p /usr/local/nginx-1.9.7
4.useradd nginx -s /sbin/nologin -M
5../configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.9.7 --with-http_stub_status_module --with-http_ssl_module
make && make install
ln -s /usr/local/nginx-1.9.7 /usr/local/nginx
6.ls -l /usr/local/
7./usr/local/nginx/sbin/nginx
8.ps -ef|grep nginx
9.ss -lntup|grep nginx
[root@zabbix_3.0 conf]# egrep -v "#|^$" nginx.conf.default > nginx.conf
[root@zabbix_3.0 conf]# vim /usr/local/nginx/conf/nginx.conf
worker_processes 1;
error_log /usr/local/nginx/logs/error.log; --新增一行
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on; --新增一行
server {
listen 80;
server_name localhost;
access_log /usr/local/nginx/logs/access.log; --新增一行
root /usr/local/nginx/html; --更改为/usr/local/nginx/html,原来的值为html;
index index.php index.html index.htm; --加一个index.php
error_page 500 502 503 504 /50x.html;
location = /50x.html { --删除这行
root html; --删除这行
} --删除这行
--下面这部分新增加的内容
location ~ \.(php|php5)?$ {
#root /usr/local/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
}
}
10.为nginx提供 init脚本,新建文件/etc/rc.d/init.d/nginx,把以下内容复制到刚建的nginx文件下:
#!/bin/sh
#nx - this script starts and stops the nginx daemon
#
# 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
# config: /etc/sysconfig/nginx
# 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="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
[ -f /usr/local/nginx ] && . /usr/local/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
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
sleep 1
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
11.添加启动项并做成服务:
[root@localhost nginx-1.9.7]chmod +x /etc/rc.d/init.d/nginx
[root@localhost nginx-1.9.7]chkconfig --add nginx
[root@localhost nginx-1.9.7]chkconfig nginx on
[root@localhost php]# ps -A|grep nginx
62878 ? 00:00:00 nginx
62879 ? 00:00:00 nginx

二、MySql安装:二进制软件包(170多M)

# yum install tree nmap lrzsz dos2unix -y
# mkdir -p /usr/local/mysql-5.5.32
[root@zabbix_3.0]# tar -zxvf mysql-5.5.32-linux2.6-x86_64.tar.gz
[root@zabbix_3.0]# mv mysql-5.5.32-linux2.6-x86_64 /usr/local/mysql-5.5.32
[root@zabbix_3.0]# ln -s /usr/local/mysql-5.5.32/ /usr/local/mysql
[root@zabbix_3.0]# useradd mysql -s /sbin/nologin -M
[root@zabbix_3.0]# chown -R mysql.mysql /usr/local/mysql
[root@zabbix_3.0]# cd /usr/local/mysql
[root@zabbix_3.0 mysql]
-- 创建系统表
# ./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --user=mysql
cp support-files/mysql.server /etc/init.d/mysqld
--这步不用做sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld
cp support-files/my-small.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
# source /etc/profile
[root@zabbix_3.0]# echo $PATH
/usr/local/mysql/bin:/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@zabbix_3.0 application]# cp -a /application/mysql/bin/* /usr/local/sbin
[root@zabbix_3.0 application]#service mysqld start
[root@zabbix_3.0 application]#chkconfig mysqld on
[root@zabbix_3.0 application]#mysqladmin -uroot password 123456

三、PHP安装:

1.yum -y install zlib-devel libxml2-devel libjpeg-devel libiconv-devel freetype-devel libpng-devel gd-devel curl-devel libxslt-devel
2.wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxf libiconv-1.14.tar.gz
mkdir -p /usr/local/libiconv
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install
cd ../
3.yum -y install libmcrypt-devel mhash mcrypt --这3个rpm包必须安装,CentOS6.6系统的标准YUM源里没有, 需要从EPEL源上找到下载安装
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
php 5.5.30:( --with-mysqli=mysqlnd和--with-gettext一定要加上,否则前者不装时安装 zabbix时database type没有选项 默认出来的数据库是SqLite 3,且不能切换 ,后者不装时,会报PHP gettext warning)
mkdir -p /usr/local/php-5.5.30
tar -zxvf php-5.5.30.tar.gz
cd php-5.5.30
./configure \
--prefix=/usr/local/php-5.5.30 \
--with-mysql=/usr/local/mysql/ \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--with-gettext \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-ftp \
--enable-opcache=no回车
+-----------------------------------------------------------------------------------+
| License:                                                                        |
| This software is subject to the PHP License, available in this        |
| distribution in the file LICENSE. By continuing this installation       |
| process, you are bound by the terms of this license agreement.        |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                                    |
+-----------------------------------------------------------------------------------+
Thank you for using PHP.
config.status: creating php5.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands
#make && make install
Generating phar.php
Generating phar.phar
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
directorytreeiterator.inc
directorygraphiterator.inc
invertedregexiterator.inc
clicommand.inc
pharcommand.inc
phar.inc
Build complete.
Don't forget to run 'make test'.
Installing PHP CLI binary: /usr/local/php-5.5.30/bin/
Installing PHP CLI man page: /usr/local/php-5.5.30/php/man/man1/
Installing PHP FPM binary: /usr/local/php-5.5.30/sbin/
Installing PHP FPM config: /usr/local/php-5.5.30/etc/
Installing PHP FPM man page: /usr/local/php-5.5.30/php/man/man8/
Installing PHP FPM status page: /usr/local/php-5.5.30/php/php/fpm/
Installing PHP CGI binary: /usr/local/php-5.5.30/bin/
Installing PHP CGI man page: /usr/local/php-5.5.30/php/man/man1/
Installing build environment: /usr/local/php-5.5.30/lib/php/build/
Installing header files: /usr/local/php-5.5.30/include/php/
Installing helper programs: /usr/local/php-5.5.30/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/php-5.5.30/php/man/man1/
page: phpize.1
page: php-config.1
Installing PEAR environment: /usr/local/php-5.5.30/lib/php/
[PEAR] Archive_Tar - installed: 1.3.12
[PEAR] Console_Getopt - installed: 1.3.1
[PEAR] Structures_Graph- installed: 1.0.4
[PEAR] XML_Util - installed: 1.2.3
[PEAR] PEAR - installed: 1.9.5
Wrote PEAR system config file at: /usr/local/php-5.5.30/etc/pear.conf
You may want to add: /usr/local/php-5.5.30/lib/php to your php.ini include_path
/root/software/php-5.5.30/build/shtool install -c ext/phar/phar.phar /usr/local/php-5.5.30/bin
ln -s -f phar.phar /usr/local/php-5.5.30/bin/phar
Installing PDO headers: /usr/local/php-5.5.30/include/php/ext/pdo/
[root@zabbix_3.0 php-5.5.30]# make test --此步可不做,是进行测试
[root@zabbix_3.0 php-5.5.30]# ln -s /usr/local/php-5.5.30/ /usr/local/php
生成配置php配置文件
[root@zabbix_3.0 php-5.5.30]# pwd
/root/software/php-5.5.30
[root@zabbix_3.0 php-5.5.30]# cp php.ini-production /usr/local/php/lib/php.ini
[root@zabbix_3.0 php-5.5.30]# cd /usr/local/php/etc/
[root@zabbix_3.0 etc]# pwd
/usr/local/php/etc
[root@zabbix_3.0 etc]# cp php-fpm.conf.default php-fpm.conf
php启动测试
[root@zabbix_3.0 etc]# /usr/local/php/sbin/php-fpm
验证是否成功启动
[root@zabbix_3.0 etc]# netstat -lntup|grep php-fpm

验证LNMP安装是否成功。

四、Zabbix安装:

[root@zabbix_3.0 ~]# tar -zxvf zabbix-3.0.0.tar.gz
[root@zabbix_3.0 ~]# groupadd zabbix
[root@zabbix_3.0 ~]# useradd -g zabbix zabbix
[root@zabbix_3.0 ~]# ln -s /usr/local/libiconv/lib/libiconv.so.2 /usr/lib/libiconv.so.2 #添加软连接
[root@zabbix_3.0 ~]# /sbin/ldconfig #使配置立即生效
[root@zabbix_3.0 ~]# mkdir -p /usr/local/zabbix
[root@zabbix_3.0 ~]# cd software/zabbix-3.0.0
[root@oldboy zabbix-3.0.0]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
参数说明
―prefix=/usr/local/zabbix 为指定安装目录为/usr/local/zabbix
―enable-server 为安装zabbix服务端程序
―enable-agent 为安装agent程序
―with-mysql 为使用mysql数据库
―enable-ipv6 为启用ipv6支持
―with-net-snmp 为启用snmp支持
―with-libcurl 为启用curl
―with-libxml2 编译xml模块,主要用于监控vm虚拟机
报错
checking for net-snmp-config... no
configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
[root@zabbix zabbix-3.0.0]# rpm -qa | grep net-snmp-devel --发现没有该软件包,进行YUM安装
[root@zabbix zabbix-3.0.0]# yum install net-snmp-devel
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Loading mirror speeds from cached hostfile
解决依赖关系
--> 执行事务检查
---> Package net-snmp-devel.x86_64 1:5.5-49.el6_5.3 will be 安装
--> 处理依赖关系 tcp_wrappers-devel,它被软件包 1:net-snmp-devel-5.5-49.el6_5.3.x86_64 需要
--> 处理依赖关系 rpm-devel,它被软件包 1:net-snmp-devel-5.5-49.el6_5.3.x86_64 需要
--> 处理依赖关系 lm_sensors-devel,它被软件包 1:net-snmp-devel-5.5-49.el6_5.3.x86_64 需要
--> 处理依赖关系 elfutils-devel,它被软件包 1:net-snmp-devel-5.5-49.el6_5.3.x86_64 需要
--> 执行事务检查
---> Package elfutils-devel.x86_64 0:0.158-3.2.el6 will be 安装
---> Package lm_sensors-devel.x86_64 0:3.1.1-17.el6 will be 安装
---> Package rpm-devel.x86_64 0:4.8.0-37.el6 will be 安装
--> 处理依赖关系 popt-devel(x86-64),它被软件包 rpm-devel-4.8.0-37.el6.x86_64 需要
--> 处理依赖关系 file-devel(x86-64),它被软件包 rpm-devel-4.8.0-37.el6.x86_64 需要
---> Package tcp_wrappers-devel.x86_64 0:7.6-57.el6 will be 安装
--> 执行事务检查
---> Package file-devel.x86_64 0:5.04-21.el6 will be 安装
---> Package popt-devel.x86_64 0:1.13-7.el6 will be 安装
--> 完成依赖关系计算
依赖关系解决
=============================================================================================
软件包 架构 版本 仓库 大小
=============================================================================================
正在安装:
net-snmp-devel x86_64 1:5.5-49.el6_5.3 c6-media 304 k
为依赖而安装:
elfutils-devel x86_64 0.158-3.2.el6 c6-media 74 k
file-devel x86_64 5.04-21.el6 c6-media 26 k
lm_sensors-devel x86_64 3.1.1-17.el6 c6-media 22 k
popt-devel x86_64 1.13-7.el6 c6-media 21 k
rpm-devel x86_64 4.8.0-37.el6 c6-media 93 k
tcp_wrappers-devel x86_64 7.6-57.el6 c6-media 15 k
事务概要
=============================================================================================
Install 7 Package(s)
总下载量:555 k
Installed size: 1.3 M
确定吗?[y/N]输入y回车
--再次执行configure,编译通过
[root@oldboy zabbix-3.0.0]# make && make install
[root@zabbix_3.0 ~]# chown -R zabbix:zabbix /usr/local/zabbix/
[root@zabbix_3.0 ~]# mkdir -p /var/log/zabbix-server
[root@zabbix_3.0 ~]# mkdir -p /var/log/zabbix-agentd
[root@zabbix_3.0 ~]# chown -R zabbix:zabbix /var/log/zabbix-server/
[root@zabbix_3.0 ~]# chown -R zabbix:zabbix /var/log/zabbix-agentd/
[root@oldboy zabbix-3.0.0]# mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql> flush privileges;
mysql> quit;

按照SQL语句顺序导入SQL:

shell> mysql -uzabbix -p zabbix < database/mysql/schema.sql
# stop here if you are creating database for Zabbix proxy
shell> mysql -uzabbix -p zabbix < database/mysql/p_w_picpaths.sql
shell> mysql -uzabbix -p zabbix < database/mysql/data.sql

1.修改zabbix.conf:

[root@oldboy zabbix-3.0.0]# vim /usr/local/zabbix/etc/zabbix_server.conf
增加:
DBName=zabbix #数据库名称
DBUser=zabbix #数据库用户名
DBPassword=zabbix #数据库密码
ListenIP=localhost #数据库ip地址 (--根据实际情况更改)
AlertScriptsPath=****/zabbix/alertscripts #zabbix运行脚本存放目录
LogFile=/var/log/zabbix-server/zabbix_server.log --更改Logfile的值为/var/log/zabbix-server/zabbix_server.log,原来的默认值为/tmp/zabbix_server.log
[root@oldboy zabbix-3.0.0]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/var/log/zabbix-agentd/zabbix_agentd.log --更改Logfile的值为/var/log/zabbix-agentd/zabbix_agentd.log,原来的默认值为/tmp/zabbix_agentd.log
Hostname=test202

2.zabbix 3.0启动方式:

[root@oldboy zabbix-3.0.0]# cp /root/software /zabbix-3.0.0/misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server #服务端
[root@oldboy zabbix-3.0.0]# cp /root/software/zabbix-3.0.0/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd #客户端
[root@oldboy zabbix-3.0.0]# vi /etc/rc.d/init.d/zabbix_server
# Zabbix-Directory
BASEDIR=/usr/local/zabbix --更改BASEDIR的值为/usr/local/zabbix,原来的值为/usr/local,如果安装时不指定--prefix,就默认安装在/usr/local,因为我安装zabbix在/usr/local/zabbix
同理,也把zabbix_agentd的BASEDIR的值改为/usr/local/zabbix
shell> zabbix_server
zabbix_server [15644]: cannot open "/var/log/zabbix-server/zabbix_server.log": [13] Permission denied
报错是权限的问题,将var/log/zabbix-server的目录及其下所有文件都设为zabbix用户和zabbix所属组即可

3.将/usr/local/zabbix/sbin目录、/usr/local/nginx/sbin目录、/usr/local/php/sbin目录也写入/etc/profile的环境变量PATH当中

# vi /etc/profile
export PATH=/usr/local/zabbix/sbin:/usr/local/nginx/sbin:/usr/local/php/sbin:/usr/local/mysql/bin:$PATH'
# source /etc/profile

4.然后启动php

[root@oldboy zabbix-3.0.0]# /usr/local/php/sbin/php-fpm

5.配置web环境:

[root@oldboy zabbix-3.0.0]# cd /root/software/zabbix-3.0.0/frontends
[root@oldboy zabbix-3.0.0]# cp -rf php /usr/local/nginx/html/zabbix

6.在浏览器里输入http://10.101.0.15/zabbix 回车

ZABBIX3.0在CentOS6.6上的安装部署

ZABBIX3.0在CentOS6.6上的安装部署

7.修改php.ini:(php5.5默认值较小)

vim /usr/local/php/lib/php.ini 主要为下面几个参数
--在vi里查找出上面的参数,再修改其值
PHP option post_max_size 16M --更改值为16M,原来的值为8M
PHP option max_execution_time 300 --更改值为300,原来的值为60
PHP option max_input_time 300 --更改值为300,原来的值为30
PHP time zone Asia/Shanghai --添加值为Asia/Shanghai,原来的值为空,并把前面的;去掉,使其生效
:x

ZABBIX3.0在CentOS6.6上的安装部署

ZABBIX3.0在CentOS6.6上的安装部署

8.这里修不修改端口都可,如果编译php时你没有带上 --with-mysqli=mysqlnd 你会悲剧的发现这里默认出现的是SQLite3,且无法更换。。。

ZABBIX3.0在CentOS6.6上的安装部署

ZABBIX3.0在CentOS6.6上的安装部署

ZABBIX3.0在CentOS6.6上的安装部署

9.需要给此目录下/usr/local/nginx/html/zabbix/conf的zabbix.conf.php w+x权限,否则install之前会报错需要下载conf,且赋权。

ZABBIX3.0在CentOS6.6上的安装部署

10.安装至此完毕。界面如下(是比以前好看了。。)

ZABBIX3.0在CentOS6.6上的安装部署



如果您觉得此篇文章对您有帮助,欢迎关注微信公众号:guestart的DBA学习笔记,您的支持是对我最大的鼓励!

ZABBIX3.0在CentOS6.6上的安装部署


新闻名称:ZABBIX3.0在CentOS6.6上的安装部署
文章地址:http://pwwzsj.com/article/jhphci.html