如何快速将Zabbix5.0升级至6.0?

2022-08-01 10:46:33 浏览数 (1)

感谢本文作者王会新,ZCP-Zabbix高级认证工程师

目录

1.方案说明 2.环境说明 3.Mysql环境部署

3.1 mysql安装

3.2 配置mysql

3.3 创建zabbix库

4.Zabbix Server升级

4.1 升级前备份

4.2 为新数据库授权

4.3 导入Zabbix5.0数据结构

4.4 导入旧数据库备份Zabbix配置数据

4.5 为新数据库历史表添加主键

4.6 为新数据库创建表分区

4.7 创建事件调度器

4.8 升级Zabbix相关服务

4.9 Zabbix服务检查

4.10 失败回滚

方案说明

升级目标版本Zabbix6.0.3。升级方案Server采用在当前环境节点直接升级,数据库采用新服务器部署Mysql8.0.28数据库将Server配置信息迁移至新数据库,升级前需对Server服务节点快照备份便于失败回滚。因升级需要停用服务,所以不论升级成功或失败,都将造成升级当天部分监控数据的丢失。

环境说明

安装前准备

涉及到了机器设备:zabbixdb

系统版本:CentOS Linux release 8.3.2011

MySQL版本:mysql8.0.28数据库。

在默认情况下SELinux和防火墙都是关闭状态。

Mysql环境部署

3.1 mysql安装

1.创建mysql用户和禁止用户登录

2.根据要求数据库存储目录为/data目录

3.安装已经下载好的mysql的rpm安装包

3.2 配置Mysql

1.初始化Mysql并指定数据目录

2.修改Mysql配置文件

下面配置属于zabbix-server的mysql配置。innodb_buffer_pool_size = 16G 大小为总内存的75%左右。

vi  /etc/my.cnf

3.启动服务并添加开机自启

4.查看Mysql进程

ps -ef | grep mysql

5.修改安全策略

1.修改数据库root密码

grep password /var/log/mysqld.log

mysql>ALTER USER 'root'@'localhost' identified by 'Zabbix#1234';

3.3 创建zabbix库

mysql>create database zabbix character set utf8mb4 collate utf8mb4_bin;

Zabbix Server升级

4.1 升级前备份

1.导出Zabbix配置数据#mysqldump -uroot -p zabbix --ignore-table=zabbix.history --ignore-table=zabbix.history_uint  --ignore-table=zabbix.history_str  --ignore-table=zabbix.history_text  --ignore-table=zabbix.history_log  --ignore-table=zabbix.trends  --ignore-table=zabbix.trends_uint  --ignore-table=zabbix.alerts  --ignore-table=zabbix.events>/opt/zbx5.0.sql

2.备份zabbix配置文件

3.备份zabbix前端

4.备份告警脚本及自定义脚本

5.备份httpd配置文件

4.2 为新数据库授权

1.创建用户并授权

mysql> create user 'zabbix'@'192.18.252.%' identified by 'Zabbix#1234'; mysql> create user 'zabbix'@'localhost' identified by 'Zabbix#1234'; mysql> grant all privileges on zabbix.* to 'zabbix'@'192.18.252.%'; mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost'; mysql>flush privileges; mysql>alter user 'zabbix'@'192.18.252.%' identified with mysql_native_password by '123456'; mysql>alter user 'zabbix'@'192.18.252.%' identified with mysql_native_password by 'Zabbix#1234';

#Mysql8.0安全系数较高需修改初始密码

4.3 导入zabbix5.0数据结构

1.导入Zabbix5.0数据结构zcat /opt/software/create.sql.gz | mysql -uzabbix -p zabbix

4.4 导入旧数据库备份Zabbix配置数据

1.导入旧环境Zabbix配置数据

cat /opt/software/zbx5.0.sql | mysql -uzabbix -p zabbix

4.5 为新数据库历史表添加主键

1.Zabbix数据库history表添加主键

mysql -uzabbix -p zabbix < /opt/software/history_pk_prepare.sql

2.删除旧表

mysql>DROP TABLE history_old; mysql>DROP TABLE history_uint_old; mysql>DROP TABLE history_str_old; mysql>DROP TABLE history_log_old; mysql>DROP TABLE history_text_old;

4.6 为新数据库创建表分区

1.配置文件准备

上传partition_call.sql存储过程和partition_all.sql分区设置保留时间。设置历史数据保留时长(90天)和趋势数据保留时长(360天)

2.创建并导入存储过程

mysql -uzabbix -p zabbix < /opt/software/partition_call.sql

mysql -uzabbix -p zabbix < /opt/software/partition_all.sql

3.调用存储过程

mysql -uzabbix -p zabbix -e "call partition_maintenance_all('zabbix')"

4.7 创建事件调度器

mysql> use zabbix; mysql> create event zabbix_partition on schedule every 1 day starts '2022-04-28 2:00:00' do CALL partition_maintenance_all('zabbix');

4.8 升级Zabbix相关服务

1.停止Zabbix、Agent、PHP、Apache服务

systemctl stop zabbix-server zabbix-agent httpd php-fpm

2.卸载zabbix5.0.1

rpm -e zabbix-web-deps-5.0.1-1.el8.noarch zabbix-apache-conf-5.0.1-1.el8.noarch zabbix-web-mysql-5.0.1-1.el8.noarch zabbix-agent-5.0.1-1.el8.x86_64 zabbix-server-mysql-5.0.1-1.el8.x86_64 zabbix-web-5.0.1-1.el8.noarch

3.安装zabbix6.0.3

rpm -ivh zabbix-web-deps-6.0.3-1.el8.noarch.rpm zabbix-apache-conf-6.0.3-1.el8.noarch.rpm zabbix-web-mysql-6.0.3-1.el8.noarch.rpm zabbix-agent-6.0.3-1.el8.x86_64.rpm zabbix-server-mysql-6.0.3-1.el8.x86_64.rpm zabbix-web-6.0.3-1.el8.noarch.rpm

4.配置zabbix6.0.3配置文件

由于zabbix5.0跟zabbix6.0.3的zabbix_server.conf配置文件参数不同,所以不能直接复制替换zabbix_server.conf。

查看备份zabbix-server配置

5.对应修改zabbix server 配置文件

vi /etc/zabbix/zabbix_server.conf

6.启动Zabbix、Agent、PHP、Apache服务

systemctl start zabbix-server zabbix-agent httpd php-fpm

7.查看日志文件

tail -f  /var/log/zabbix/zabbix_server.log tail -f /data/mysql/data/log/mysqld.log

Zabbix server将会自动升级数据库。开始后,Zabbix server报告当前(强制和非强制的)和需要的数据库版本。如果当前强制版本低于需要的版本,Zabbix server自动执行所需要的数据库补丁。数据库升级的开始和进度信息(百分比)将会写入Zabbix server的日志文件中。当升级完成后,将会在日志文件中写入一条“database upgrade fully completed”的信息。如果任何升级补丁失败,Zabbix server将不会启动,即使数据库当前强制版本比所需版本高,Zabbix server也不会启动。只有当数据库当前的强制版本与需要的强制版本相符时,Zabbix server才会启动。

注:在你启动server之前:

◆确认数据库用户拥有足够的权限(创建表,删除表,建立索引,删除索引)

◆确认拥有足够的空余磁盘空间

Zabbix服务检查

◆检查升级后的zabbix是否工作正常,检查最新数据。

◆检查zabbix server日志是否正常。

1.Web访问并检查数据及告警情况

Web访问出现如图所示问题

2.修改前端连接新数据库信息

3.检查最新数据采集情况

4.如图所示数据采集正常

4.1 出现中文乱码修改字体

mv /usr/share/fonts/dejavu/DejaVuSans.ttf /usr/share/fonts/dejavu/DejaVuSans.ttf_bak20220424

mv /opt/software/msyh.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

5.检查告警信息触发动作成功发送告警信息

失败回滚

1.回滚Server升级前备份文件,如有文件缺失启动快照恢复

2.回滚MySQL数据库升级前的备份服务器,将Server配置文件数据库指向修改原地址

0 人点赞