ZABBIXを1.8から2.0にアップデートする
5 月に ZABBIX がメジャーバージョンアップして 2.0 がリリースされていたが、7 月にリリースされた 2.0.1 が Gentoo Linux でも Portage ツリーに追加されたのでインストールしてみた。
これまでは Web インターフェイスについては手動インストールしていたが、外部監視用のさくら VPS には Gentoo Linux で使われている webapp-config を使ってインストールしたこともあって、LAN 内の ZABBIX についても webapp-config でアップデートすることにした。
まず、ZABBIX を更新する。
emerge -uDN zabbix
更新が完了したら、ZABBIX サーバ・エージェント共にシャットダウンし、DB をバックアップする。マイナーアップデートに追随してきた場合は 2.0 にアップグレードする際のスキーマ更新で結構失敗する可能性があるので、ここでバックアップは取っておいたほうがよさそう。
/etc/init.d/zabbix-agentd stop /etc/init.d/zabbix-server stop mysqldump -u root -p[root password] zabbix | xz -9 > /var/tmp/zabbix.dump.xz
次にスキーマを更新する。
sh upgrade zabbix -p[root password]
もう 3 〜 4 年ほど連続稼働している自宅環境とさくらの VPS に最近インストールした環境で試したところ、自宅環境では以下のエラーが表示された。
# sh upgrade zabbix -p[root password] WARNING: backup your database before performing upgrade This is an UNSUPPORTED Zabbix upgrade script from 1.8 to 2.0 for MySQL It does the following things: 1. Updates indexes that might require changes; 2. Patches the database from 1.8 schema to 2.0 schema; 3. Adds 'Disabled' and 'Debug' usergroup if any missing; 4. Checks for hosts not belonging to any group and adds them to one if any found. Usage: pass required MySQL parameters to this script (like database, user, password etc). Continue ? (y/n) y Patching the database ERROR 1452 (23000) at line 104: Cannot add or update a child row: a foreign key constraint fails (`zabbix`.<result 2 when explaining filename '#sql-4076_3240'>, CONSTRAINT `c_config_2` FOREIGN KEY (`discovery_groupid`) REFERENCES `groups` (`groupid`)) Failed to patch Zabbix database. Restore from backup
ZABBIX フォーラムにも上がっている問題だが、とりあえず --force
で強制的に処理を継続させれば問題なく動作するらしい。
sh upgrade zabbix -p[root password] --force
何ら解決にはなっていないが、確かにこれで問題なく動作している。
この後、必要に応じて /etc/zabbix/zabbix-server.conf
などを修正する。うちの環境の場合は ServerPort
を指定していたのでエラーとなったが、デフォルト値でも問題ないのでコメントアウトし、ZABBIX サーバとエージェントを起動する。
/etc/init.d/zabbix-agentd start /etc/init.d/zabbix-server start
最後に WebUI 部分を更新する。今回は更新ではなく初期インストールとなるので、1.8 時代のファイルをバップアップしてから
webapp-config -U -h zabbix.domain.jp -s apache zabbix 2.0.1
自宅環境は Apache で動作しているが、さくらの VPS は nginx なので、-s
オプションの引数を nginx
にすればよい。更新後、ブラウザからアクセスしてみてひと通りアクセスできればok。
いくつか試してみたが、個人的には、1.8 で安定して監視を行えているのなら敢えて 2.0 に上げる必要ないと思う。