メニュー

1-16 (寄り道)Zabbixのアップグレード

2024/06/04にZabbix 7.0 LTSが公開された。
6.4を入れたばかりだが、アップグレード対応に挑戦。

ちなみにサポートはLTS版の方が長い。
公式の情報を覗くと、LTS版のフルサポートは3年、LTS無しだとサポートは1年くらい。私は慣れていないので、今後もLTS版を選ぶ予定。
LTSのリミテッドサポートは5年、延長サポートは2年となる。

2024/6にリリースされたZabbix 7.0 LTSを導入したらフルサポートは2027/6まで、リミテッドサポートは2029/6まで、延長サポートは2031/6まで。

Zabbixのアップグレード手順

アップグレードはZabbixのドキュメント(英文)を読みながら対応する。
今回の環境の場合だと、Zabbixを6.4→7.0に上げるための手順書と、CentOS Stream9のパッケージのアップグレードの手順書(Red Hat系、Linux系)を用意する。RHELはRed Hat Enterprise Linux。

最初の準備

最初にバイナリロギングを有効にする。最後に無効にするのを忘れない。

SET GLOBAL log_bin_trust_function_creators=1;

次にZabbixのサービスを停止する。

systemctl stop zabbix-server

zabbix-proxyサービスは導入していないのでコマンド不要。
※今回やらなかったけど、もしかするとzabbix-agentもstopさせてた方がいいかもしれない。

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

バックアップは/optに入れる。
今のところ/optディレクトリにはremiが入っている。/optディレクトリにはremiのようにシステムに最初から組まれていないものや、干渉を避けてバックアップデータを保存できるので、Zabbix以外のことでも上手いこと活用しよう。

/optの中にZabbixのバックアップディレクトリを用意する。

mkdir /opt/zabbix-7.0_upgrade-backup/

事が終わったら削除してもいいのだろうけど、慣れないうちは様子見で。

設定ファイルをZabbixのバックアップディレクトリにコピーする。注意点として、私は「zabbix-apache-conf」ではなく「zabbix-nginx-conf」を使っているので、コピー対象の設定ファイルを間違えないこと。
あとは念のためzabbix_agentd.confもバックアップを取っといた。

cp /etc/zabbix/zabbix_server.conf /opt/zabbix-7.0_upgrade-backup/
cp /etc/zabbix/zabbix_agentd.conf /opt/zabbix-7.0_upgrade-backup/
cp /etc/nginx/conf.d/zabbix.conf  /opt/zabbix-7.0_upgrade-backup/

バイナリファイルのバックアップも行う。

cp -r /usr/share/zabbix/ /opt/zabbix-7.0_upgrade-backup/
cp -r /usr/share/zabbix-* /opt/zabbix-7.0_upgrade-backup/

「/usr/share/zabbix-*」とすることで/usr/share/zabbix-sql-scriptsディレクトリもバックアップを取れた。

リポジトリの更新

インストールの案内ページにもあるように、rpmコマンドで更新する。
rpmコマンドの-Uオプションを使うと、インストール済みのパッケージならアップグレードしてくれる。

rpmコマンド使用前と使用後に「dnf info zabbix-agent」をしたので比較。

rpmコマンド使用前
rpmコマンド使用後

関連・依存パッケージをupgradeすると、インストール済みパッケージが7.0.0になるかも。

7.0.0からライセンスが「GPLv2+」から「AGPL3」になる模様。ソフトウェアだけでなくネットワーク越しにもライセンスの効力があるとのこと。

アップグレードはパッケージ1つ1つ調べてやっていくのもありだと思うけど、取りこぼしが怖いので一括でのアップグレードを行なう。

まずはinfoで何のパッケージがあるかだけ確認。

dnf info 'zabbix-*'

パッケージzabbix-web-depsがあるのを知らなかったし、zabbix-web-depsのバージョンが6.4.15になっていたので、取りこぼさないよう一括でアップグレードする。

dnf upgrade 'zabbix-*'
関連・依存パッケージのアップグレード後

インストール済みパッケージが無事に7.0.0になっていた。
アップグレード後には念のためdnf clean allを行なっておく。

アップグレードの最後の仕上げ

zabbix-serverとzabbix-agentを起動する。

systemctl start zabbix-server
systemctl start zabbix-agent

mysqlからバイナリロギングを無効にする。

SET GLOBAL log_bin_trust_function_creators=0;

ダッシュボードにログインし、一番下のバージョンを確認して終了。