Zabbix 6.4 から Zabbix 7 にバージョンアップ

Zabbix 7にバージョンアップについて

2024 年 6 月 4 日にZabbix 7がリリースされたましたが、リリース後にバージョンアップを考えていましたが時間が取れたので、Zabbix 6.4 から Zabbix 7 にバージョンアップに移行してみました。

Zabbix 7の新機能は、「Zabbix 7 の新機能について」の記事を参考にしてください。

Zabbix 7の要件ですが、以下となります。詳細は公式のページで確認してください

要件
【DB】

  • MySQL/Percona One of 8.0.30-9.0.X
  • MariaDB 10.5.00-11.5.X
  • PostgreSQL 13.0-16.X

【Frontend】

  • Apache One of 2.4 or later
  • Nginx 1.20 or later
  • PHP Yes 8.0.0 – 8.3.X

Zabbix7のインストール(アップデート)手順

PHP 8.xの対応

Zabbix 6.4 に稼働しているサーバーですが、DB、Webサーバーは要件に対応しているのですが、PHPが7.4を利用しているのでPHP8へのバージョンアップが必要ですので下記の手順で、PHP 8にバージョンアップしました

1.phpがどのバージョンに対応しているか、どのバージョンで稼働しているか確認します

$ sudo dnf module list php
Last metadata expiration check: 17:08:45 ago on Mon 09 Sep 2024 04:09:40 PM JST.
Rocky Linux 8 - AppStream
Name     Stream          Profiles                      Summary                  
php      7.2 [d]         common [d], devel, minimal    PHP scripting language   
php      7.3             common [d], devel, minimal    PHP scripting language   
php      7.4             common [d], devel, minimal    PHP scripting language   
php      8.0             common [d], devel, minimal    PHP scripting language   
php      8.2             common [d], devel, minimal    PHP scripting language   

Remi's Modular repository for Enterprise Linux 8 - x86_64
Name     Stream          Profiles                      Summary                  
php      remi-7.2        common [d], devel, minimal    PHP scripting language   
php      remi-7.3        common [d], devel, minimal    PHP scripting language   
php      remi-7.4 [e]    common [d], devel, minimal    PHP scripting language   
php      remi-8.0        common [d], devel, minimal    PHP scripting language   
php      remi-8.1        common [d], devel, minimal    PHP scripting language   
php      remi-8.2        common [d], devel, minimal    PHP scripting language   
php      remi-8.3        common [d], devel, minimal    PHP scripting language

php 8に対応しているので、php8にバージョンアップします。手順としてはphpのモジュールをリセットしてremi-8のphpモジュールに変更して、その後php8にバージョンアップします

# 現状のphpをリセットする
$ sudo dnf module reset php

# remi-8.0 に変更する
$ sudo dnf module enable php:remi-8.0
Last metadata expiration check: 17:09:14 ago on Mon 09 Sep 2024 04:09:40 PM JST.
Dependencies resolved.
================================================================================
 Package           Architecture     Version             Repository         Size
================================================================================
Enabling module streams:
 php                                remi-8.0                                   

# php8 にアップデートする
$ sudo dnf update php

バージョンアップをされたか確認します

$ php -v
PHP 8.0.30 (cli) (built: Aug 26 2024 12:50:06) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.30, Copyright (c), by Zend Technologies

Zabbixをバージョンアップの準備

zabbix-server, zabbix-agentをを停止します。zabbix-agentが別サーバーで稼働している場合は、そのzabbix-agentも停止します

# zabbix-server
$ sudo systemctl stop zabbix-server
# zabbix-agent
$ sudo systemctl stop zabbix-agent

既存のZabbixの設定ファイルがあるディレクトリをバックアップします。zabbix-agentが別サーバーで稼働している場合も同様にバックアップします

# バックアップ用のディレクトリを作成する
$ sudo mkdir /var/tmp/zabbix-backup

# 既存のZabbixのディレクトリをコピーします
$ sudo cp -pr /etc/zabbix /var/tmp/zabbix-backup

Zabbixをバージョンアップ

Zabbix7のレポジトリに変更してから、Zabbixをdnfコマンドでアップデートすると、Zabbix7にバージョンアップされます。

リポジトリ構成パッケージをZabbix7に更新する

・RHEL 9
$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-latest.el9.noarch.rpm

・RHEL 8
$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/8/x86_64/zabbix-release-latest.el8.noarch.rpm

インストールされているZabbixコンポーネントの確認します。

$ rpm -qa|grep zabbix
zabbix-apache-conf-6.4.18-release1.el8.noarch
zabbix-web-6.4.18-release1.el8.noarch
zabbix-agent-6.4.18-release1.el8.x86_64
zabbix-selinux-policy-6.4.18-release1.el8.x86_64
zabbix-release-7.0-5.el8.noarch
zabbix-web-mysql-6.4.18-release1.el8.noarch
zabbix-sql-scripts-6.4.18-release1.el8.noarch
zabbix-web-japanese-6.4.18-release1.el8.noarch
zabbix-web-deps-6.4.18-release1.el8.noarch
zabbix-web-service-6.4.18-release1.el8.x86_64
zabbix-server-mysql-6.4.18-release1.el8.x86_64

dnfコマンドで、zabbix をバージョンアップ

$ sudo dnf update dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

Zabbix7にバージョンアップされたかを確認します

# rpm -qa|grep zabbix
zabbix-sql-scripts-7.0.3-release1.el8.noarch
zabbix-web-7.0.3-release1.el8.noarch
zabbix-agent-7.0.3-release1.el8.x86_64
zabbix-release-7.0-5.el8.noarch
zabbix-selinux-policy-7.0.3-release1.el8.x86_64
zabbix-web-mysql-7.0.3-release1.el8.noarch
zabbix-server-mysql-7.0.3-release1.el8.x86_64
zabbix-web-service-6.4.18-release1.el8.x86_64
zabbix-web-deps-7.0.3-release1.el8.noarch
zabbix-web-japanese-7.0.3-release1.el8.noarch
zabbix-apache-conf-7.0.3-release1.el8.noarch

Zabbix 6.4 のコンポーネントが残っているか確認します

# 旧バージョンが残っていないか確認します
$ rpm -qa|grep zabbix | grep "6.4"
zabbix-web-service-6.4.18-release1.el8.x86_64

# zabbix-web-serviceが残っていたのでバージョンアップします
$ sudo dnf update zabbix-web-service

Zabbixプロセスを再起動

$ sudo systemctl start zabbix-server
$ sudo systemctl start zabbix-agent

ZabbixのWEB管理画面にアクセスしてログインして各情報に異常がなければ、無事にバージョンアップが終了です