1、简介
这里记录的是zabbix从3.4升级到4.4;
在这个升级过程中,遇到过各种问题,总结了一下,zabbix升级包含3部分,zabbix-server的升级、zabbix-agent的升级、zabbix-web的升级;默认在百度中的都是zabbix-server、zabbix-agent的升级,没有zabbix-web的升级,这也导致了我出现了各种错误;
在升级过程中,我用过zabbix官方的zabbix-release-4.5的版本,这升级失败,我去这个zabbix-release的源里面看过,没有zabbix-web的rpm包,这就升级不上去了;
我也用过zabbix-release-5.0的版本,但这个的nginx版本是单独的,这和我的nginx有了冲突,我不想继续搞的复杂了;
于是我在zabbix的官网,找了zabbix-release-4.4版本,升级成功,zabbix-server的升级、zabbix-agent的升级、zabbix-web的升级都成功了,当然过程中也遇到了2个问题,也搞了一段时间,总算解决了;
总结:zabbix低级版本升级为高级版本,是自动完成的,安装高级版本的rpm包即可,升级zabbix-server的时候,数据库也自动升级了;
注意:升级的时候,提前冷备数据库、提前冷备数据库、提前冷备数据库;
个人过程总结:升级失败了,就恢复了3.4,然后重新升级,折腾了几次;
2、步骤【参考3】
下面是默认的zabbix4.4的升级步骤,参考了安装步骤,就是将安装步骤删除了数据库配置部分
Install and configure Zabbix server for your platform
a. Install Zabbix repository
documentation
# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
# yum clean all
b. Install Zabbix server and agent
# yum install zabbix-server-mysql zabbix-agent
c. Install Zabbix frontend
Install epel repository.
# yum install epel-release
Install Zabbix frontend packages.
# yum install zabbix-web-mysql zabbix-nginx-conf
e. Configure the database for Zabbix server
Edit file /etc/zabbix/zabbix_server.conf
DBPassword=password
f. Configure PHP for Zabbix frontend
Edit file /etc/nginx/conf.d/zabbix.conf, uncomment and set 'listen' and 'server_name' directives.
# listen 80;
# server_name example.com;
Edit file /etc/php-fpm.d/zabbix.conf, uncomment and set the right timezone for you.
; php_value[date.timezone] = Europe/Riga
g. Start Zabbix server and agent processes
Start Zabbix server and agent processes and make it start at system boot.
# systemctl restart zabbix-server zabbix-agent nginx php-fpm
# systemctl enable zabbix-server zabbix-agent nginx php-fpm
3、注意事项
在升级完成后,出现了两个错误,根据百度发现,都是权限问题,这里记录一下:
1)报错内容:Failed opening required
详细报错内容:在/var/log/nginx/error.log显示如下内容
2020/06/27 16:24:40 [error] 28823#0: *1 FastCGI sent in stderr: "PHP message: PHP Warning: require_once(/etc/zabbix/web/maintenance.inc.php): failed to open stream: Permission denied in /usr/share/zabbix/include/classes/core/ZBase.php on line 280
PHP message: PHP Fatal error: require_once(): Failed opening required '/etc/zabbix/web/maintenance.inc.php' (include_path='.:/usr/share/pear:/usr/share/php') in /usr/share/zabbix/include/classes/core/ZBase.php on line 280" while reading response header from upstream, client: , server: , request: "GET /zabbix.php?action=dashboard.view HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: ""
问题解决思路:从日志找到了错误,打开了其中的文件ZBase.php的280行,发现280行包含了/etc/zabbix/web/maintenance.inc.php,根据百度结果,是权限问题,修改了一下权限;
问题解决策略,修改特定文件夹的权限
问题解决命令,chown -R nginx:nginx /etc/zabbix/web
2)报错内容:Cannot start session
报错详细内容:在web界面显示“Cannot start session”
问题解决策略:修改特定文件夹的权限
问题解决思路:从日志没找到错误,百度说发现还是php的权限问题,去搜索了php的配置文件/etc/php*的所有文件,发现了包含session字段的目录,修改了权限;
问题解决命令,chown -R nginx:nginx /var/lib/php/session/
(Failed opening required)参考1:https://www.qiansw.com/zabbix-installation-report-maintenanceincphp-no-permissions.html
(zabbix4.4安装或者升级)参考3:https://www.zabbix.com/download?zabbix=4.4&os_distribution=centos&os_version=7&db=mysql&ws=nginx
时间:2020-06-28