ソースからのセットアップ

概要

ソースからインストールした場合、以下の情報は Zabbix Javaゲートウェイ の設定に役立ちます。

ファイルの概要

Javaゲートウェイをソースから取得した場合、$PREFIX/sbin/zabbix_java 配下にシェルスクリプト、JAR、設定ファイル一式が配置されているはずです。
これらのファイルの役割を以下に示します。

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

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

lib/logback-core-1.5.16.jar
lib/logback-classic-1.5.16.jar
lib/slf4j-api-2.0.16.jar
lib/android-json-4.3_r3.1.jar

Javaゲートウェイの依存ライブラリです: LogbackSLF4J、および Android JSON ライブラリ。

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

Logback用の設定ファイルです。

shutdown.sh  
startup.sh

Javaゲートウェイを起動・停止するための便利なスクリプトです。

settings.sh

上記の startup および shutdown スクリプトから読み込まれる設定ファイルです。

Javaゲートウェイの設定と起動

デフォルトでは、Javaゲートウェイはポート 10052 で待ち受けます。Javaゲートウェイを別のポートで実行する予定がある場合は、settings.sh スクリプトで指定できます。
これとその他のオプションの指定方法については、Java gateway configuration file の説明を参照してください。

ポート 10052 は IANA registered ではありません。

設定に問題がなければ、startup.sh スクリプトを実行して Javaゲートウェイを起動できます。

./startup.sh

同様に、Javaゲートウェイが不要になったら、shutdown.sh スクリプトを実行して停止します。

./shutdown.sh

なお、サーバーやプロキシとは異なり、Javaゲートウェイは軽量で、データベースを必要としません。

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

Javaゲートウェイが起動して稼働している状態になったら、ZabbixサーバーにZabbix Javaゲートウェイの場所を指定する必要があります。
これは、サーバー設定ファイルJavaGateway および JavaGatewayPort パラメータを指定して行います。
JMXアプリケーションが動作しているホストがZabbixプロキシによって監視されている場合は、代わりにプロキシ設定ファイルで接続パラメータを指定します。

JavaGateway=192.168.3.14
JavaGatewayPort=10052

デフォルトでは、サーバーはJMX監視に関連するプロセスを起動しません。
ただし、これを使用したい場合は、Java pollerの事前フォーク済みインスタンス数を指定する必要があります。
これは、通常の poller や trapper を指定するのと同じ方法で行います。

StartJavaPollers=5

設定が完了したら、サーバーまたはプロキシを再起動することを忘れないでください。

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

Javaゲートウェイに問題がある場合や、Webインターフェースで表示されるアイテムに関するエラーメッセージが十分に分かりやすくない場合は、Javaゲートウェイのログファイルを確認するとよいでしょう。

デフォルトでは、Javaゲートウェイはログレベル "info" で活動内容を /tmp/zabbix_java.log ファイルに記録します。
この情報だけでは不十分な場合があり、ログレベル "debug" の情報が必要になることがあります。
ログレベルを上げるには、lib/logback.xml ファイルを変更し、<root> タグの level 属性を debug に変更します。

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

Zabbix サーバーや Zabbix プロキシとは異なり、logback.xml ファイルを変更した後に Zabbix Javaゲートウェイを再起動する必要はありません。logback.xml の変更は自動的に反映されます。
デバッグが終わったら、ログレベルを "info" に戻せます。

別のファイルや、データベースのようなまったく別の媒体にログを出力したい場合は、必要に応じて logback.xml ファイルを調整してください。
詳細は Logback Manual を参照してください。

デバッグ目的では、Javaゲートウェイをデーモンではなくコンソールアプリケーションとして起動すると便利な場合があります。
その場合は、settings.sh 内の PID_FILE 変数をコメントアウトします。
PID_FILE が省略されると、startup.sh スクリプトは Javaゲートウェイをコンソールアプリケーションとして起動し、Logback は lib/logback-console.xml ファイルを使用します。この設定ではコンソールへのログ出力だけでなく、ログレベル "debug" も有効になります。

最後に、Javaゲートウェイはログ記録に SLF4J を使用しているため、適切な JAR ファイルを lib ディレクトリに配置することで、Logback を任意のフレームワークに置き換えることができます。
詳細は SLF4J Manual を参照してください。

JMX監視

詳細は JMX monitoring のページを参照してください。