写在最前头,本文是个人通过测试和生产环境总结下来的文章,并作了小部分处理,文中可能会存在某些描述不准确或错误的地方,欢迎各位大佬评论指出,互相学习!
说明
以下内容涉及版本:
- Zabbix 3.0.4 --> 5.0.2
- MariaDB 5.5.65 && MySQL 5.7
- PHP 7.1 --> 7.4
- 升级后zabbix数据库要用utf8,utf8_bin !!
从Server端到Proxy端升级完成的这一段时间内监控数据可能会短暂缺失!!!!
Zabbix3.0
服务器:PHP-7.1 数据库(Mysql5.7) Web服务器(Nginx)
Zabbix5.0
- MySQL 5.5.62以上
- MariaDB 10.0.37以上
- PostgreSQL 9.2.24以上
基本要求:PHP-7.2以上
Myslq-5.5~8.0,需要InnoDB引擎
数据库用户权限(create table, drop table, create index, drop index)
Apache版本:1.3.12以上
PHP扩展
REDIS插件更新
Plugins.Redis.Password删除了 配置参数,现在添加了将密码作为关键参数传递的机会。有关详细信息,请参见Redis插件。
升级前准备
注意:升级的安装位置,以及某些获取数据的脚本
实验环境 Zabbix 3.0 ----> Zabbix 5.0 Mariadb 5.5 Nginx 1.18 PHP 7.1 —> PHP 7.4
Server依赖包
yum install pcre pcre-devel libevent libthread zlib libssh fping libcurl libxml2 net-snmp openssl
PHP要求
gd bcmath ctype libXML xmlreader xmlwriter session sockets mbstring gettext openssl mysqli ldap
先确定 Zabbix数据库密码、Zabbix-Server/Proxy 配置文件、PHP前端文件、二进制文件的位置
升级过程
Server
1、停止服务器
2、备份
2.1.备份Zabbix数据库
mysqldump -uroot -p******* --opt zabbix --set-gtid-purged=off > zabbix.sql.gz
#导入新库
重新新建zabbix数据库,直接导入备份的数据库
2.2备份Zabbix配置文件
#备份配置文件
mkdir -p /usr/local/zabbixupdate_backup/zabbix
cp -a /usr/local/zabbix/* /usr/local/zabbixupdate_backup/zabbix_server/
#备份Web端文件
mkdir -p /usr/local/zabbixupdate_backup/zabbix-web
cp -a /usr/local/nginx/html/zabbix/* /usr/local/zabbixupdate_backup/zabbix_web/
2.3备份php
which php
#备份php文件
mkdir -p /usr/local/zabbixupdate_backup/php
cp -a /usr/local/php/* /usr/local/zabbixupdate_backup/php
3、升级PHP
3.1.安装依赖以及扩展包
yum install libsqlite3x-devel libzip-devel libtool automake OpenIPMI-devel unixODBC-devel libssh2 -y
#安装oniguruma
wget https://github.com/kkos/oniguruma/archive/v6.9.5_rev1.tar.gz -O oniguruma-6.9.5_rev1.tar.gz
tar -zxvf oniguruma-6.9.5_rev1.tar.gz
cd
./autogen.sh
#编译
./configure --bindir=/usr/sbin/ \
--sbindir=/usr/sbin/ \