Zabbix 2.4でJVMの監視を設定してみたメモです
JMXの監視をZabbixに統合するにはZabbix Java gatewayを利用します
公式ドキュメントでは、インストール手順について「5 Java gateway」に、JMXによるJavaアプリケーションの監視設定について「14 JMX monitoring」に記述されています
Java gatewayは2.0から導入された機能で、JMXをネイティブに監視することが可能です。
監視対象のJavaのアプリケーションとしてTomcatを用意してJMXを設定し、ZabbixのHostsに追加するところまでまとめてみます
以下のように、Zabbixサーバーおよびフロントエンドがインストール済みの環境にJavaゲートウェイを追加するように構成してみます
Zabbixサーバー、フロントエンドとエージェントのインストールと設定方法については前回の記事「Zabbix 2.4 サーバー/エージェントをUbuntu 14.04にインストール」を参照ください
各サーバーのOSはUbuntu 14.04を、確認用のJVMアプリはTomcat 7を利用しました
Javaゲートウェイをパッケージインストール
今回は、Zabbixサーバーと同じマシンにJavaゲートウェイをインストールするので、リポジトリはすでに追加済みですが、Zabbix サーバーとは別のマシンにJavaゲートウェイをインストールする場合は、以下の手順でリポジトリを追加します
$ wget http://repo.zabbix.com/zabbix/2.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_2.4-1+trusty_all.deb
$ sudo dpkg -i zabbix-release_2.4-1+trusty_all.deb
$ sudo apt-get update
Zabbix Javaゲートウェイをパッケージインストールします
$ sudo apt-get install zabbix-java-gateway
Zabbixサーバーの設定
Zabbixサーバーに、Javaゲートウェイの設定を追加する必要があります
JavaGateway
とJavaGatewayPort
のコメントを外し、以下のように値を設定します
[text title=”/etc/zabbix/zabbix_server.conf” gutter=”false”]
JavaGateway=127.0.0.1
JavaGatewayPort=10052
[/text]
設定を変更したら再起動して反映します
$ sudo service zabbix-server restart
Tomcatをインストール
監視対象のTomcat 7をパッケージインストールします
$ sudo apt-get update
$ sudo apt-get install tomcat7
参考
How To Install Apache Tomcat 7 on Ubuntu 14.04 via Apt-Get
Tomcatの起動オプションでJMXを有効にする
JavaゲートウェイからJMXへアクセスするには、以下のJavaの起動オプションを追加してTomcatを起動します
-Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=12345 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ -Djava.rmi.server.hostname=192.168.33.20 \
JavaゲートウェイからリモートのJMXにアクセスするにはjava.rmi.server.hostname
をつかする必要があります
Tomcatの場合は、catalina.sh
にCATALINA_OPTSにセットします
// /usr/share/tomcat7/bin/catalina.sh
CATALINA_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=192.168.33.20"
Tomcatを再起動してJMXを有効にします。
$ sudo service tomcat7 restart
Javaゲートウェイの設定
[Configurations] > [Hosts]を開き[Create Host]をクリックし[Configuration of Hosts]を表示します
以下のように設定
[Host name]: Tomcat 01
[Groups] > [In groups]: Linux Servers
[Templates]タブを開きます
“Template JMX Generic”テンプレートをリンクして[Add]ボタンをクリックして保存します
2つ目のTomcatサーバーについても同様の手順で追加します
[Host name]: Tomcat 02
[Groups] > [In groups]: Linux Servers
設定の確認
設定が正しくされているか確認します
ホストのステータス
[Monitoring] > [Triggers]を開き、[Group] “Linux Servers”を選択
“Tomcat 01″と”Tomcat 02″のステータス異常が表示されていないことを確認します
疎通できない場合、問題「Tomcat 01 is not reachable」が表示されます
メモリープールのグラフ
[Monitoring] > [Graphs]を開き、[Group] “Linux Servers”、[Hosts] “Tomcat 01”, [Graph] “Memory Pool CMS Old Gen”を選択するとメモリープールのグラフを確認することができます
Tomcatはデフォルトでは、Javaの実行オプションに-XX:+UseConcMarkSweepGC
が指定されているので”CMS Old Gen”の方を参照します
つまり、この場合、実際の運用では”PS Old Gen”の方のアイテムは不要です