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