Zabbix サーバーのアップグレード手順

Zabbix
Zabbix
スポンサーリンク

約10年ぶりに Zabbixサーバーをアップグレードする機会があったのですが、いつからか公式のアップグレード手順のドキュメントがとても充実していて、スムーズに作業を行うことができました。そこで今回は、どの Zabbix公式ドキュメントを参照すればよいかを踏まえつつ、例として Zabbixサーバー 6.4.x から 7.0 へのアップグレード手順をまとめてみました。

関連記事:Zabbix 7.0 インストールと管理画面のSSL設定メモ

アップグレード前の準備

冒頭にも書きましたが Zabbix はアップグレードに関してかなり詳細なドキュメントが用意されていますので、アップグレードをする前にどのような準備が必要なのか、機能の変更によって運用に影響はないか、などを確認しておきましょう。
8 Upgrade procedure | Zabbix Documentation

今回は、Zabbix バージョン 6.4.x から 7.0 へのアップグレードになりますので以下のドキュメントを確認します。
11 Upgrade notes for 7.0.0 | Zabbix Documentation

例えば事前の準備として、Zabbix バージョン 7.0 では PHP 8.0 以上が必須になっていますので、Zabbixサーバーの PHP バージョンを確認して、それを満たしていないのであれば事前に PHP のバージョンアップが必要になります。

(補足)Zabbix エージェントのアップグレード

Zabbixサーバーをアップグレードしても、Zabbixエージェントのアップグレードは推奨はされるものの必須ではありません。ただし逆に、Zabbixサーバーのバージョン以上の Zabbixエージェントはサポートされません。(例えば、Zabbixサーバーが 6.4、Zabbixエージェントが 7.0 というのはNGです)
11 Version compatibility | Zabbix Documentation

アップグレード手順の確認

具体的なアップグレード手順についても、様々なパターンのドキュメントが用意されていますので、環境に合った手順を確認します。
1 Upgrade from sources | Zabbix Documentation
2 Upgrade from packages | Zabbix Documentation
3 Upgrade from containers | Zabbix Documentation

今回は、RHEL系の Rocky Linux 9 上で稼働する Zabbixバージョン 6.4.x をアップグレードしますので、以下のドキュメントを確認します。
1 Red Hat Enterprise Linux | Zabbix Documentation

Zabbix バージョン 7.0 ではディストリビューションごとにパッケージが用意されていますので、Rocky Linux 用のリポジトリパッケージに更新する必要があるようです。

アップグレード手順の作成

ここまで確認した Zabbix公式ドキュメントを元に、自分の環境に合わせたアップグレード手順書を作成して実行します。

Zabbix サーバーとエージェントを停止

sudo systemctl stop zabbix-server
sudo systemctl stop zabbix-agent

MySQL の設定を変更

mysql -u root -p
SET GLOBAL log_bin_trust_function_creators = 1;
exit;

バックアップ用ディレクトリの作成

mkdir ~/zabbix64-backup/

Zabbixデータベースのバックアップ

mysqldump -u root -p zabbix > ~/zabbix64-backup/zabbix.sql

設定ファイルのバックアップ

sudo cp /etc/zabbix/zabbix_server.conf ~/zabbix64-backup/
sudo cp /etc/httpd/conf.d/zabbix.conf ~/zabbix64-backup/

PHP ファイルと Zabbix バイナリのバックアップ

sudo cp -R /usr/share/zabbix/ ~/zabbix64-backup/
sudo cp -R /usr/share/zabbix-* ~/zabbix64-backup/

リポジトリパッケージの更新(Rocky Linux 9 用です)

sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-3.el9.noarch.rpm

Zabbix コンポーネントのアップグレード

sudo dnf upgrade zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf
sudo dnf upgrade zabbix-selinux-policy
sudo dnf upgrade zabbix-agent
sudo dnf upgrade zabbix-web-japanese
sudo dnf upgrade zabbix-get

Zabbix サーバーとエージェントを起動

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

MySQL の設定を元に戻す

mysql -u root -p
SET GLOBAL log_bin_trust_function_creators = 0;
exit;

各種ログにエラーが無いことを確認

sudo systemctl status zabbix-server
sudo systemctl status zabbix-agent
tail -f /var/log/zabbix/zabbix_server.log
tail -f /var/log/zabbix/zabbix_agentd.log

後は実際に Zabbixサーバーの管理画面を確認して正常に動作していることを確認しましょう。

おわりに

これは Zabbix に限った話ではありませんが、サーバーOSやミドルウェアはバージョンを固定せずにこまめにバージョンアップした方が、バージョンアップにまつわる手間はあるものの、結果として運用負担が少なくなることを最近感じます。少し覚悟が必要ですが、今後は Zabbix もマイナーバージョンアップごとに更新しようと思った今日この頃です。

コメント

タイトルとURLをコピーしました