診断設定を使用して Elastic (ELK) でログを分析する
Note
Basic、Standard、Enterprise プランは、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
この記事では、Azure Spring Apps の診断機能を使用して、Elastic (ELK) でログを分析する方法を示します。
次のビデオでは、Elastic を使用した Spring Boot アプリケーションの統一監視が紹介されています。
診断設定の構成
診断設定を構成するには、次の手順のようにします。
- Azure portal で Azure Spring Apps インスタンスに移動します。
- [診断設定] オプションを選んでから、[診断設定の追加] を選びます。
- 設定の名前を入力し、[Send to partner solution]\(パートナー ソリューションに送信\) を選んだ後、[Elastic] とログを送信する Elastic のデプロイを選びます。
- [保存] を選択します。
Note
ログが出力されてから Elastic のデプロイに表示されるまでに、最大 15 分のギャップが生じる可能性があります。 Azure Spring Apps インスタンスが削除または移動された場合、この操作は診断設定リソースには連鎖しません。 診断設定リソースの親 (つまり、Azure Spring Apps インスタンス) に対して操作を行う前に、リソースを手動で削除する必要があります。 そうしないと、削除されたものと同じリソース ID で新しい Azure Spring Apps インスタンスをプロビジョニングした場合、または Azure Spring Apps インスタンスを移動して戻した場合に、以前の診断設定リソースによって引き続きそれが拡張されます。
Elastic を使用してログを分析する
Azure への Elastic のデプロイについて詳しくは、「Microsoft Azure に Elastic をデプロイして管理する方法」を参照してください。
ログを分析するには、次の手順のようにします。
Azure portal の Elastic のデプロイの概要ページで、Kibana を開きます。
Kibana の上部にある [Search]\(検索\) バーに、「Spring Cloud type:dashboard」と入力します。
結果から [Logs Azure] Azure Spring Apps logs Overview を選びます。
次のようなクエリを使って、すぐに使用できる Azure Spring Apps ダッシュボードを検索します。
azure.springcloudlogs.properties.app_name : "visits-service"
Discover で Kibana Query Language を使用してログを分析する
アプリケーション ログには、アプリケーションの正常性やパフォーマンスなどに関する重要な情報と詳細ログが記載されています。 ログを分析するには、次の手順のようにします。
Kibana の上部にある [Search]\(検索\) バーに「Discover」と入力し、結果を選択します。
Discover アプリで、まだ選んでいない場合は logs- インデックス パターンを選びます。
次のセクションのようなクエリを使うと、アプリケーションの現在と過去の状態を把握するのに役立ちます。
さまざまなクエリについて詳しくは、Kibana Query Language のガイドに関するページをご覧ください。
Azure Spring Apps のすべてのログを表示する
Azure Spring Apps からアプリケーション ログの一覧 (時間順に並べ替え、最新のログを最初に表示) を確認するには、[検索] ボックスで次のクエリを実行します。
azure_log_forwarder.resource_type : "Microsoft.AppPlatform/Spring"
Azure Spring Apps から特定のログの種類を表示する
Azure Spring Apps からアプリケーション ログの一覧 (時間順に並べ替え、最新のログを最初に表示) を確認するには、[検索] ボックスで次のクエリを実行します。
azure.springcloudlogs.category : "ApplicationConsole"
エラーまたは例外を含むログ エントリを表示する
エラーまたは例外を示す並べ替えられていないログ エントリを確認するには、次のクエリを実行します。
azure_log_forwarder.resource_type : "Microsoft.AppPlatform/Spring" and (log.level : "ERROR" or log.level : "EXCEPTION")
Kibana Query Language は、ログから分析情報を取得するのに役立つオートコンプリートと提案が提供されるので、クエリを作成するのに役立ちます。 クエリを使用してエラーを検出するか、クエリ用語を変更して特定のエラー コードまたは例外を検索します。
特定のサービスからのログ エントリを表示する
特定のサービスによって生成されたログ エントリを確認するには、次のクエリを実行します。
azure.springcloudlogs.properties.service_name : "sa-petclinic-service"
警告またはエラーを含む Config Server のログを表示する
Config Server からのログを確認するには、次のクエリを実行します。
azure.springcloudlogs.properties.type : "ConfigServer" and (log.level : "ERROR" or log.level : "WARN")
サービス レジストリのログを表示する
サービス レジストリからのログを確認するには、次のクエリを実行します。
azure.springcloudlogs.properties.type : "ServiceRegistry"
Elastic を使用した Azure Spring Apps からのログの視覚化
Kibana を使用すると、ダッシュボードおよび視覚化の充実したエコシステムで、データを視覚化できます。 詳細については、「ダッシュボードと視覚化」を参照してください。
サービスの全体的な正常性を評価できるように、ログのさまざまなログ レベルを表示しするには、次の手順のようにします。
Discover の左側にある利用可能なフィールドの一覧から、logs- インデックス パターンの下にある検索ボックスで「log.level」を検索します。
log.level フィールドを選びます。 log.level に関するフローティング情報パネルから、[Visualize]\(視覚化\) を選びます。
ここでは、左側のペインからさらにデータを追加したり、データを視覚化する方法に関する複数の提案から選択したりすることができます。