Zabbix 5.0 LTS 升级 Zabbix 6.0 LTS(八)

2022-11-19 09:36:14 浏览数 (3)

概述

Zabbix 6.0 LTS 版本发布已经5个多月,最新版本更新到6.0.6,版本功能相对稳定,可以考虑对生产环境的系统进行升级替换。升级需注意Zabbix 6.0 对数据库版本有要求。

对于线上环境的升级需要格外谨慎,提前做好数据备份。个人升级思路为保持原有Zabbix环境运行,新建Zabbix 6.0 环境进行老环境数据库数据导入,验证数据无误后完成IP地址替换。

Zabbix 6.0 LTS 升级要求

PHP

  • ≥PHP 7.2

数据库

  • MySQL/Percona 8.0.X
  • MariaDB 10.5.X - 10.6.X
  • PostgreSQL 13.X
  • Oracle 19c - 21c
  • TimescaleDB 2.0.1-2.3
  • SQLite 3.3.5-3.34

系统环境

代码语言:javascript复制
lsb_release  -a
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.3 LTS
Release:        20.04
Codename:       focal

升级步骤

  1. 旧环境mysqldump导出数据库数据
  2. 部署mysql 8 版本数据库
  3. 部署zabbix server 6.0.6(不导入数据库表结构)
  4. mysqldump导入旧环境数据库数据
  5. 启动Zabbix Server 服务自动升级数据库表结构
  6. 替换Zabbix Server IP地址

1,从旧环境Zabbix数据库导出 mysqldump 文件

(1)导出数据配置,排除历史数据和趋势数据

mysqldump -uroot -p --databases zabbix --ignore-table=zabbix.history --ignore-table=zabbix.history_log --ignore-table=zabbix.history_str --ignore-table=zabbix.history_text --ignore-table=zabbix.history_uint --ignore-table=zabbix.trends --ignore-table=zabbix.trends_uint > /opt/zabbix_config.sql

(2)导出排除数据的表结构

mysqldump -d zabbix -uroot -p --tables history history_log history_str history_text history_uint trends trends_uint > /opt/ zabbix_data.sql

2,安装mysql 8.0.29

代码语言:javascript复制
#安装mysql
sudo apt install -y mysql-server
#启动mysql
sudo systemctl  start mysql
#进入mysql
sudo mysql
#修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'newpassword';
#退出
exit
#初始化数据库
sudo mysql_secure_installation
#查看数据库版本
 mysql -V
mysql  Ver 8.0.29-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))

创建zabbix用户并授权

代码语言:javascript复制
#登陆数据库
sudo mysql -uroot -p
#创建zabbix 数据库
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
#创建zabbix 用户
mysql>  create user 'zabbix'@'%' identified by 'zabbix@zabbix';
#授权localhost 访问
mysql> grant all privileges on zabbix.* to 'zabbix'@'%';
#刷新策略
flush privileges;
#退出
mysql> quit;

报错解决

修改临时密码,因密码过于简单,不符合MySQL密码规范,会触发报错,需要调整密码验证规则

代码语言:javascript复制
mysql> create user 'zabbix'@'%' identified by 'zabbix@zabbix';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> create user 'zabbix'@'%' identified by 'zabbix@zabbix';
Query OK, 0 rows affected (0.06 sec)

3, Zabbix Server Install

a. Install Zabbix repository

官方文档Documentation

代码语言:javascript复制
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-3 ubuntu20.04_all.deb
dpkg -i zabbix-release_6.0-3 ubuntu20.04_all.deb
apt update

b. Install Zabbix server, frontend, agent

代码语言:javascript复制
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

c. Configure the database for Zabbix server

Edit file /etc/zabbix/zabbix_server.conf

代码语言:javascript复制
DBHost=192.168.100.240
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix@zabbix
StartPollers=50
StartPollersUnreachable=5

d. Configure PHP for Zabbix frontend

Edit file /etc/zabbix/nginx.conf, uncomment and set 'listen' and 'server_name' directives.

代码语言:javascript复制
listen 8080;
server_name example.com;

e. Start Zabbix server and agent processes

Start Zabbix server and agent processes and make it start at system boot.

代码语言:javascript复制
systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm

4, mysqldump 导入数据

代码语言:javascript复制
mysql -uroot -p zabbix < /opt/zabbix_config.sql
mysql -uroot -p zabbix < /opt/zabbix_data.sql

5, zabbix server 服务重启

代码语言:javascript复制
systemctl   restart    zabbix-server

Zabbix Server 连接数据库后会自动开启数据库表升级操作

默认情况下,如果检测到不支持的数据库版本,Zabbix 服务器和代理将不会启动.不推荐但可以在配置文件中添加 AllowUnsupportedDBVersions=1 参数来关闭数据库版本检查。

代码语言:javascript复制
 /etc/zabbix/zabbix_server.conf
AllowUnsupportedDBVersions=1

Zabbix 6.0 LTS 版本真香,Top hosts、 item value、Genmap 插件很赞。

0 人点赞