zabbix 3.4.x 二進制包升級至 Zabbix 4.0

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

三、升級步驟

3.一、中止 Zabbix 進程

中止 Zabbix server 以確保沒有新數據插入數據庫。centos

systemctl stop zabbix-server

若是須要升級 Zabbix proxy,那麼一樣中止 Zabbix proxy 進程。瀏覽器

systemctl stop zabbix-proxy

3.二、備份當前的數據庫

這是很是重要的步驟。升級前請確保備份了數據庫。若是升級失敗(因磁盤空間不足、斷電或其餘意外致使的升級失敗),備份的數據庫將大有幫助。緩存

3.三、備份配置文件、PHP 文件和 Zabbix 二進制文件

在升級前請確保備份了配置文件、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/

3.四、升級 Zabbix 軟件倉庫配置包

在升級以前,必須更新當前的軟件倉庫包:

rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

3.五、升級 Zabbix 組件

依賴包:
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

3.六、檢查 Zabbix 組件配置文件的參數

在新版本中,Zabbix 組件的配置文件發生了一些變化,關於這些[強制變動[(https://www.zabbix.com/documentation/4.0/manual/installation/upgrade_notes_400#configuration_parameters),詳見升級說明

3.七、啓動 Zabbix 進程

啓動升級後的 Zabbix 組件。

# systemctl start zabbix-server
# systemctl start zabbix-proxy
# systemctl start zabbix-agent

3.八、清除瀏覽器的 Cookies 和緩存

待升級完畢後,可能須要清除瀏覽器的 Cookies 和緩存,以便 Zabbix 的 Web 界面能正常工做。

四、Zabbix 次要版本之間的升級

若是要升級 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' 會保留它們。

五、升級過程當中遇到的問題

5.一、前端與Zabbix數據庫不匹配

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;

5.二、zabbix-server沒法啓動

若是服務端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;

end

相關文章
相關標籤/搜索