Zabbix 3.4.x 二進制包升級至 Zabbix 4.0前端
Red Hat Enterprise Linux/CentOS:
https://www.zabbix.com/documentation/4.0/zh/manual/installation/upgrade/packages/rhel_centosmysql
Debian/Ubuntu:
https://www.zabbix.com/documentation/4.0/zh/manual/installation/upgrade/packages/debian_ubuntuweb
雖然升級 Zabbix agent 不是強制性的,但建議將其升級,而 Zabbix server 和 Zabbix proxy 必須具備 相同的主要版本。所以,在 Zabbix server 和 Zabbix proxy 的架構升級時,Zabbix server 和全部的 Zabbix proxy 必須中止並升級。sql
爲了最大限度地減小升級期間的停機時間和數據丟失的概率,建議先停機並升級 Zabbix server,而後再逐個停機並升級 Zabbix proxy,待升級完畢後,先啓動 Zabbix proxy,再啓動 Zabbix server。在 Zabbix server 停機期間,運行中的 Zabbix Proxy 將繼續採集和存儲數據,並在 Zabbix server 啓動並運行後,將數據傳遞給 Zabbix server。 只有在升級的 Zabbix server 啓動後,纔會生成 Zabbix server停機期間出現問題的任何通知。shell
根據其數據庫大小,數據庫升級到 4.0 版本可能須要很長時間。數據庫
系統:CentOS Linux release 7.5.1804 (Core)
安裝方式:yum
zabbix舊版本:3.4.2
zabbix新版本:4.0.5ubuntu
中止 Zabbix server 以確保沒有新數據插入數據庫。centos
systemctl stop zabbix-server
若是須要升級 Zabbix proxy,那麼一樣中止 Zabbix proxy 進程。瀏覽器
systemctl stop zabbix-proxy
這是很是重要的步驟。升級前請確保備份了數據庫。若是升級失敗(因磁盤空間不足、斷電或其餘意外致使的升級失敗),備份的數據庫將大有幫助。緩存
在升級前請確保備份了配置文件、PHP 文件和 Zabbix 二進制文件。
配置文件:
# mkdir /opt/zabbix-backup/ # cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/ # cp /etc/httpd/conf.d/zabbix.conf /opt/zabbix-backup/
PHP 文件和 Zabbix 二進制文件:
# cp -R /usr/share/zabbix/ /opt/zabbix-backup/ # cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/
在升級以前,必須更新當前的軟件倉庫包:
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
依賴包:
libpthread - 編譯Zabbix服務器和Zabbix代理時,如今必須使用POSIX Threads庫。它是進程共享互斥鎖和讀寫鎖所必需的。若是互斥鎖可用,但沒法進行共享,那麼Zabbix將在升級以前回退使用信號量。
zlib - 編譯Zabbix服務器和Zabbix代理時,壓縮庫如今是必需的。
# yum install glibc-devel zlib-devel -y # 依賴
運行如下命令以升級 Zabbix 組件:
# yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent
若是使用 PostgreSQL 數據庫,請將命令中的mysql
替換爲pgsql
。若是升級 Zabbix proxy,請將命令中的server
替換爲proxy
。
在新版本中,Zabbix 組件的配置文件發生了一些變化,關於這些[強制變動[(https://www.zabbix.com/documentation/4.0/manual/installation/upgrade_notes_400#configuration_parameters),詳見升級說明。
啓動升級後的 Zabbix 組件。
# systemctl start zabbix-server # systemctl start zabbix-proxy # systemctl start zabbix-agent
待升級完畢後,可能須要清除瀏覽器的 Cookies 和緩存,以便 Zabbix 的 Web 界面能正常工做。
若是要升級 Zabbix 的次要版本(例如,從 4.0.1 升級至 4.0.3),是很是容易的:
在升級 Zabbix 全部組件的次要版本時,只需運行如下命令:
$ sudo yum upgrade 'zabbix-*'
在升級 Zabbix server 的次要版本時,只需運行如下命令:
$ sudo yum upgrade 'zabbix-server-*'
在升級 Zabbix agent 的次要版本時,只需運行如下命令:
$ sudo yum upgrade 'zabbix-agent-*'
請注意,您也能夠在這些命令中使用 'update' 而不是 'upgrade'。 雖然 'upgrade' 會刪除過期的包,但 'update' 會保留它們。
The frontend does not match Zabbix database. Current database version (mandatory/optional): 3050047/3050047. Required mandatory version: 4000000. Contact your system administrator.
mysql> use zabbix; mysql> update dbversion set mandatory=3040000; mysql> flush privileges;
若是服務端zabbix-server沒法啓動,查看日誌/var/log/zabbix/zabbix_server.log
/var/log/zabbix/zabbix_server.log [Z3005] query failed: [1060] Duplicate column name 'query_fields' [alter table `items` add `query_fields` varchar(2048) default '' not null]
報上面錯誤,請去數據庫執行下面命令:
use zabbix; alter table items drop column query_fields; flush privileges;