我这边的生产环境是centos7.9,mysql5.7.38,zabbix-server5.0.31
由于业务需要,需要用到zabbix6.0的一些功能,所以不得已升级,参考了好多资料
zabbix依赖于mysql8,php版本大于7.2,且zabbix官方没有centos7的安装包,所以最终要编译安装
一上来就编译安装结果各种报错,所以我拆解为四种步骤,逐步实现,各位可以根据自己的实际情况选择其中一种方法升级
第一种升级方法:
Linux : CentOS Stream release 8
Mysql: 8.0.26
新安装环境,数据库从5.0导出再导入6.0
新部署了一台centos8的环境其上部署了zabbix6.0,然后把原来zabbix5.0的数据导入其中
关闭selinux
# setenforce 0
# sed -i"s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
安装mysql
#yum -y install mysql-server
# systemctl start mysqld && systemctlenable mysqld
初始化root密码
# mysql -uroot
> use mysql;
> alter user 'root'@'localhost'identified by 'root数据库密码';
> flush privileges;
创建zabbix库
> create database zabbix character setutf8mb4 collate utf8mb4_bin;
> create user zabbix@localhostidentified by 'zabbix数据库密码';
> grant all privileges on zabbix.* tozabbix@localhost;
> flush privileges;
导入数据
>use zabbix;
> source /root/zabbix.sql;
上面zabbix.sql为zabbix5.0导出的数据
安装zabbix
# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
# dnf cleanall
# sed -i's#https://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#g'/etc/yum.repos.d/zabbix.repo
# sed -ri's/enabled=0/enabled=1/g' /etc/yum.repos.d/zabbix.repo
# dnf installzabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scriptszabbix-selinux-policy zabbix-agent
修改配置文件
# vim /etc/zabbix/zabbix_server.conf
DBPasswd=zabbix数据库密码
# vim /etc/nginx/conf.d/zabbix.conf
此处可以修改zabbix服务页面端口
启动服务
# systemctl restart zabbix-server zabbix-agent nginx php-fpm
页面数据库报错处理
提示连接数据库报version不对
修改数据库
>use zabbix;
> update dbversion set mandatory=6000000;
页面报server未启动
修改数据库
> set global log_bin_trust_function_creators = 1;
修改数据库历史数据表使用主键,zabbix6.0历史表较5.0有变化,所以需要手动修改
# mysql-uzabbix -pzabbix数据库密码 zabbix </usr/share/zabbix-sql-scripts/mysql/history_pk_prepare.sql
>use zabbix;
> DROP TABLE history_old;
> DROP TABLE history_uint_old;
> DROP TABLE history_str_old;
> DROP TABLE history_log_old;
> DROP TABLE history_text_old;
# systemctl restart zabbix-server zabbix-agent nginx php-fpm mysqld
第二种升级方法:
Linux : CentOSLinux release 7.9.2009 (Core)
Mysql: 8.0.32
新安装环境,编译安装,数据库也是新的
第一种方法虽然成功,但是毕竟还要新安装服务器,不是想要的升级,还是想在centos7.9下面试试直接升级,所以我安装了个新的centos7.9环境,测试下编译安装zabbix6.0
关闭selinux
# setenforce 0
# sed -i"s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
关闭防火墙
#systemctlstop firewalld
安装php
# yum install epel-release
# yum install https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm
# yum installlibxml2-devel sqlite-devel libcurl-devel libpng-devel libjpeg-turbo-devellibXpm-devel freetype-devel libicu-devel gcc-c++ libxslt-devel oniguruma-devellibsodium-devel openldap-devel net-snmp-devel libwebp-devel
# yum--enablerepo=remi-php74 install php php-cli php-common php-devel php-embeddedphp-gd php-mbstring php-pdo php-xml php-fpm php-mysqlnd php-opcache php-mcryptphp-pecl-memcached php-pecl-mongodb php-pecl-redis php-bcmath php-intlphp-xmlrpc php-pecl-zip php-soap php-snmp php-ldap
修改php用户
#egrep"^(user|group)" /etc/php-fpm.d/www.conf
user = nginx
group = nginx
修改配置
# vim/etc/php.ini
post_max_size= 16M
max_execution_time= 300
max_input_time= 300
启动服务
# systemctl restart php-fpm
安装mysql8
# yum remove mysql -y
# rpm -qa |grep mysql
# rpm -qa |grep mariadb
# rpm -e--nodeps mariadb-libs-5.5.68-1.el7.x86_64
# yum installlibaio -y