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

感谢本文作者王会新,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配置文件数据库指向修改原地址

微信号|17502189550

备注“使用Zabbix年限+企业+姓名”

5000+用户已加入!
一个人走得快,一群人走得远!

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zabbix 5.0 升级Zabbix 6.0 的过程可以分为几个主要步骤,但请注意,这是一个概括,具体操作可能需要根据你的环境和Zabbix版本的具体差异进行调整。以下是通用的大致步骤: 1. **备份当前环境**: 在开始升级之前,确保对当前Zabbix服务器的数据、配置文件以及相关的日志进行备份,以防升级过程中出现问题。 2. **检查兼容性**: 确认Zabbix 5.0是否满足升级Zabbix 6.0的系统要求,比如操作系统、数据库版本等。 3. **更新软件包**: 使用Zabbix官方提供的升级脚本或者工具(如zabbix-upgrade.sh)更新Zabbix服务器和客户端到最新版本,以准备迁移到新版本。 4. **停机维护**: 在业务低峰期,关闭Zabbix服务器的服务,确保升级过程不会影响监控。 5. **数据库迁移**: 根据官方文档中的指示,更新数据库结构,确保数据兼容性。可能需要手动执行SQL脚本或者使用提供的工具进行迁移。 6. **配置文件迁移**: Zabbix 6.0的配置文件格式可能有所变化,旧的配置文件可能需要手动调整或通过升级脚本来转换。 7. **安装并启动新版本**: 安装新的Zabbix服务器,配置好网络、数据库和其他必要的设置,然后启动服务。 8. **验证新版本功能**: 登录新的Zabbix界面,检查监控和报警是否正常,用户权限和配置是否正确。 9. **迁移旧数据**: 如果需要,将旧版本的监控数据、事件历史等导入到新版本中。 10. **清理和测试**: 清理旧版本的残留文件,进行彻底的测试以确保新版本运行良好。 11. **更新客户端**: 如果有Zabbix客户端也需要升级,更新到Zabbix 6.0的相应版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值