JMX を介した監視と管理
Java Management Extensions (JMX) は、アプリケーションを監視および管理するための標準メカニズムを提供します。デフォルトでは、この機能は有効になっていません。spring.jmx.enabled
構成プロパティを true
に設定することで、この機能を有効にすることができます。Spring Boot は、最も適切な MBeanServer
(標準 Javadoc) を ID mbeanServer
の Bean として公開します。Spring JMX アノテーション (@org.springframework.jmx.export.annotation.ManagedResource
、@ManagedAttribute
(Javadoc) 、または @ManagedOperation
(Javadoc) ) が付けられたすべての Bean がこれに公開されます。
プラットフォームが標準の MBeanServer
(標準 Javadoc) を提供している場合、Spring Boot はそれを使用し、必要に応じて VM MBeanServer
(標準 Javadoc) をデフォルトとして使用します。それでも失敗した場合は、新しい MBeanServer
(標準 Javadoc) が作成されます。
spring.jmx.enabled は、Spring によって提供される管理 Bean にのみ影響します。他のライブラリ (Log4j2 [Apache] (英語) や Quartz (英語) など) によって提供される管理 Bean の有効化は独立しています。 |
詳細については、JmxAutoConfiguration
[GitHub] (英語) クラスを参照してください。
デフォルトでは、Spring Boot は管理エンドポイントを org.springframework.boot
ドメインの JMX MBean として公開します。JMX ドメインでのエンドポイント登録を完全に制御するには、独自の EndpointObjectNameFactory
(Javadoc) 実装を登録することを検討してください。
MBean 名のカスタマイズ
通常、MBean の名前はエンドポイントの id
から生成されます。例: health
エンドポイントは org.springframework.boot:type=Endpoint,name=Health
として公開されます。
アプリケーションに複数の Spring ApplicationContext
(Javadoc) が含まれている場合、名前が競合することがあります。この問題を解決するには、MBean 名が常に一意になるように、spring.jmx.unique-names
プロパティを true
に設定します。
エンドポイントが公開される JMX ドメインをカスタマイズすることもできます。次の設定は、application.properties
で実行する例を示しています。
プロパティ
YAML
spring.jmx.unique-names=true
management.endpoints.jmx.domain=com.example.myapp
spring:
jmx:
unique-names: true
management:
endpoints:
jmx:
domain: "com.example.myapp"