本文适用于在CentOS6下zabbix2.2及以上版本升级到zabbix3.0。
zabbix3.0的环境要求:
Software | Version | Comments |
MySQL | 5.0.3 or later | |
Apache | 1.3.12 or later | |
PHP | 5.4.0 or later | PHP v7 is not supported yet. |
libcurl | For SMTP authentication, version 7.20.0 or higher is required. |
由于CentOS6默认的php和libcurl版本均不满足要求,所以需要使用第三方yum源升级。
升级前的版本:
-
PHP 5.3.3
-
curl 7.19.7
-
Zabbix server v2.2.10
-
Zabbix Agent (daemon) v2.2.10
升级后的版本:
-
PHP 5.6.18
-
curl 7.47.1
-
zabbix_server (Zabbix) 3.0.0
-
zabbix_agentd (daemon) (Zabbix) 3.0.0
0.升级前的准备
1)安装yum多线程下载插件axelget,提升下载速度
下载地址:http://down.51cto.com/data/2183091
1
2
3
|
rpm -ivh http:
//pkgs
.repoforge.org
/axel/axel-2
.4-1.el6.rf.x86_64.rpm
cp
axelget.conf
/etc/yum/pluginconf
.d/
cp
axelget.py
/usr/lib/yum-plugins/
|
网络质量对yum的影响较大,如果yum执行过程中网络超时,可以多尝试几次。
2)停止服务
1
2
3
4
5
6
7
8
|
# 停止zabbix server和agent
service zabbix-server stop
service zabbix-agent stop
# 停止Nginx和php-fpm(LNMP)
service nginx stop
service php-fpm stop
# 停止Apache(LAMP)
service httpd stop
|
3)备份zabbix数据库
1
2
3
4
5
6
7
8
9
|
# 数据库zabbix,用户名zabbix
mysqldump --opt -R -uzabbix -p zabbix \
--ignore-table=zabbix.
history
\
--ignore-table=zabbix.history_log \
--ignore-table=zabbix.history_str \
--ignore-table=zabbix.history_text \
--ignore-table=zabbix.history_uint \
--ignore-table=zabbix.trends \
--ignore-table=zabbix.trends_uint |
gzip
> zabbix_`
date
+
'%Y%m%d%H%M%S'
`.sql.gz
|
上述备份命令忽略了history相关表和trends相关表,备份文件使用gzip压缩。
1.升级php到5.6
1
2
3
4
5
6
7
|
# 安装epel yum源
rpm -Uvh https:
//dl
.fedoraproject.org
/pub/epel/epel-release-latest-6
.noarch.rpm
# 安装php5.6 yum源
rpm -Uvh https:
//mirror
.webtatic.com
/yum/el6/latest
.rpm
# 升级php版本到5.6
yum
install
yum-plugin-replace -y
yum replace php-common --replace-with=php56w-common -y
|
1
2
3
|
# 验证php版本
php -
v
php-fpm -
v
|
zabbix官方文档要求:如果php版本>=5.6.0要设置php.ini里always_populate_raw_post_data = -1。
2.升级libcurl到7.47
1
2
3
4
5
6
|
# 安装新版libcurl的yum源
rpm -ivh http:
//mirror
.city-fan.org
/ftp/contrib/yum-repo/city-fan
.org-release-1-13.rhel6.noarch.rpm
# 升级libcurl到7.47
yum upgrade libcurl
# 升级完成后可以卸载此yum源
rpm -e city-fan.org-release
|
1
2
|
# 验证curl版本
curl -V
|
3.升级Zabbix server到3.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# 升级centos6的zabbix官方yum源(官方yum源没有提供CentOS6版本的zabbix3.0 server)
rpm -Uvh http:
//repo
.zabbix.com
/zabbix/3
.0
/rhel/6/x86_64/zabbix-release-3
.0-1.el6.noarch.rpm
# 下载itnihao打包好的CentOS6版本的zabbix3.0 rpm包,感谢itnihao奉献
mkdir
/data
cd
/data
yum
install
git createrepo -y
git clone https:
//github
.com
/zabbixcn/zabbix3
.0-rpm.git
# 创建zabbix3.0本地yum源
createrepo
/data/zabbix3
.0-rpm
/RPMS
cat
>
/etc/yum
.repos.d
/zabbix3
.0.repo <<
'EOF'
[zabbix3.0]
name=zabbix3.0 itnihao
baseurl=
file
:
///data/zabbix3
.0-rpm
/RPMS
enabled=0
gpgcheck=0
EOF
# 重建yum缓存
yum clean all
yum makecache
# yum升级zabbix3.0相关服务(注意:要禁止epel源)
yum --disablerepo=epel --enablerepo=zabbix3.0 upgrade zabbix-server-mysql zabbix-agent zabbix-get zabbix-sender
|
1
2
3
|
# 升级完成后检查zabbix server和agent版本
zabbix_server_mysql -V
zabbix_agentd -V
|
1
2
3
4
5
6
|
# 启动zabbix-server和zabbix-agent
service zabbix-server start
service zabbix-agent start
# 加入开机启动
chkconfig zabbix-server on
chkconfig zabbix-agent on
|
zabbix2.2及以上版本升级到zabbix3.0不需要额外执行数据库升级脚本。3.0版zabbix-server启动后会自动升级数据库,到日志里查看升级进度:
1
2
|
# zabbix-server启动后,观察zabbix-server的日志
tailf -100
/var/log/zabbix/zabbix_server
.log
|
4.升级zabbix web
下面分别讲下nginx和Apache的web升级:
1)Nginx
1
2
3
4
5
6
7
8
9
10
11
12
|
# 下载zabbix 3.0源码包
wget http:
//jaist
.dl.sourceforge.net
/project/zabbix/ZABBIX
%20Latest%20Stable
/3
.0.0
/zabbix-3
.0.0.
tar
.gz -O zabbix-3.0.0.
tar
.gz
# 解压后提取php源文件到zabbix web目录/data/www/zabbix3.0
tar
xvzf zabbix-3.0.0.
tar
.gz
mkdir
-p
/data/www/zabbix3
.0
\
cp
-r zabbix-3.0.0
/frontends/php/
*
/data/www/zabbix3
.0
# 设置web目录的权限(我的nginx的启动用户是nginx)
chown
-R nginx.
/data/www
chmod
755
/data
# 修改php-fpm的用户也是nginx
sed
-i
'/^user =/c\user = nginx'
/etc/php-fpm
.d
/www
.conf
sed
-i
'/^group = =/c\group = nginx'
/etc/php-fpm
.d
/www
.conf
|
更新Nginx配置文件里的zabbix web根目录:
1
2
3
4
5
6
7
|
# 启动php-fpm
service php-fpm start
# 启动nginx
nginx -t && service nginx start
# 加入开机启动
chkconfig php-fpm on
chkconfig nginx on
|
最后访问zabbix web进行配置即可,配置流程简单就不细说了。
点击下一步“Next step”没有反应的解决方法如下:
1
2
|
# 如果你的nginx和php-fpm启动用户为nginx,则运行下面的命令修改php session文件目录的权限:
setfacl -R -m u:nginx:rwx
/var/lib/php
|
2)Apache
1
2
3
4
5
6
7
|
# yum更新zabbix web(按照下面的命令升级)
yum --disablerepo=epel --enablerepo=zabbix3.0
install
httpd php56w zabbix-web-mysql-3.0.0-1.el6.noarch zabbix-web-3.0.0-1.el6.noarch
sed
-i
"s@# php_value date.timezone Europe/Riga@php_value date.timezone Asia/Shanghai@g"
/etc/httpd/conf
.d
/zabbix
.conf
# 启动Apache
/etc/init
.d
/httpd
restart
# 加入开机启动
chkconfig httpd on
|
至此全部升级结束了。