Zabbix Server をバージョンアップする機会があったので備忘録がてら手順を紹介します。
やっつけでやってみた印象としては、以外と簡単にできるんだなぁと。途中でつまづきはしたんだけども。。。そのあたりも含めてまとめております。
まぁ何か合ったときのためにDBのバックアップはちゃんととっておきましょうね。
Zabbix Server バージョンアップ
それでは早速始めていきます。
DB のバックアップ
これがないと始まらない。始められない、怖すぎて。
1 |
# mysqldump --default-character-set=utf8 -u root -p --lock-all-tables --all-databases > zabbix_backup.sql |
オプションの説明
--default-character-set=utf8 → 文字化け防止
--lock-all-tables → ダンプ開始から完了まで、全てのデータベースと全てのテーブルをロックします。安全に取りましょうということです。
--all-databases → 全てのデータベースの全てのテーブルをダンプします。
Zabbix Server と Zabbix Agent の停止
1 2 |
# systemctl stop zabbix-agent # systemctl stop zabbix-server |
特に説明はない。
現行Versionのリポジトリをアンインストール
Version 2.4 のリポジトリを一旦アンインストールします。パッケージからインストールしていれば、構築時にインストールされているはず。
1 |
# yum remove zabbix-release |
特に説明はない。
新Version(3.0)のリポジトリをインストール
1 |
yum install http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm |
3.2 や 3.4 の場合は、それぞれのバージョンに置き換えて実行すればいけると思います。いけなければ、urlにアクセスして確認してみてください。
yum のキャッシュ削除
yum のキャッシュで古い方のリポジトリを参照してしまう可能性があるため、以下のコマンドでキャッシュを削除します。
1 |
# yum clean all |
覚えておくと便利。zabbixでなくともバージョンアップのときは三種の神器的コマンド。
アップデート
メインディッシュですが、これだけです。
1 |
# yum update zabbix |
zabbix関連のみアップデートしたいので、zabbix を引数に指定しています。
終わったら起動してWebブラウザから確認してみます。
1 2 |
# systemctl start zabbix-server # systemctl start zabbix-agent |
http://hostname/zabbix などでアクセスしてみます。
エラーの確認と対処
やっぱりね。こんな簡単にいくわけないんだ。。。
てことで、出たエラーが以下。
1 2 |
Cannot connect to the database. Details The frontend does not match Zabbix database. Current database version (mandatory/optional): 2040000/2040000. Required mandatory version: 3000000. Contact your system administrator. |
データベースに接続できません。
フロントエンドがzabbixデータベースと一致していません。
だそうです。ひとつづつ解決していこう。じゃないと帰れない。。。
ログを確認してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
17132:20171116:175539.224 using configuration file: /etc/zabbix/zabbix_server.conf 17132:20171116:175539.303 current database version (mandatory/optional): 02040000/02040000 17132:20171116:175539.303 required mandatory version: 03000000 17132:20171116:175539.303 starting automatic database upgrade 17132:20171116:175539.333 completed 0% of database upgrade 17132:20171116:175539.350 completed 1% of database upgrade 17132:20171116:175539.461 completed 2% of database upgrade : 17132:20171116:175542.525 completed 98% of database upgrade 17132:20171116:175542.526 completed 99% of database upgrade 17132:20171116:175542.526 completed 100% of database upgrade 17132:20171116:175542.526 database upgrade fully completed 17132:20171116:175542.634 server #0 started [main process] 17143:20171116:175542.646 server #5 started [poller #3] 17144:20171116:175542.649 server #6 started [poller #4] 17139:20171116:175542.652 server #1 started [configuration syncer #1] 17140:20171116:175542.652 server #2 started [db watchdog #1] 17141:20171116:175542.652 server #3 started [poller #1] |
データベースのアップデートは問題なさそうです。もしかして、アクセスするのが早かったのかなぁ~と思ってもう一回アクセスするも現象変わらず。世の中そんな甘くない。
zabbixのログをみる限りだと正常なんだけどなぁ。
フロントエンドってなんのことを指しているんだ?アップデートできていないものがあるのか?
zabbix関連のパッケージを見てみたところ、あー!2.4 が残ってるじゃん!しかも zabbix-web-*** というわかりやすい、まさにフロントエンド。。。エラーのメッセージとも内容が一致するしコレで間違いなさそうです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# rpm -qa|grep zabbix zabbix-web-mysql-2.4.5-1.el7.noarch zabbix-get-2.4.5-1.el7.x86_64 zabbix-java-gateway-3.0.13-2.el7.x86_64 zabbix-proxy-mysql-3.0.13-2.el7.x86_64 zabbix-web-2.4.5-1.el7.noarch zabbix-web-japanese-2.4.5-1.el7.noarch zabbix-release-3.0-1.el7.noarch zabbix-proxy-pgsql-3.0.13-2.el7.x86_64 zabbix-server-mysql-3.0.13-2.el7.x86_64 zabbix-agent-3.0.13-2.el7.x86_64 zabbix-server-pgsql-3.0.13-2.el7.x86_64 zabbix-proxy-sqlite3-3.0.13-2.el7.x86_64 # rpm -qa | grep zabbix | grep 2.4.5 zabbix-web-mysql-2.4.5-1.el7.noarch zabbix-get-2.4.5-1.el7.x86_64 zabbix-web-2.4.5-1.el7.noarch zabbix-web-japanese-2.4.5-1.el7.noarch |
ということで、インストール(アップデート)します。
1 |
# yum install zabbix-web-mysql zabbix-get zabbix-web zabbix-web-japanese |
きちんと指定しましたが、zabbix-get 以外は依存関係でインストールされます。
で、Webブラウザでアクセスしてみると、おー!きたきたー!この画面だよー!めでたしめでたし。
でも、パッケージ名は zabbix-*** なのに、なんで yum update でアップデートされないんだろう。。。zabbix を指定しないで yum update したほうがよかったのかも。
以上です。
↓↓↓ 持っていると便利な一冊。