:::: MENU ::::

Zabbix 2.2でTomcat 7のJava監視を実施する


こんにちは!sovaでは会社の仲間たちなどのような特定グループ内でクローズドなコミュニケーションを取ることが出来るCircleBoardというアプリを運営しています。全て無料なので、興味のある方は是非使ってみて下さい。
https://circleboard.me

ZabbixのJava Gatewayの機能を使って、Tomcat7(執筆時点では7.0.52)のJMX監視の設定をしてみます。
ZabbixでTomcatのJMX監視を設定すれば、ヒープメモリやGCの監視が出来てTomcatについて有用な監視を実施出来るようになります。

デフォルトのTemplate JMX Generalだとユーザー認証に対応していないので、ユーザー認証のマクロを追加したテンプレートを作成しました!
よろしければ下記githubよりご使用下さい。

https://github.com/sova-lab/zabbix-java-tomcat.git

最終的な構成は以下のような構成になります。

①Tomcat7へのJMX設定

JMXの設定をすればヒープメモリの使用量やGCの処理時間などを取得することが出来ます。
まずはTomcatへJMXの設定をします。
TomcatへのJMXの接続にbasic認証を用いるように設定しています。

設定ファイル:$CATALINA_BASE/bin/setenv.sh

$CATALINA_BASE/conf/jmxremote.access

$CATALINA_BASE/conf/jmxremote.password

なお、リモート環境からJMXの設定が正しく行われているかはjconsoleを使って値が取得出来るか見れば確認出来ます。
jconsoleの使い方についてはJConsoleの使用などを参考に設定してみて下さい。
なお、リモート側のポートは設定した10080以外に30000〜65535あたりのポートも使用するようなので、ファイアウォールの設定に注意して下さい。
当環境では35000-65535まであければjconsoleからリモートのtomcatに繋ぐことが出来ました。

②Zabbix Java Gatewayの設定

まずはTomcatが入っているサーバと同じサーバにZabbix-Java-Gatewayをインストールします。
※Zabbix 2.2のリポジトリが登録されている前提です。

次にZabbix-Java-Gatewayの設定を変更します。

設定項目は下記ですが、設定変更をしなくても特に問題はありません。

  • LISTEN_IP
    • Zabbix-Java-Gatewayがリッスンするipです。自分自身のipを指定すればokです。
  • LISTEN_PORT
    • Zabbix-Java-Gatewayがリッスンするport番号です。デフォルト10052です。
  • PID_FILE
    • Zabbix-Java-Gatewayのpidファイルの配置パスです。
  • START_POLLERS
    • Zabbix-Java-Gatewayのスレッド数です。デフォルト5です。

最後にデフォルト起動設定をしてZabbix-Java-Gatewayを起動します。

③Zabbix Serverの設定

先ほどZabbix-Java-Gatewayで設定したホストとポートをZabbix Serverへ設定します。

  • JavaGateway
    • Zabbix-Java-Gatewayが稼働しているサーバーのIPアドレス
  • JavaGatewayPort
    • Zabbix-Java-Gatewayで設定したリッスンポートの番号
  • StartJavaPollers=5
    • Zabbix-Java-Gatewayと通信するプロセスの起動数

設定後、Zabbix Serverを再起動します。

④ ZabbixのWebコンソールからJMXの設定を実施

Zabbix Serverの設定後、WebコンソールよりJMXの設定を実施します。

まずは監視対象ホストのインターフェースにJMXを追加します。
ここで、①で設定したTomcatのホストやJMX用のport番号を設定します。

そして、デフォルトで用意されている Template JMX Generic を割り当てます。
するとパスワード無しの場合はJMXの監視が開始されます。
JMX接続にパスワードが必要な場合は個々のitem毎にJMXのusernameとpasswordが必要になります。
もし設定が面倒な方はJMXの認証をfalseにしてしまえばいいと思います。

パスワード認証を使いたい方はgithubにあげているテンプレートを是非お使い下さい。

まとめ

これらの設定でZabbix2.2を用いてTomcat7の監視を行うことが出来ます。
しかし、これだけだとJMXのデフォルトの監視は行えますが、Tomcat特有の監視は設定出来ていません。
次回、Tomcat7特有の監視設定を行う設定をして、テンプレートを公開出来ればと思います。


Tomcat7のJMXの設定は公式サイトを参考にしました。

ZabbixのJava監視はThink ITの記事を参考にしました。


So, what do you think ?