Spring Boot アクチュエータを使用してアプリを管理および監視する
[アーティクル] 2024/11/20
2 人の共同作成者
フィードバック
この記事の内容
Spring Boot アクチュエータの構成
次のステップ
この記事の適用対象: ✅️ Java ❎ C#
この記事の適用対象: ✅ Basic または Standard ✅ Enterprise
Spring Boot アクチュエータは、運用環境対応機能をアプリにもたらします。 このツールでは、アプリを監視したり、メトリックを収集したり、ステータスやデータベース アクティビティを理解したりすることが簡単にできます。 プロフェッショナルレベルのツールが簡単に使え、一からビルドする必要がありません。
このアクチュエータによって、正常性ステータス、メトリック、情報など、実行中のアプリケーションに関する重要なオペレーショナル データが公開されます。 このアクチュエータでは HTTP エンドポイントまたは Java Management Extensions (JMX) が使用され、操作が簡単になります。 統合後、既定のエンドポイントがいくつか提供されます。また、他の Spring モジュールと同様に、構成や拡張が簡単です。
Azure Spring Apps では、JMX を介してメトリックを強化するためのアクチュエータが使用されます。 また、Enterprise プランで Application Live View と連動するため、アプリからデータを取得したり、操作したりできます。
後続のセクションでは、アクチュエータを構成する方法について説明します。
アクチュエータを Maven ベースのプロジェクトに追加するには、次の依存関係を追加します。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
バージョンは Spring Boot 部品表 (BOM) でカバーされているため、この構成は任意の Spring Boot バージョンで機能します。
既定では、Spring Boot アプリケーションでは health
エンドポイントのみ公開されます。 構成と構成可能環境を観察するには、次の手順で env
エンドポイントと configprops
エンドポイントも有効にする必要があります。
アプリの [概要] ペインにアクセスし、[設定] メニューの [構成] を選択して環境変数 の構成ページにアクセスします。
次のプロパティを、"キー:値" の形式で追加します。 この環境では、Spring アクチュエータ エンドポイント health
、env
、configprops
が開きます。
management.endpoints.web.exposure.include: health,env,configprops
[保存] を選択します。 アプリケーションが自動的に再起動され、新しい環境変数が読み込まれます。
アプリの [概要] ペインに戻り、[プロビジョニングの状態] が [成功] に変わるまで待ちます。
すべてのエンドポイント組み込みと関連構成を表示する方法については、「Spring Boot 運用環境対応機能 」の「エンドポイントの公開 」セクションを参照してください。
アクチュエータ エンドポイントをセキュリティで保護する
アプリを一般公開すると、これらのアクチュエータ エンドポイントも一般公開されます。
management.endpoints.web.exposure.exclude=*
を設定し、すべてのエンドポイントを非表示にすることを推奨します。exclude
プロパティは include
プロパティに優先するためです。 このアクションにより、Enterprise プランの Application Live View や、アクチュエータの HTTP エンドポイントに依存しているその他のアプリやツールがブロックされます。
Enterprise プランでは、アクセスをセキュリティで保護する方法が 2 つあります。
アプリのパブリック エンドポイントを無効にして、パブリックからのアクチュエータ アクセスを無効にするように VMware Spring Cloud Gateway でルーティング規則を構成できます。 詳細については、「VMware Spring Cloud Gateway を構成する 」を参照してください。
メイン アプリケーションとは異なる HTTP ポートでリッスンするようにアクチュエータを構成できます。 スタンドアロン アプリケーションでは、アクチュエータの HTTP ポートの既定値はメイン HTTP ポートと同じです。 アプリケーションが別のポートでリッスンするように、management.server.port
プロパティを設定します。 Application Live View は、このポートの変更を自動的に検出できないため、Azure Spring Apps デプロイでそのプロパティを構成することも必要です。 これで、アクチュエータはパブリックにはアクセスできませんが、Application Live View は別のポート経由でアクチュエータ エンドポイントから読み取ることができるようになります。 詳細については、「Azure Spring Apps Enterprise プランで Application Live View を使用する 」を参照してください。