Zabbix2.2.4→3.0.3へのバージョンアップについて
正規のやり方とは違うかもしれませんがご容赦ください。
Zabbix3.0はCentOS6よりもCentOS7の方が良いようなので、CentOS7をインストールし、Zabbix3.0もインストールして、もともと使っていたZabbix環境からデータベースをsqldumpコマンドでダンプして、新たにインストールしたZabbix3.0へダンプファイルをインポートしました。
やり方は以下のサイトを参考にしています。
http://www.life-type.com/2016/02/zabbix2430.html
ところが、進めていくとWeb画面設定で以下のメッセージが出てしまい、先に進めません。
------------------------------------------------------------------
Cannot connect to the database.
Details–The frontend does not match Zabbix database. Current database version (mandatory/optional): 2020000/2020001. Required mandatory version: 3000000. Contact your system administrator.
------------------------------------------------------------------
おそらくデータベースバージョンが合っていないということなのでしょうが、この場合、どのように対処すれば良いものでしょうか?
TNK - 投稿数: 4740
データベースのアップグレードは、zabbix_server起動時に行われ
ます。
データベースのアップグレードが終了しなければ、新しいバージョ
ンのWebインターフェースから接続することはできません。
参考にされた記事にもあるとおり、zabbix_severを起動して、デー
タベースの変換が終わったかログを確認してからWebインターフェ
ースでアクセスしてみてください。
Ryo Sugisaki - 投稿数: 139
ログを確認すると、アップグレードがfailedしてます。
この状態だとダメですよね。
12649:20160706:163925.247 Starting Zabbix Server. Zabbix 3.0.3 (revision 60173).
12649:20160706:163925.247 ****** Enabled features ******
12649:20160706:163925.248 SNMP monitoring: YES
12649:20160706:163925.248 IPMI monitoring: YES
12649:20160706:163925.248 Web monitoring: YES
12649:20160706:163925.248 VMware monitoring: YES
12649:20160706:163925.248 SMTP authentication: YES
12649:20160706:163925.248 Jabber notifications: YES
12649:20160706:163925.248 Ez Texting notifications: YES
12649:20160706:163925.248 ODBC: YES
12649:20160706:163925.248 SSH2 support: YES
12649:20160706:163925.248 IPv6 support: YES
12649:20160706:163925.248 TLS support: YES
12649:20160706:163925.248 ******************************
12649:20160706:163925.248 using configuration file: /etc/zabbix/zabbix_server.conf
12649:20160706:163925.254 current database version (mandatory/optional): 02030020/02030020
12649:20160706:163925.254 required mandatory version: 03000000
12649:20160706:163925.254 starting automatic database upgrade
12649:20160706:163925.255 [Z3005] query failed: [1050] Table 'item_condition' already exists [create table item_condition (
item_conditionid bigint unsigned not null,
itemid bigint unsigned not null,
operator integer default '8' not null,
macro varchar(64) default '' not null,
value varchar(255) default '' not null,
primary key (item_conditionid)
) engine=innodb]
12649:20160706:163925.255 database upgrade failed
TNK - 投稿数: 4740
これではだめですね。
先に書かれていた手順をみると、Zabbix 3.0の環境を構築してから
以前のバージョンのデータをインポートされたとあるので、Zabbix
3.0用のデータベースを作成された後で、上書きでデータをインポー
トされませんでしたか?
データベースは、テーブルの作成処理を含めて、以前使われていた
バージョンのダンプを利用してインポートしてください。
Ryo Sugisaki - 投稿数: 139
>Zabbix 3.0用のデータベースを作成された後で、上書きでデータをインポー トされませんでしたか?
その通りです。
>データベースは、テーブルの作成処理を含めて、以前使われていた バージョンのダンプを利用してインポートしてください。
このやり方がよく分からないのですが、やり方を教えて頂けませんでしょうか。
TNK - 投稿数: 4740
sqldumpというコマンドは知らないのですが、mysqldumpの場合、
コマンドのオプションで、データベースをテーブルの定義も含めて
ダンプしたり、テーブルの中身だけをダンプしたりすることができ
ます。
以前の環境のダンプは、具体的にどのようなコマンドで、どのよう
なオプションで取得されたのですか?
テーブルの定義も含むようなダンプを取得しているのであれば、
Zabbix 3.0のテーブルは作成せずに、空のデータベースを作成して、
そのダンプデータをロードするだけです。
テーブルの中身だけダンプしていたのであれば、空のデータベース
を作成して、以前の環境で利用していたZabbixのバージョンに合わ
せて、そのバージョン用のテーブルのみを作成後、ダンプをロード
してみてください。
Ryo Sugisaki - 投稿数: 139
お返事が遅くなりました。
>以前の環境のダンプは、具体的にどのようなコマンドで、どのようなオプションで取得されたのですか?
# mysqldump -uroot --default-character-set=utf8 --database zabbix > zabbix.dump
このようにオプションを設定し、取得しました。
アドバイス頂いた通り、データベースZabbixをDropし、空のデータベースを作成してからインポートしたところうまくいきました。
ありがとうございました。