次の方法で共有


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

Note

BasicStandardEnterprise プランは、2025 年 3 月中旬以降非推奨になり、廃止期間は 3 年間です。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。

Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨になり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金および専用プランを Azure Container Apps に移行する」を参照してください。

この記事の適用対象:✅️ 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 プランでは、アクセスをセキュリティで保護する方法が 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 を使用する」を参照してください。

次のステップ