Spring Boot アクチュエータを使用してアプリを管理および監視する

Note

Azure Spring Apps は、Azure Spring Cloud サービスの新しい名前です。 サービスの名前は新しくなりましたが、スクリーンショット、ビデオ、図などの資産の更新に取り組んでいる間、場所によってはしばらく古い名前が表示されます。

この記事の適用対象: ✔️ Java ❌ C#

この記事の適用対象: ✔️ Basic または Standard ✔️ Enterprise

Spring Boot アクチュエータは、運用環境対応機能をアプリにもたらします。 このツールでは、アプリを監視したり、メトリックを収集したり、ステータスやデータベース アクティビティを理解したりすることが簡単にできます。 プロフェッショナルレベルのツールが簡単に使え、一からビルドする必要がありません。

このアクチュエータによって、正常性ステータス、メトリック、情報など、実行中のアプリケーションに関する重要なオペレーショナル データが公開されます。 このアクチュエータでは HTTP エンドポイントまたは Java Management Extensions (JMX) が使用され、操作が簡単になります。 統合後、既定のエンドポイントがいくつか提供されます。また、他の Spring モジュールと同様に、構成や拡張が簡単です。

Azure Spring Apps では、JMX を介してメトリックを強化するためのアクチュエータが使用されます。 また、Enterprise プランで Application Live View と連動するため、アプリからデータを取得したり、操作したりできます。

Spring Boot アクチュエータを使用したデータ フローを示す図。

Spring Boot アクチュエータの構成

後続のセクションでは、アクチュエータを構成する方法について説明します。

アクチュエータの依存関係を追加する

アクチュエータを 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 エンドポイントも有効にする必要があります。

  1. アプリの [概要] ペインにアクセスし、[設定] メニューの [構成] を選択して環境変数の構成ページにアクセスします。

  2. 次のプロパティを、"キー:値" の形式で追加します。 この環境では、Spring アクチュエータ エンドポイント healthenvconfigprops が開きます。

    management.endpoints.web.exposure.include: health,env,configprops
    
  3. [保存] を選択します。 アプリケーションが自動的に再起動され、新しい環境変数が読み込まれます。

アプリの [概要] ペインに戻り、[プロビジョニングの状態] が [成功] に変わるまで待ちます。

すべてのエンドポイント組み込みと関連構成を表示する方法については、「Spring Boot 運用環境対応機能」の「エンドポイントの公開」セクションを参照してください。

アクチュエータ エンドポイントをセキュリティで保護する

アプリを一般公開すると、これらのアクチュエータ エンドポイントも一般公開されます。 management.endpoints.web.exposure.exclude=* を設定し、すべてのエンドポイントを非表示にすることを推奨します。exclude プロパティは include プロパティに優先するためです。 このアクションにより、Enterprise プランの Application Live View や、アクチュエータの HTTP エンドポイントに依存しているその他のアプリまたはツールがブロックされることにご注意ください。

Enterprise プランでは、アプリのパブリック エンドポイントを無効にしたり、パブリックからのアクチュエータ アクセスが無効になるよう、VMware Spring Cloud Gateway でルーティング規則を構成したりできます。 詳細については、「VMware Spring Cloud Gateway を構成する」を参照してください。

次のステップ