Zabbix1.8 から 2.0への移行

2012年4月27日(金)
池田 大輔

第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のバージョンアップ作業を進めます。

  1. Zabbix Server停止
  2. バックアップ
  3. Zabbix2.0のインストール
  4. Zabbix旧バージョン用インデックスを削除
  5. データベースの更新スクリプト実行
  6. 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。パッケージをダウンロードし、アップデート処理を実行してください。

【参考URL】

TIS株式会社

Twitter : @ike_dai
TIS株式会社OSS推進室所属。社内向けシステムの保守運用業務を経験後、クラウド時代の効率的な統合運用管理をテーマに活動中。特に、OSSを駆使した運用のエコシステム実現を目指し、Zabbix,fluentd,Serverspec,Ansibleなどの導入や検証に取り組む。技術検証成果などを技術ブログ『Tech-Sketch』にて発信中。著書:『Zabbix統合監視徹底活用 - 複雑化・大規模化するインフラの一元管理』

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています