約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 もマイナーバージョンアップごとに更新しようと思った今日この頃です。
コメント