背景:

近期公司的zabbix经常有已出的告警无法消除,必须重启后才能消除告警的Bug。后来了解到这是zabbix3.0.0版本的一个bug,所以考虑把在用的zbbix版本升级至最新版本3.2.1。

zabbix3.0.0版本与zabbix3.2.1版本的升级很简单,但是有许多小问题。比如两个版本的数据库表不一致的问题,所以一定要做好备份的操作。


zabbix服务器相关目录:

备份目录: /opt/backups/zabbix

zabbix主目录: /opt/apps/zabbix

服务端配置文件:/opt/conf/zabbix/zabbix_server.conf

前端页面目录:/opt/webapps/zabbix

服务启动脚本: /etc/init.d/zabbix_server


升级步骤:

1:官网下载zabbix安装包zabbix-3.2.1.tar.gz,解压,并在新的目录中编译安装新版本。

#tar-zxvfzabbix-3.2.1.tar.gz#cdzabbix-3.2.1#./configure--prefix=/opt/apps/zabbix.3.2--enable-server--enable-agent--with-mysql--enable-ipv6--with-net-snmp--with-libcurl--with-libxml2#makeinstall


2:停掉正在运行的zabbix服务,确保没有新数据写入数据库。

#/etc/init.d/zabbix_serverstop


3:备份原zabbix的数据库数据,以及相关配置文件。

#mysqldump-h127.0.0.1-uzabbix-ppasswordzabbix>/opt/backup/zabbix/zabbix_bak.sql#cp-p/opt/conf/zabbix/zabbix_server.conf/opt/backup/zabbix/zabbix_server.conf.3.0#cp-p/opt/webapps/zabbix/conf/zabbix.conf.php/opt/backup/zabbix/zabbix.conf.php.3.0


4:替换新版本的相关配置文件,参考旧配置文件配置服务。

#cp-p/opt/apps/zabbix.3.2/etc/zabbix_server.conf/opt/conf/zabbix/zabbix_server.conf#grep-v"^#"zabbix_server.conf|grep-v"^$"LogFile=/opt/logs/zabbix/zabbix_server.logPidFile=/opt/logs/zabbix/zabbix_server.pidDBHost=127.0.0.1DBName=zabbixDBUser=zabbixDBPassword=xxxxxxxxDBPort=3306JavaGateway=xx.xx.xx.xxJavaGatewayPort=10052StartJavaPollers=5Timeout=4AlertScriptsPath=/opt/apps/zabbix/share/zabbix/alertscriptsLogSlowQueries=3000


5:替换zabbix主目录,用新的zabbix执行bin文件启动服务。

#mv/opt/apps/zabbix/opt/apps/zabbix.3.0#mv/opt/apps/zabbix.3.2/opt/apps/zabbix复制相关的脚本文件:#cp-rp/opt/apps/zabbix.3.0/share/zabbix/alertscripts/*/opt/apps/zabbix#/etc/init.d/zabbix_serverstart

正常情况下,新的zabbix服务会自动更新mysql数据库中的字段,如果出现以下相关错误:

query failed: [1060] Duplicate column name 'exec_params' [alter table media_type add exec_params varchar(255) default '' not null]

则需要在mysql中删除相关表的字段后再重新启动服务。

注:需删除的字段:media_type表中的exec_params字段,hosts表中所有tls开头的字段。

这时登录zabbix页面会提示数据库版本不一致,那是因为前端页面使用的zabbix数据库版本与后端服务使用的版本不一致。需替换前端页面为新版本页面。


6:替换zabbix前端页面。

#mv/opt/webapps/zabbix/opt/webapps/zabbix.3.0#cp-rp/opt/src/frontends/php/opt/webapps/zabbix#cp-p/opt/backup/zabbix/zabbix.conf.php.3.0/opt/webapps/zabbix/conf/zabbix.conf.php

至此,zabbix升级完毕。