本文适用于在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,提升下载速度
<code>rpm -ivh http:</code><code>//pkgs</code><code>.repoforge.org</code><code>/axel/axel-2</code><code>.4-1.el6.rf.x86_64.rpm</code>
<code>cp</code> <code>axelget.conf </code><code>/etc/yum/pluginconf</code><code>.d/</code>
<code>cp</code> <code>axelget.py </code><code>/usr/lib/yum-plugins/</code>
网络质量对yum的影响较大,如果yum执行过程中网络超时,可以多尝试几次。
2)停止服务
<code># 停止zabbix server和agent </code>
<code>service zabbix-server stop</code>
<code>service zabbix-agent stop</code>
<code># 停止Nginx和php-fpm(LNMP)</code>
<code>service nginx stop</code>
<code>service php-fpm stop</code>
<code># 停止Apache(LAMP)</code>
<code>service httpd stop</code>
3)备份zabbix数据库
<code># 数据库zabbix,用户名zabbix</code>
<code>mysqldump --opt -R -uzabbix -p zabbix \</code>
<code>--ignore-table=zabbix.</code><code>history</code> <code>\</code>
<code>--ignore-table=zabbix.history_log \</code>
<code>--ignore-table=zabbix.history_str \</code>
<code>--ignore-table=zabbix.history_text \</code>
<code>--ignore-table=zabbix.history_uint \</code>
<code>--ignore-table=zabbix.trends \</code>
<code>--ignore-table=zabbix.trends_uint | </code><code>gzip</code> <code>> zabbix_`</code><code>date</code> <code>+</code><code>'%Y%m%d%H%M%S'</code><code>`.sql.gz</code>
上述备份命令忽略了history相关表和trends相关表,备份文件使用gzip压缩。
<a href="http://s3.51cto.com/wyfs02/M01/7B/67/wKiom1bNIcrg7PAFAABFpicr1qs094.png" target="_blank"></a>
1.升级php到5.6
<code># 安装epel yum源</code>
<code>rpm -Uvh https:</code><code>//dl</code><code>.fedoraproject.org</code><code>/pub/epel/epel-release-latest-6</code><code>.noarch.rpm</code>
<code># 安装php5.6 yum源</code>
<code>rpm -Uvh https:</code><code>//mirror</code><code>.webtatic.com</code><code>/yum/el6/latest</code><code>.rpm</code>
<code># 升级php版本到5.6</code>
<code>yum </code><code>install</code> <code>yum-plugin-replace -y</code>
<code>yum replace php-common --replace-with=php56w-common -y</code>
<a href="http://s1.51cto.com/wyfs02/M00/7B/67/wKiom1bNI5CSx6iHAACf3Iscc5A950.png" target="_blank"></a>
<code># 验证php版本</code>
<code>php -</code><code>v</code>
<code>php-fpm -</code><code>v</code>
<a href="http://s5.51cto.com/wyfs02/M01/7B/66/wKioL1bNJCSQ2Ox2AAAqTwpUDMA407.png" target="_blank"></a>
zabbix官方文档要求:如果php版本>=5.6.0要设置php.ini里always_populate_raw_post_data = -1。
2.升级libcurl到7.47
<code># 安装新版libcurl的yum源</code>
<code>rpm -ivh http:</code><code>//mirror</code><code>.city-fan.org</code><code>/ftp/contrib/yum-repo/city-fan</code><code>.org-release-1-13.rhel6.noarch.rpm</code>
<code># 升级libcurl到7.47</code>
<code>yum upgrade libcurl</code>
<code># 升级完成后可以卸载此yum源</code>
<code>rpm -e city-fan.org-release</code>
<code># 验证curl版本</code>
<code>curl -V</code>
<a href="http://s5.51cto.com/wyfs02/M01/7B/66/wKioL1bNJPOSxY-SAAArKGFXcMM192.png" target="_blank"></a>
3.升级Zabbix server到3.0
<code># 升级centos6的zabbix官方yum源(官方yum源没有提供CentOS6版本的zabbix3.0 server)</code>
<code>rpm -Uvh http:</code><code>//repo</code><code>.zabbix.com</code><code>/zabbix/3</code><code>.0</code><code>/rhel/6/x86_64/zabbix-release-3</code><code>.0-1.el6.noarch.rpm</code>
<code># 下载itnihao打包好的CentOS6版本的zabbix3.0 rpm包,感谢itnihao奉献</code>
<code>mkdir</code> <code>/data</code>
<code>cd</code> <code>/data</code>
<code>yum </code><code>install</code> <code>git createrepo -y</code>
<code>git clone https:</code><code>//github</code><code>.com</code><code>/zabbixcn/zabbix3</code><code>.0-rpm.git</code>
<code># 创建zabbix3.0本地yum源</code>
<code>createrepo </code><code>/data/zabbix3</code><code>.0-rpm</code><code>/RPMS</code>
<code>cat</code> <code>> </code><code>/etc/yum</code><code>.repos.d</code><code>/zabbix3</code><code>.0.repo << </code><code>'EOF'</code>
<code>[zabbix3.0]</code>
<code>name=zabbix3.0 itnihao</code>
<code>baseurl=</code><code>file</code><code>:</code><code>///data/zabbix3</code><code>.0-rpm</code><code>/RPMS</code>
<code>enabled=0</code>
<code>gpgcheck=0</code>
<code>EOF</code>
<code># 重建yum缓存</code>
<code>yum clean all</code>
<code>yum makecache</code>
<code># yum升级zabbix3.0相关服务(注意:要禁止epel源)</code>
<code>yum --disablerepo=epel --enablerepo=zabbix3.0 upgrade zabbix-server-mysql zabbix-agent zabbix-get zabbix-sender</code>
<a href="http://s4.51cto.com/wyfs02/M01/7B/66/wKioL1bNKRODJkpOAABQO1TJ7tk702.png" target="_blank"></a>
<code># 升级完成后检查zabbix server和agent版本</code>
<code>zabbix_server_mysql -V</code>
<code>zabbix_agentd -V</code>
<a href="http://s5.51cto.com/wyfs02/M02/7B/66/wKioL1bNKWGCH8PEAABJiwdAkGU714.png" target="_blank"></a>
<code># 启动zabbix-server和zabbix-agent</code>
<code>service zabbix-server start </code>
<code>service zabbix-agent start</code>
<code># 加入开机启动</code>
<code>chkconfig zabbix-server on</code>
<code>chkconfig zabbix-agent on</code>
zabbix2.2及以上版本升级到zabbix3.0不需要额外执行数据库升级脚本。3.0版zabbix-server启动后会自动升级数据库,到日志里查看升级进度:
<code># zabbix-server启动后,观察zabbix-server的日志</code>
<code>tailf -100 </code><code>/var/log/zabbix/zabbix_server</code><code>.log</code>
4.升级zabbix web
下面分别讲下nginx和Apache的web升级:
1)Nginx
<code># 下载zabbix 3.0源码包</code>
<code>wget http:</code><code>//jaist</code><code>.dl.sourceforge.net</code><code>/project/zabbix/ZABBIX</code><code>%20Latest%20Stable</code><code>/3</code><code>.0.0</code><code>/zabbix-3</code><code>.0.0.</code><code>tar</code><code>.gz -O zabbix-3.0.0.</code><code>tar</code><code>.gz</code>
<code># 解压后提取php源文件到zabbix web目录/data/www/zabbix3.0</code>
<code>tar</code> <code>xvzf zabbix-3.0.0.</code><code>tar</code><code>.gz </code>
<code>mkdir</code> <code>-p </code><code>/data/www/zabbix3</code><code>.0</code>
<code>\</code><code>cp</code> <code>-r zabbix-3.0.0</code><code>/frontends/php/</code><code>* </code><code>/data/www/zabbix3</code><code>.0</code>
<code># 设置web目录的权限(我的nginx的启动用户是nginx)</code>
<code>chown</code> <code>-R nginx. </code><code>/data/www</code>
<code>chmod</code> <code>755 </code><code>/data</code>
<code># 修改php-fpm的用户也是nginx</code>
<code>sed</code> <code>-i </code><code>'/^user =/c\user = nginx'</code> <code>/etc/php-fpm</code><code>.d</code><code>/www</code><code>.conf</code>
<code>sed</code> <code>-i </code><code>'/^group = =/c\group = nginx'</code> <code>/etc/php-fpm</code><code>.d</code><code>/www</code><code>.conf</code>
更新Nginx配置文件里的zabbix web根目录:
<a href="http://s1.51cto.com/wyfs02/M00/7B/68/wKiom1bNOOaB_IxPAAA85kUyLz8956.png" target="_blank"></a>
<code># 启动php-fpm</code>
<code>service php-fpm start</code>
<code># 启动nginx</code>
<code>nginx -t && service nginx start</code>
<code>chkconfig php-fpm on</code>
<code>chkconfig nginx on</code>
最后访问zabbix web进行配置即可,配置流程简单就不细说了。
<a href="http://s4.51cto.com/wyfs02/M01/7B/67/wKioL1bNOgXD6zUFAABfHh4zH4g140.png" target="_blank"></a>
点击下一步“Next step”没有反应的解决方法如下:
<code># 如果你的nginx和php-fpm启动用户为nginx,则运行下面的命令修改php session文件目录的权限:</code>
<code>setfacl -R -m u:nginx:rwx </code><code>/var/lib/php</code>
2)Apache
<code># yum更新zabbix web(按照下面的命令升级)</code>
<code>yum --disablerepo=epel --enablerepo=zabbix3.0 </code><code>install</code> <code>httpd php56w zabbix-web-mysql-3.0.0-1.el6.noarch zabbix-web-3.0.0-1.el6.noarch</code>
<code>sed</code> <code>-i </code><code>"s@# php_value date.timezone Europe/Riga@php_value date.timezone Asia/Shanghai@g"</code> <code>/etc/httpd/conf</code><code>.d</code><code>/zabbix</code><code>.conf</code>
<code># 启动Apache</code>
<code>/etc/init</code><code>.d</code><code>/httpd</code> <code>restart</code>
<code>chkconfig httpd on</code>
至此全部升级结束了。
版权声明:原创作品,如需转载,请注明出处。否则将追究法律责任
本文转自 张斌_青岛 51CTO博客,原文链接:http://blog.51cto.com/qicheng0211/1744603