Actuator は、Spring Boot アプリの状態を外から確認するための公式機能です。 死活監視、設定値の確認、メトリクス取得などを HTTP エンドポイントとして提供します。
何ができるのか
代表的なものだけ挙げます。
| エンドポイント | 分かること |
|---|---|
/actuator/health |
アプリが正常か。DB や外部サービスへの疎通も含められる |
/actuator/metrics |
メモリ、スレッド数、リクエスト数などの数値 |
/actuator/env |
環境変数と設定値 |
/actuator/loggers |
ログレベルの確認と実行中の変更 |
最後の loggers は実務でかなり効きます。再起動せずにログレベルを DEBUG へ上げられるので、本番で再現する問題の調査に使えます。
既定では /health しか公開されない
ここは正確に理解しておく必要があります。Spring Boot はセキュリティ上の理由から、HTTP で既定公開されるのは /health だけです。他は明示的に公開設定をしない限り出ません。
(出典:Spring Boot Reference / Endpoints)
公開範囲を広げるときが危ない
management.endpoints.web.exposure.include で公開範囲を広げられますが、公式ドキュメントはその前に「機密情報が含まれないか確認する」「ファイアウォールの内側に置く」「Spring Security で保護する」のいずれかを行うよう明記しています。
/actuator/env には DB のパスワードや API キーが含まれうるため、インターネットから見える状態にすると設定情報がそのまま漏れます。「便利だから * で全部公開」は、事故に直結する設定です。
なお Spring Security がクラスパスにあり独自の設定を書いていない場合は、/health 以外が自動的に保護されます。