SpringBoot、JConsole、Zabbix

SpringBoot、JConsole、Zabbix

私はJMXとZabbixを使ってSpringBootアプリを何らかの方法で監視しようとしています。アプリに追加しました

-Dcom.sun.management.jmxremote.password.file= path to jmx.password
-Dcom.sun.management.jmxremote.access.file=path to jmx.access
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=host ip
-Dcom.sun.management.jmxremote.port=64355
-Dcom.sun.management.jmxremote.rmi.port=64355
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.ssl=true
-Dcom.sun.management.jmxremote.ssl.need.client.auth=true
-Dcom.sun.management.jmxremote.registry.ssl=true
-Djavax.net.ssl.keyStore="path to keystore"
-Djavax.net.ssl.keyStorePassword=keystore password
-Djavax.net.ssl.trustStore="path to truststore"
-Djavax.net.ssl.trustStorePassword=truststore password

Zabbix jmxエージェントをサービスURL service:jmx:rmi:///jndi/rmi://hostIP:64355/jmxrmiで実行しようとするとエラーが発生します

non-jrmp server at remote endpoint

zabbix_java_gateway.log内

hostIP:64355を設定すると

 Service URL must start with service:jmx:

JConsole から接続しようとすると、Zabbix の場合と同じエラーが service:jmx:rmi:///jndi/rmi://hostIP:64355/jmxrmi で発生しますが、"リモート プロセス" フィールドに hostIP:64355 を入力すると、すべて正常になります。

答え1

Zabbix は TLS 経由で RMI レジストリを処理できません。設定により-Dcom.sun.management.jmxremote.registry.ssl=false-Dcom.sun.management.jmxremote.ssl=true現在のバージョンの Zabbix で可能な最大限の暗号化が実現されます。

関連情報