Zabbix1.8 から 2.0への移行
第1回、第2回とZabbix2.0の新機能について紹介しました。第3回の今回は、既存のZabbix1.8から2.0への移行方法について紹介します。
Zabbix1.8とZabbix2.0では新たに追加された機能のため、データベースのテーブル設計等に変更が加えられています。そのため、移行時には監視環境の停止が発生するなど気をつけておくべきポイントがあります。
以降、各作業時の注意点の解説を交えながら移行手順を紹介します。
Zabbix1.8から2.0へのバージョンアップ手順
Zabbix Serverのバージョンアップ
まずZabbix Serverを1.8から2.0にバージョンアップする方法について紹介します。以下の手順でZabbix Serverのバージョンアップ作業を進めます。
- Zabbix Server停止
- バックアップ
- Zabbix2.0のインストール
- Zabbix旧バージョン用インデックスを削除
- データベースの更新スクリプト実行
- Zabbix Server起動
5.の作業時にデータベースの更新処理を行います。そのため、1.8系から2.0にバージョンアップする際は、Zabbixでの監視が一時的に停止します。実運用される場合にはこの点に注意が必要です。作業にかかる時間等、十分確認してバージョンアップ計画を立ててください。
それぞれの具体的な作業内容を見ていきましょう。
なお、以降で紹介する作業手順は、CentOS5.6のOS上で行っています。Ubuntu等その他OSの場合、コマンドやディレクトリ構成が異なるため、手元の環境のOSに合わせて読み替えてください。Zabbix2.0がサポートしているOSはZabbix公式マニュアルで公開されています※1。
1. Zabbix Server停止
データベースのバックアップ時に新たに監視データが登録されないよう、いったんZabbix Serverを停止します。さらに、監視設定についても変更が加えられないよう、Apacheを停止します。
2. バックアップ
念のため、Zabbix Serverの設定ファイルとデータベースのバックアップを取得します。Zabbix Server設定ファイル(zabbix_server.conf)は任意の場所にcpコマンド等でバックアップを取得してください。
$ sudo cp /etc/zabbix/zabbix_server.conf /backup/zabbix_server.conf
データベースのバックアップ方法は利用しているデータベースによって異なります。以下、データベースとしてMySQLを利用している場合のバックアップ方法です(データベース名[zabbix],MySQLユーザ[root],バックアップ先[/backup/mysql]の場合の例)。
$ sudo mysqldump -uroot -p zabbix > /backup/mysql/zabbix_db.dump Enter password:パスワード入力
3. Zabbix2.0のインストール
基本的には、Zabbix2.0を新たにインストールする形になります。以下の手順では、執筆時点での最新版Zabbix2.0.0rc2をソースコードからインストールしています。
3-1 ソースコードの取得・展開
ダウンロードしたソースコードは/home/ikeda/install以下に配置するものとして記載します。
$ cd /home/ikeda/install $ wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Release%20Candidates/2.0.0rc2/zabbix-2.0.0rc2.tar.gz/download $ tar xvzf zabbix-2.0.0rc2.tar.gz
3-2インストール先を指定してインストール実行
$ cd zabbix-2.0.0rc2 $ ./configure --enable-server --prefix=/usr/local/zabbix/2.0 --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-openipmi $ make $ sudo make install
configureのオプション設定は利用する機能に応じて変更してください。インストール手順に関しては、Zabbix1.8系と基本的には同じです。
1点変更になっているのは、データベースとしてPostgreSQLを利用する場合の指定方法として、1.8系では「--with-pgsql」というオプションだったのが、2.0では「--with-postgresql」となっています。この点注意してください。
3-3 設定ファイル(zabbix_server.conf)更新
設定ファイル(zabbix_server.conf)については、Zabbix2.0からの新機能であるZabbix Java Gatewayの利用設定など、変更箇所が何点かあります。
そのため、Zabbix2.0のソースコードディレクトリ内にあるzabbix_server.confのオリジナルファイルに既存のZabbix1.8で行っていた設定項目を記述する形で対応するのがいいかと思います。
その他既存のものと同様の設定箇所に関してはこちらを参照してください※2。Zabbix2.0で新たに追加された設定項目は以下になります。
JavaGateway= ←Java GatewayのIPアドレス(or ホスト名)指定 JavaGatewayPort=10052 ←Java Gatewayの稼働ポート番号指定 StartJavaPollers=0 ←Java Gatewayとの通信プロセスの起動数指定 SNMPTrapperFile=/tmp/zabbix_traps.tmp ←SNMPTrapperの書き込み先指定 StartSNMPTrapper=0 ←SNMPTrapperのプロセス起動数指定
必要に応じて上記設定を行ってください。上記の5項目の設定は必須の設定項目ではないため、Zabbix Java GatewayやSNMPトラップ監視を利用しない場合はZabbix1.8の設定ファイルをそのまま用いることも可能です。
ソースコードの中にあるオリジナルの設定ファイル(zabbix_server.conf)の配置場所がZabbix1.8系と異なるので注意してください。
- Zabbix1.8 → ソースコードディレクトリ/misc/conf/zabbix_server.conf
- Zabbix2.0 → ソースコードディレクトリ/conf/zabbix_server.conf
3-4 Webインタフェースの置き換え
$ mv /var/www/html/zabbix /backup/zabbix-web.backup $ sudo cp -r /home/ikeda/install/zabbix-2.0.0rc2/frontends/php /var/www/html/zabbix $ sudo cp /backup/zabbix-web.backup/conf/zabbix.conf.php /var/www/html/zabbix/conf/ $ sudo chown -R apache:apache /var/www/html/zabbix
既存のZabbix1.8のZabbix Webインタフェース用ファイルをいったん別の場所に移動し、Zabbix2.0のソースコードディレクトリにあるfrontends/phpを/var/www/html/zabbixにコピーします。
その後、Zabbix Webの設定ファイルであるzabbix.conf.phpをZabbix1.8のディレクトリから2.0のディレクトリにコピーします。zabbix.conf.phpに設定すべき項目は1.8系と2.0で変更はありません。1.8系で利用していたものをそのままコピーするだけで動きます。
最後に/var/www/html/zabbixの所有者をApacheの実行ユーザーに設定します。
今回は、ソースコードからのインストール方法を紹介しましたが、パッケージ管理されている場合は、ZABBIX-JPのサイトでRPMパッケージが公開されています※3。パッケージをダウンロードし、アップデート処理を実行してください。