1. 程式人生 > >zabbix 3.4.x 二進制包升級至 Zabbix 4.0

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

正常 postgresq 日誌 磁盤空間 log dup enter art fields

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

1、官方文檔

Red Hat Enterprise Linux/CentOS:
https://www.zabbix.com/documentation/4.0/zh/manual/installation/upgrade/packages/rhel_centos

Debian/Ubuntu:
https://www.zabbix.com/documentation/4.0/zh/manual/installation/upgrade/packages/debian_ubuntu

雖然升級 Zabbix agent 不是強制性的,但建議將其升級,而 Zabbix server 和 Zabbix proxy 必須具有 相同的主要版本。因此,在 Zabbix server 和 Zabbix proxy 的架構升級時,Zabbix server 和所有的 Zabbix proxy 必須停止並升級。

為了最大限度地減少升級期間的停機時間和數據丟失的幾率,建議先停機並升級 Zabbix server,然後再逐個停機並升級 Zabbix proxy,待升級完畢後,先啟動 Zabbix proxy,再啟動 Zabbix server。在 Zabbix server 停機期間,運行中的 Zabbix Proxy 將繼續采集和存儲數據,並在 Zabbix server 啟動並運行後,將數據傳遞給 Zabbix server。 只有在升級的 Zabbix server 啟動後,才會生成 Zabbix server停機期間出現問題的任何通知。

根據其數據庫大小,數據庫升級到 4.0 版本可能需要很長時間。

2、系統環境

系統:CentOS Linux release 7.5.1804 (Core)
安裝方式:yum
zabbix舊版本:3.4.2
zabbix新版本:4.0.5

3、升級步驟

3.1、停止 Zabbix 進程

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

systemctl stop zabbix-server

如果需要升級 Zabbix proxy,那麽同樣停止 Zabbix proxy 進程。

systemctl stop zabbix-proxy

3.2、備份當前的數據庫

這是非常重要的步驟。升級前請確保備份了數據庫。如果升級失敗(因磁盤空間不足、斷電或其他意外導致的升級失敗),備份的數據庫將大有幫助。

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.4、升級 Zabbix 軟件倉庫配置包

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

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

3.5、升級 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.6、檢查 Zabbix 組件配置文件的參數

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

3.7、啟動 Zabbix 進程

啟動升級後的 Zabbix 組件。

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

3.8、清除瀏覽器的 Cookies 和緩存

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

4、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、升級過程中遇到的問題

5.1、前端與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.2、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

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