2&>1

AWSとかGCPとかGolangとかとか

ZabbixでJMX監視を行う

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インターフェースを追加

IPはtomcat自身のIPアドレスです。

portはtomcatの起動オプションに設定したものです。

*Zabbixサーバ側も通信ポートがブロックされないよう適宜やってください。

f:id:piyojir0:20200929162305p:plain

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監視内容がないと緑になりません)

f:id:piyojir0:20200929162948p:plain