CentOS6下yum升级Zabbix2.2到Zabbix3.0

jopen 9年前

本文适用于在CentOS6下zabbix2.2及以上版本升级到zabbix3.0。

    zabbix3.0的环境要求:

Software Version Comments
MySQL 5.0.3 or later
Apache 1.3.12 or later
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

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)停止服务

# 停止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数据库

# 数据库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压缩。 

CentOS6下yum升级Zabbix2.2到Zabbix3.0

1.升级php到5.6

# 安装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

CentOS6下yum升级Zabbix2.2到Zabbix3.0

# 验证php版本  php -v  php-fpm -v

CentOS6下yum升级Zabbix2.2到Zabbix3.0

zabbix官方文档要求:如果php版本>=5.6.0要设置php.ini里 always_populate_raw_post_data = -1

2.升级libcurl到7.47

# 安装新版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

CentOS6下yum升级Zabbix2.2到Zabbix3.0

# 验证curl版本  curl -V

CentOS6下yum升级Zabbix2.2到Zabbix3.0

3.升级Zabbix server到3.0

# 升级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 cleanall  yum makecache  # yum升级zabbix3.0相关服务(注意:要禁止epel源)  yum --disablerepo=epel --enablerepo=zabbix3.0 upgrade zabbix-server-mysql zabbix-agent zabbix-get zabbix-sender

CentOS6下yum升级Zabbix2.2到Zabbix3.0

# 升级完成后检查zabbix server和agent版本  zabbix_server_mysql -V  zabbix_agentd -V

CentOS6下yum升级Zabbix2.2到Zabbix3.0

# 启动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启动后会自动升级数据库,到日志里查看升级进度:

# zabbix-server启动后,观察zabbix-server的日志  tailf -100 /var/log/zabbix/zabbix_server.log

4.升级zabbix web

下面分别讲下nginx和Apache的升级:

1)Nginx

# 下载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

更新Nginx配置文件里的zabbix web根目录:

CentOS6下yum升级Zabbix2.2到Zabbix3.0

# 启动php-fpm  service php-fpm start  # 启动nginx  nginx -t && service nginx start  # 加入开机启动  chkconfig php-fpm on  chkconfig nginx on

最后访问zabbix web进行配置即可,配置流程简单就不细说了。 

CentOS6下yum升级Zabbix2.2到Zabbix3.0

点击下一步“Next step”没有反应的解决方法如下:

# 如果你的nginx启动用户为nginx,则运行下面的命令修改php session文件目录的权限:  setfacl -R -m u:nginx:rwx /var/lib/php

2)Apache

# yum更新zabbix web(按照下面的命令升级)  yum --disablerepo=epel --enablerepo=zabbix3.0 install httpd php56w zabbix-web-mysql zabbix-web  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

至此全部升级结束了。

来自: http://qicheng0211.blog.51cto.com/3958621/1744603