概述
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
升级步骤
- 旧环境mysqldump导出数据库数据
- 部署mysql 8 版本数据库
- 部署zabbix server 6.0.6(不导入数据库表结构)
- mysqldump导入旧环境数据库数据
- 启动Zabbix Server 服务自动升级数据库表结构
- 替换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 插件很赞。