Zabbix3.4以降でJVM監視のエンドポイントを設定できるようになり、Wildfly(JBoss)のJVMに接続するためにJava-Gatewayのソースを修正する必要がなくなったのでまとめておく。
[zabbix-java-gatewayのインストール]
yum -y install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
yum -y install zabbix-java-gateway
[監視用ユーザの追加]
add-user.sh で監視用のユーザアカウントを作成する
What type of user do you wish to add?
a) Management User (mgmt-users.properties) を選択
[standalone.xmlの編集]
management-interfacesセクションに下記を追加
<native-interface security-realm="ManagementRealm">
<socket-binding native="management-native"/>
</native-interface>
socket-binding-groupセクションに下記を追加
<socket-binding name="management-native" interface="management" port="${jboss.management.native.port:(ポート番号)}"/>
[クラスライブラリのコピー]
jboss-client.jar を /usr/share/zabbix-java-gateway/lib にコピー
[zabbix-server.confの編集]
JavaGateway=zabbix-java-gatewayが稼動しているアドレス
JavaGatewayPort=zabbix-server ⇔ zabbix-java-gateway の通信ポート
StartJavaPollers=JavaPollerの数
[Hostの設定]
JMX Interfaces:(JVMが稼働しているマシンのアドレス):(ポート番号)
[Itemの追加]
Type:JMX agent
key:(例:Heapのギザギザ)jmx["java.lang:type=Memory",HeapMemoryUsage.used]
Host interface:上記Hostに設定した"JMX Interface"を選択
JMX endpoint:service:jmx:remote://(JVMが稼働しているマシンのアドレス):(ポート番号)
User name:監視用ユーザアカウント名
Password:監視用ユーザのパスワード