This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

5 Zabbix Java ゲートウェイ

概要

Zabbix 2.0では、「Zabbix Javaゲートウェイ」と呼ばれる新たなZabbixデーモンを導入することによって、JMXアプリケーションの監視のネイティブサポートが追加になりました。 Zabbix Java ゲートウェイは、Javaで書かれたデーモンです。Zabbixサーバがホスト上の特定のJMXのカウンタの値を取得したいとき、サーバは、対象のアプリケーションにリモートで問合せを行えるJMX管理APIを使用するZabbix Javaゲートウェイに問合せます。アプリケーションは追加でソフトウェアをインストールする必要はなく、ただコマンドライン上でDcom.sun.management.jmxremoteオプションで開始するだけです。

Zabbix Java ゲートウェイは、Zabbixサーバまたはプロキシからの接続を許可しており、「パッシブプロキシ」としてのみ使用可能です。Zabbixプロキシとは対照的に、Zabbixプロキシからも使用できます。(Zabbixプロキシは変更できません) それぞれのZabbix Javaゲートウェイへのアクセスは、Zabbixサーバ内またはプロキシの設定ファイル内で直接設定され、1つのZabbixサーバまたはZabbixプロキシに対して1つだけ、Zabbix Java ゲートウェイが設定できます。ホストにJMXエージェントタイプのアイテムや、他のタイプのアイテムがある場合は、JMXエージェントアイテムだけがZabbix Java ゲートウェイに引き渡されます。

Zabbix Javaゲートウェイ越しにアイテムを更新しなければならないときは、Zabbix サーバまたはZabbixプロキシは、Zabbix Java ゲートウェイに接続して値を要求します。Zabbix Java ゲートウェイがその値を順番に取得してサーバまたはプロキシに返します。 そういうものなので、Zabbix Java ゲートウェイはどの値もキャッシュしません。

Zabbix サーバまたはZabbix プロキシは、Zabbix Java ゲートウェイに接続する特定のプロセスイプで、StartJavaPollers オプションで制御されます。内部では、Zabbix Java ゲートウェイは、START_POLLERSオプションによって制御される複数のスレッドを開始します。 サーバサイドで、接続の時間がTimeoutの時間よりも長くかかる場合は、スレッドは終了されますが、Zabbix Java ゲートウェイは、JMXカウンタからの値の取得のためにビジーのままになる場合があります。

Zabbix サーバ またはZabbixプロキシは、よりよいパフォーマンスを得るために、要求を1つのJMXターゲットにできるだけ多く(アイテムの間隔に影響されます)まとめ、Zabbix Java ゲートウェイに対して1回の接続で送信しようとします。

StartJavaPollersは、START_POLLERSよりは少ないか、同じぐらいで持つことが推奨されています。そうしないと、入ってくる要求に対して、Zabbix Java ゲートウェイ中のいずれのスレッドも稼働できない場合があり得ます。

以下のセクションでは、JMX監視にZabbix Java ゲートウェイに使用するための、Zabbix Java ゲートウェイの取得と動作のさせ方、Zabbix サーバ(または Zabbix プロキシ)の設定方法、特定のJMXカウンタに対応するZabbix GUI内のZabbixアイテムの設定方法について解説します。

5.1 Zabbix Java ゲートウェイの取得

Zabbix Java ゲートウェイを取得するには、2つの方法があります。1つはZabbix のウェブサイトからZabbix Java ゲートウェイのパッケージをダウンロードする方法、もう1つは、ソースからコンパイルする方法です。

5.1.1 Zabbix のウェブサイトからのダウンロード

このオプションは、実際はまだ有効ではないのですが、 将来Zabbix のウェブサイトから、Zabbix Java ゲートウェイのアーカイブをダウンロードできるようになります。

5.1.2 ソースからのコンパイル

Zabbix Java ゲートウェイをコンパイルするには、最初に ./configure のスクリプトを--enable-java オプションを付けて実行します。インストール先のパスとしてデフォルトの /usr/local 以外にする--prefix オプションを指定可能であることを憶えておいてください。なぜなら、Zabbix Java ゲートウェイをインストールすると、1つの実行可能なディレクトリだけでなく、ディレクトリツリー全体が作成されるからです。

$ ./configure --enable-java --prefix=$PREFIX

コンパイルを実行してZabbix Java ゲートウェイを1つのJARファイルにパッケージングするために、makeを実行します。このステップのために、あなたのパスでjavacjarを実行可能な状態にしておく必要があることに注意してください。

$ make

これで、zabbix-java-gateway-$VERSION.jarファイルが、src/zabbix_java/bin に作成されます。Zabbix Java ゲートウェイを、ディストリビューション・ディレクトリ内の src/zabbix_java から実行できたら、 Zabbix Java ゲートウェイの設定と 実行の説明に進みます。もし実行できない場合は、実行の権利を持っているかどうかを確認してから、make install を実行してください。

$ make install

5.2 Zabbix Java ゲートウェイ ディストリビューション内のファイルの概要

あなたがどのような方法でZabbix Java ゲートウェイを取得したかには関係なく、$PREFIX/sbin/zabbix_java 配下のシェルスクリプト、JAR、設定ファイルの収集で終了させなければなりません。これらのファイルの役割を以下に要約します。

bin/zabbix-java-gateway-$VERSION.jar

Zabbix Java ゲートウェイの JARファイルです。

lib/logback-core-0.9.27.jar
       lib/logback-classic-0.9.27.jar
       lib/slf4j-api-1.6.1.jar
       lib/org-json-2010-12-28.jar

Zabbix Java ゲートウェイと依存関係のあるもの:LogbackSLF4J、および JSON.org のライブラリ

lib/logback.xml  
       lib/logback-console.xml 

Logbackの設定ファイルです。

shutdown.sh  
       startup.sh 

Zabbix Java ゲートウェイを開始したり停止するのに便利なスクリプトです。

settings.sh 

上記の起動とシャットダウンのスクリプトのソースの設定ファイルです。

5.3 Zabbix Java ゲートウェイの設定と実行

Zabbix Java ゲートウェイは、デフォルトではポート番号 10052をLISTENしています。 異なるポート上でZabbix Java ゲートウェイを実行することを計画している場合は、settings.sh スクリプトで指定可能です。この指定方法や他のオプションについては、Zabbix Java ゲートウェイの設定ファイルの解説を参照してください。

<note warning>ポート10052はIANAに登録されていません。 :::

設定ができたら、startup スクリプトを実行してZabbix Java ゲートウェイを開始することができます:

$ ./startup.sh 

同様に、もうZabbix Java ゲートウェイが必要なければ、shutdownスクリプトを実行して停止します:

$ ./shutdown.sh 

サーバやプロキシとは違って、Javaゲートウェイは軽量で、データベースが不要であることを憶えておいてください。

5.4 Zabbix Java ゲートウェイを使用するためのサーバの設定

Zabbix Java ゲートウェイが動作するようになったら、Zabbixサーバに Zabbix Java ゲートウェイの場所を知らせる必要があります。そのためには、サーバ設定ファイルで、JavaGatewayパラメータとJavaGatewayPortパラメータを指定します。JMXアプリケーションが動作しているホストをZabbixプロキシで監視している場合は、かわりにプロキシ設定ファイルに接続パラメータを指定します。

JavaGateway=192.168.3.14
       JavaGatewayPort=10052 

サーバは、デフォルトでは、JMX監視に関連するどのプロセスも開始しません。しかしそのプロセスを使用したい場合は、Java Poller のpre-forkされたインスタンスの番号を指定する必要があります。これは、通常のPollerやtrapperの指定と同じ方法で指定します。

StartJavaPollers=5 

いったんこれらの設定を完了したら、サーバまたはプロキシをリスタートすることを忘れないでください。

5.5 Zabbix Java ゲートウェイのデバッグ

Zabbix Java ゲートウェイに何らかの障害がある場合や、フロントエンドのアイテムに関して表示されたエラーメッセージの説明が十分でない場合、Zabbix Java ゲートウェイのログファイルを調べたいと思われるかもしれません。 デフォルトでは、Zabbix Java ゲートウェイは、/tmp/zabbix_java.log ファイルに「情報」レベルの活動のログを残していますが、たまにその情報が十分ではなくて、「デバッグ」レベルの情報が必要になる場合があります。ロギングのレベルを上げるためには、lib/logback.xml ファイルを編集し、<root>タグのレベル属性を"debug"に変更します。

<root level="debug">
         <appender-ref ref="FILE" />
       </root>

Zabbixサーバやプロキシと違って、logback.xmlの変更後にZabbix Java ゲートウェイを再スタートする必要はありません - logback.xml 内の変更は自動的に再実行されます。デバッグを完了したら、ロギングのレベルを「情報」に戻すことができます。

別のファイルまたはデータベースのように完全に異なるメディアにログを残したい場合は、 logback.xml ファイルを必要にあわせて調整します。詳細はLogbackのマニュアルを参照してください。

たまに、デバッグ目的で、デーモンとしてよりコンソールアプリケーションのようにZabbix Java ゲートウェイを開始すると便利な場合があります。それを行うためには、settings.sh スクリプト内の PID_FILE 変数をコメントアウトします。PID_FILEが省略されている場合は、startup.sh スクリプトは Zabbix Java ゲートウェイをコンソールアプリケーションとして開始し、Logbackにlib/logback-console.xmlファイルを使用させます。それはコンソールにログを残すだけでなく、ロギングレベル「デバッグ」を有効にもします。

最後に、Zabbix Java ゲートウェイは、ログをとるのにSLF4Jを使用しているので、適切なJARファイルをlibディレクトリ内に配置することによって、Logbackを、あたなが選択したフレームワークに置き換えることが可能であることを憶えておいてください。詳細は SLF4Jのマニュアル を参照してください。


本ページは2014/08/05時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は、英語版のZabbix2.2マニュアルを参照してください。