ネットワークやアプリケーション監視のためのOSS監視ソリューション Zabbix を使っておるのですが、手元の zabbix server を 1.8.10 から 2.0.5 にアップグレードしました。DB は MySQL の場合です。DB 名は zabbix とします。
zabbix 公式のマニュアルに従ってやってみました。
1. zabbix サーバ停止
DBに新しいデータが追加されないよう zabbix サーバを停止します。
# service zabbix-server stop
2. 既存の zabbix データベースバックアップ
失敗した場合に役立つバックアップ。これは必要です。僕も何度かお世話になってしまいました。
# mysqldump -uroot -p zabbix > ./zabbix_db.dump
約50台の監視している環境で(項目は結構絞ってます)ダンプファイルが2.7GB ほどになりました。RAIDでない単独のSCSI-HDD 上で約7分かかりました。大規模だともっと時間がかかります。覚悟しましょう。
3. 設定ファイルバックアップ
/etc/zabbix
などに格納された設定ファイル群、PHPファイルや本体のバイナリなどいざという時戻せるようにバックアップを取っておきます。
4. 新しいバイナリのインストール
配布バイナリを使っても良いですしソースからビルドしても良いですし。こだわりが無ければバイナリインストールが楽です。RHEL なので rpm パッケージをインストールしました。
# rpm -ivh http://repo.zabbix.com/zabbix/2.0/rhel/5/i386/zabbix-release-2.0-1.el5.noarch.rpm
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese
5. サーバ設定パラメータの確認
新しいパラメータなど希望があれば調整します。新機能を使わないのであればとりあえずそのままで動きますので、僕はとりあえずそのままにしました。新しい機能については今後徐々に見ていくとします。
6. データベースアップグレード
アップグレードのスクリプトを実行します。テーブルやインデックスの操作をするので実行するユーザの権限に注意しましょう。
#/usr/share/doc/zabbix-server-mysql-2.0.5/upgrades/dbpatches/2.0/mysql/upgrade zabbix
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
... patching of the database took 0:30:02
bash < 4.1 detected
Checking for 'Disabled' user group... found, not doing anything.
Checking for 'Debug' user group... not found, adding.
Checking for hosts not belonging to any group... not found any
... checking for hosts not belonging to any group took 0:00:00
前述の規模である手元の環境では約30分かかりました。中で ALTER TABLE などをたくさん実行しているので、データ量が多いと(IOが貧弱だと)べらぼうに時間がかかります。充分に余裕を持って実行しましょう。
7. 新しいWebインタフェースの導入
いつもの URL にアクセスすると、初回設定の画面が出ます。画面に従い順に次へ次へと進めていきましょう。
8. 新しい zabbix サーバの開始
ようやくここまでたどり着きました。サーバの開始です。
# service zabbix-server start
おつかれさまでした。
/var/log/zabbix 配下のログなど念のためチェックしておきましょう。