Zabbix 4.4升级到5.0

本次在CentOS 7系统下将Zabbix从4.4.10升级到5.0,介绍了升级步骤,包括Zabbix文件备份、数据库备份、停止服务并卸载前端文件、升级安装包、启动服务等,还提及zabbix - server部分报错的解决办法,最后对比了Zabbix 5.0与4.4的选项卡功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本次升级操作系统是CentOS 7,Zabbix 4.4.10,Php 7.2,Nginx 1.18,在升级前Zabbix 服务一切正常。本次更新php配置以及nginx配置是延用之前。

一、Zabbix 文件备份

# mkdir -p /data/zabbixback/
# cp /etc/zabbix/zabbix_server.conf /data/zabbixback/
# cp /etc/zabbix/zabbix_agentd.conf /data/zabbixback/
# cp /etc/zabbix/web/zabbix.conf.php /data/zabbixback/
# cp -R /usr/share/zabbix/ /data/zabbixback/
# cp -R /usr/share/doc/zabbix-* /data/zabbixback/

二、数据库备份

# mysqldump -u xxx -p xxx -R -E single-transaction zabbix | gzip > /data/zabbixback/zabbix_$(date +%Y%m%d_%H%M%S).sql.gz

# 或者直接备份数据文件
# systemctl stop mysqld
# cp -r  /data/mysql /data/zabbixback
# systemctl start mysqld

三、 停止 zabbix-server,zabbix-agent,卸载前端文件

# systemctl stop zabbix-agent 
# systemctl stop zabbix-server
# yum remove zabbix-web-*

四、升级Zabbix 安装包

1、更新服务端以及客户端软件

# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# yum update zabbix-server zabbix-agent -y

2、安装前端包

# vim /etc/yum.repos.d/zabbix.repo

[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1                                   # 这边由 0 改成 1 
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
....


# yum install -y zabbix-web              # 只安装前端包 /usr/share/zabbix

3、如无其他环境(PHP,NGINX)可通过如下方式一键安装

# 如果本机缺少php,nginx环境得话可以进行如下方式安装(只方式适合新手不熟悉处理环境问题的场景下)

# yum install centos-release-scl         # 不安装这个的话,后面依赖包rh-php 没法安装
# yum install zabbix-web-mysql-scl       # 会安装 zabbix-web,rh-php72,php mysql模块等相关软件版本
# yum install zabbix-nginx-conf-scl      # 会安装 zabbix-web,rh-php72,rh-nginx116软件

# 上述软件包安装位置在 /opt/rh 目录下,配置文件在 /etc/opt/rh 目录下
# 在使用MySQL 作为数据库场景下,需要额外安装环境的话,上面两个包就都需要安装

# 服务前需要修改 nginx 以及php 配置
1、nginx 需要改成仅使用 conf.d/zabbix 配置文件
2、php 的 zabbix.conf 子配置文件中 listen.acl_users 参数等于 nginx,这样nginx可以直接配置socket,否则就只能配置转发端口 9000

# 服务启动
# systemctl restart rh-nginx116-nginx
# systemctl restart rh-php72-php-fpm

五、服务启动

# 安装了 zabbix-web-mysql 软件可能会影响了php,nginx 配置文件,所以从原目录恢复
# mv /etc/nginx/conf.d/zabbix.conf.rpmsave /etc/nginx/conf.d zabbix.conf
# mv /etc/php-fpm.d/zabbix.conf.rpmsave /etc/php-fpm.d/zabbix.conf
# systemctl restart zabbix-server zabbix-agent
# tailf /var/log/zabbix/zabbix_server.log
.....
 20656:20210224:100732.939 current database version (mandatory/optional): 04040000/04040002
 20656:20210224:100732.939 required mandatory version: 05000000
.....

# 按上面要求修改数据库 zabbix mandatory
# mysql -u xxx -p zabbix
> update dbversion set mandatory=05000000;
> flush privilges;

六、zabbix-server 部分报错解决

# tailf /var/log/zabbix/zabbix_server.log
......
  3135:20210224:160749.646 error reason for "192.168.1.137:mysql.buffer_pool_efficiency" changed: Cannot evaluate expression: 
"Cannot evaluate function "last()": item "192.168.1.137:mysql.innodb_buffer_pool_read_requests" not supported.".
  3135:20210224:160750.673 error reason for "192.168.1.137:mysql.buffer_pool_utilization" changed: Cannot evaluate expression:
 "Cannot evaluate function "last()": item "192.168.1.137:mysql.innodb_buffer_pool_pages_total" not supported.".
noname.xml:1: parser error : noname.xml:1: Start tag expected, '<' not found
noname.xml:1: parser ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib
error : Start tag expected, '<' not found
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib
^
parser error : Start tag expected, '<' not found
^
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib
^
noname.xml:1: parser noname.xml:1: error : noname.xml:1: Start tag expected, '<' not found
parser ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib

......

出现上述问题,可能是被监控主机中有关联MySQL模板,一直没有取到数据,涉及到的主机可以通过zabbix-server日志全部翻出来看下,里面会有。然后排查 /etc/zabbix/.my.cnf 文件用户名密码主机是否正确。

总结:

Zabbix 5.0选项卡功能对比4.4 除去 Monitor 下的 Graph 选项外,其他都依旧存在,5.0 的 Graph 移动到 Monitor 下的 Hosts 功能下,可支持选定一台主机,把该主机下的突然放在同一界面展示。

参考摘要:

https://www.zabbix.com/documentation/5.0/manual/installation/upgrade/packages/rhel_centos

https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384189-discussion-thread-for-official-zabbix-template-db-mysql

https://www.zabbix.com/forum/zabbix-help/417586-zabbix-4-4-template-db-mysql-account-isn-t-read-from-agent-conf#post417667

https://www.zabbix.com/forum/zabbix-help/417586-zabbix-4-4-template-db-mysql-account-isn-t-read-from-agent-conf#post417667

<think>好的,我现在需要帮助用户解决关于Zabbix数据库版本过高不兼容的问题。首先,我得回忆一下用户提到的引用内容,看看里面有没有相关的信息。用户提供了四个引用,其中引用[1]是关于安装Zabbix服务器和代理的步骤,引用[2]提到Zabbix兼容多个数据库,包括巨杉和OceanBase,以及支持国产操作系统。引用[3]是鼓励用户分享问题,引用[4]则是关于Zabbix依赖MySQL8时报错的具体问题,特别是认证插件的问题。用户的问题集中在Zabbix数据库版本过高导致的不兼容,以及如何解决这个问题。根据引用[4],用户可能遇到了类似的问题,即使用MySQL8时出现的认证插件错误。这通常是因为MySQL8默认使用caching_sha2_password,而旧版本的Zabbix可能不支持这个插件。所以解决方案可能包括修改MySQL的认证方式或者升级Zabbix到兼容的版本。接下来,我需要确认Zabbix的版本与数据库的兼容性。根据引用[2],Zabbix积极支持信创环境,可能意味着新版本对数据库的兼容性更好。用户可能需要检查他们使用的Zabbix版本是否支持高版本的数据库,比如MySQL8或更高。如果使用的是较旧的Zabbix版本,可能需要升级Zabbix,或者降级数据库版本。另外,引用[4]中的错误提示提到了Zabbix4.4和MySQL8的问题,这说明在Zabbix5.0之前可能存在兼容性问题。因此,解决方案可能包括升级Zabbix5.0或更高版本,因为这些版本可能已经支持MySQL8的认证插件。或者,修改MySQL的配置,将默认的认证插件改为mysql_native_password,这样旧版本的Zabbix就可以连接了。 还需要考虑用户的具体情况,比如他们是否已经安装了高版本的数据库,是否有升级Zabbix的可能性,或者是否只能调整数据库设置。可能的步骤包括检查Zabbix官方文档中的数据库兼容性列表,修改MySQL用户使用的认证插件,或者调整Zabbix的配置文件以使用正确的插件。 总结一下,解决方案可能包括以下几个方向: 1.升级Zabbix到支持高版本数据库的版本。 2.修改数据库的认证插件为旧版兼容的mysql_native_password。3.在安装或配置时指定正确的认证插件参数。 4.参考官方文档和社区的建议,处理依赖问题。需要确保每一步都具体可行,并且给出详细的命令或配置示例,比如如何修改MySQL用户权限,如何调整Zabbix的配置文件等。同时,提醒用户在操作前备份数据,避免造成不必要的损失。</think>### Zabbix数据库版本兼容性解决方案 #### 一、确认版本兼容性 Zabbix官方明确标注了不同版本对数据库的支持范围。例如: - **Zabbix 5.0 LTS** 支持 MySQL 8.0(需注意认证插件兼容性)[^1] - **Zabbix 6.0+** 默认支持 MySQL 8.0 的 `caching_sha2_password` 认证插件[^2] 可通过以下命令查看Zabbix当前版本: ```bash zabbix_server -V | grep "version" ``` #### 二、解决版本过高的常见方法 **1. 修改MySQL用户认证方式(适用于Zabbix 4.4-5.0)** 若使用MySQL 8.0时出现`caching_sha2_password`报错,需调整用户认证插件: ```sql ALTER USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; ``` 此操作将认证方式改为兼容旧版客户端的`mysql_native_password`[^4]。 **2. 升级Zabbix版本** - **Zabbix 5.0+** 已优化对高版本数据库的支持 - 升级步骤: ```bash rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/7/x86_64/zabbix-release-6.4-1.el7.noarch.rpm yum clean all yum upgrade zabbix-server-mysql zabbix-web-mysql ``` **3. 配置数据库连接参数** 在`zabbix_server.conf`中显式指定认证参数: ```conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=your_password DBSocket=/var/lib/mysql/mysql.sock DBPort=3306 ``` #### 三、验证兼容性 通过以下命令测试数据库连接: ```bash mysql -u zabbix -p -D zabbix -h localhost --protocol=tcp --ssl-mode=DISABLED ``` #### 四、特殊场景处理 若需强制使用特定数据库版本,可通过Docker部署指定版本数据库: ```bash docker run --name mysql-zabbix -e MYSQL_ROOT_PASSWORD=root -e MYSQL_USER=zabbix -e MYSQL_PASSWORD=zabbix -p 3306:3306 -d mysql:5.7 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小王格子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值