ZabbixでJmx監視を行います
ここではZabbixとjava-gatewayは同一サーバ上に構築しています。
Tomcatのあれこれ監視するのが目的です。
環境
Zabbix 4.0.13 (CentOS7上)
Zabbix側の準備
インストール
yum install zabbix-java-gateway
起動と自動起動設定
systemctl start zabbix-java-gateway systemctl enable zabbix-java-gateway
設定追加
vi /etc/zabbix/zabbix_server.conf
以下内容を記載
JavaGateway=[Zabbix server IP] JavaGatewayPort=10052[zabbix java gateway default port] StartJavaPollers=1
*StartJavaPollersは必ず1以上を設定しないと動作開始しません
設定反映
systemctl restart zabbix-server
メモ
zabbix-java-gatewayをインストールするとgateway用のコンフィグとして「/etc/zabbix/zabbix_java_gateway.conf」 が作られますが、設定内容は「zabbix_server.conf」にのみ記載すれば問題ありません。
Tomcat側の準備
起動オプションに以下を追加
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12388 -Dcom.sun.management.jmxremote.rmi.port=12388 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.**.**" export CATALINA_OPTS
「com.sun.management.jmxremote.port」はJMX監視に使うポート
「java.rmi.server.hostname」は監視するtomcat自身のIP *これをZabbixのIPにしててハマった
設定したらTomcatの再起動
また監視用通信ポートがiptable,nftable等でブロックされないように要注意
Zabbix画面上で設定
監視対象(tomcatサーバ)のJMXインターフェースを追加
portはtomcatの起動オプションに設定したものです。
*Zabbixサーバ側も通信ポートがブロックされないよう適宜やってください。
JMX監視用テンプレートを適応すれば終わり
確認
確認ツール
wget http://crawler.archive.org/cmdline-jmxclient/cmdline-jmxclient-0.10.3.jar
Zabbixサーバから以下コマンドで正常に返ってきたら成功
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.**.**:12388
Tomcatサーバ宛に実行
ずらずらずらと結果が出ればOK
最終的にZabbix画面上で以下のようにJMXが緑でOK
(JMX監視テンプレート適応してJMX監視内容がないと緑になりません)