診断設定を使用して Elastic (ELK) でログを分析する

Note

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

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

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

この記事では、Azure Spring Apps の診断機能を使用して、Elastic (ELK) でログを分析する方法を示します。

次のビデオでは、Elastic を使用した Spring Boot アプリケーションの統一監視が紹介されています。


診断設定の構成

診断設定を構成するには、次の手順のようにします。

  1. Azure portal で Azure Spring Apps インスタンスに移動します。
  2. [診断設定] オプションを選んでから、[診断設定の追加] を選びます。
  3. 設定の名前を入力し、[Send to partner solution]\(パートナー ソリューションに送信\) を選んだ後、[Elastic] とログを送信する Elastic のデプロイを選びます。
  4. [保存] を選択します。

オプションが選択され、設定に名前が指定された [診断設定] ページを示す Azure portal のスクリーンショット。

Note

ログが出力されてから Elastic のデプロイに表示されるまでに、最大 15 分のギャップが生じる可能性があります。 Azure Spring Apps インスタンスが削除または移動された場合、この操作は診断設定リソースには連鎖しません。 診断設定リソースの親 (つまり、Azure Spring Apps インスタンス) に対して操作を行う前に、リソースを手動で削除する必要があります。 そうしないと、削除されたものと同じリソース ID で新しい Azure Spring Apps インスタンスをプロビジョニングした場合、または Azure Spring Apps インスタンスを移動して戻した場合に、以前の診断設定リソースによって引き続きそれが拡張されます。

Elastic を使用してログを分析する

Azure への Elastic のデプロイについて詳しくは、「Microsoft Azure に Elastic をデプロイして管理する方法」を参照してください。

ログを分析するには、次の手順のようにします。

  1. Azure portal の Elastic のデプロイの概要ページで、Kibana を開きます。

    デプロイ URL の Kibana リンクが強調表示されている Elasticsearch (Elastic Cloud) ページを示す Azure portal のスクリーンショット。

  2. Kibana の上部にある [Search]\(検索\) バーに、「Spring Cloud type:dashboard」と入力します。

    Spring Cloud type:dashboard の検索結果を示す Elastic/Kibana のスクリーンショット。

  3. 結果から [Logs Azure] Azure Spring Apps logs Overview を選びます。

    Azure Spring Apps アプリケーション コンソール ログを示す Elastic/Kibana のスクリーンショット。

  4. 次のようなクエリを使って、すぐに使用できる Azure Spring Apps ダッシュボードを検索します。

    azure.springcloudlogs.properties.app_name : "visits-service"
    

Discover で Kibana Query Language を使用してログを分析する

アプリケーション ログには、アプリケーションの正常性やパフォーマンスなどに関する重要な情報と詳細ログが記載されています。 ログを分析するには、次の手順のようにします。

  1. Kibana の上部にある [Search]\(検索\) バーに「Discover」と入力し、結果を選択します。

    検出の検索結果を示す Elastic/Kibana のスクリーンショット。

  2. Discover アプリで、まだ選んでいない場合は logs- インデックス パターンを選びます。

    検出アプリのログ ページを示す Elastic/Kibana のスクリーンショット。

  3. 次のセクションのようなクエリを使うと、アプリケーションの現在と過去の状態を把握するのに役立ちます。

さまざまなクエリについて詳しくは、Kibana Query Language のガイドに関するページをご覧ください。

Azure Spring Apps のすべてのログを表示する

Azure Spring Apps からアプリケーション ログの一覧 (時間順に並べ替え、最新のログを最初に表示) を確認するには、[検索] ボックスで次のクエリを実行します。

azure_log_forwarder.resource_type : "Microsoft.AppPlatform/Spring"

すべてのログが表示された検出アプリを示す Elastic/Kibana のスクリーンショット。

Azure Spring Apps から特定のログの種類を表示する

Azure Spring Apps からアプリケーション ログの一覧 (時間順に並べ替え、最新のログを最初に表示) を確認するには、[検索] ボックスで次のクエリを実行します。

azure.springcloudlogs.category : "ApplicationConsole"

特定のログが表示された検出アプリを示す Elastic/Kibana のスクリーンショット。

エラーまたは例外を含むログ エントリを表示する

エラーまたは例外を示す並べ替えられていないログ エントリを確認するには、次のクエリを実行します。

azure_log_forwarder.resource_type : "Microsoft.AppPlatform/Spring" and (log.level : "ERROR" or log.level : "EXCEPTION")

エラー ログと例外ログが表示された検出アプリを示す Elastic/Kibana のスクリーンショット。

Kibana Query Language は、ログから分析情報を取得するのに役立つオートコンプリートと提案が提供されるので、クエリを作成するのに役立ちます。 クエリを使用してエラーを検出するか、クエリ用語を変更して特定のエラー コードまたは例外を検索します。

特定のサービスからのログ エントリを表示する

特定のサービスによって生成されたログ エントリを確認するには、次のクエリを実行します。

azure.springcloudlogs.properties.service_name : "sa-petclinic-service"

特定のサービス ログが表示された検出アプリを示す Elastic/Kibana のスクリーンショット。

警告またはエラーを含む Config Server のログを表示する

Config Server からのログを確認するには、次のクエリを実行します。

azure.springcloudlogs.properties.type : "ConfigServer" and (log.level : "ERROR" or log.level : "WARN")

Config Server ログが表示された検出アプリを示す Elastic/Kibana のスクリーンショット。

サービス レジストリのログを表示する

サービス レジストリからのログを確認するには、次のクエリを実行します。

azure.springcloudlogs.properties.type : "ServiceRegistry"

サービス レジストリのログが表示された検出アプリを示す Elastic/Kibana のスクリーンショット。

Elastic を使用した Azure Spring Apps からのログの視覚化

Kibana を使用すると、ダッシュボードおよび視覚化の充実したエコシステムで、データを視覚化できます。 詳細については、「ダッシュボードと視覚化」を参照してください。

サービスの全体的な正常性を評価できるように、ログのさまざまなログ レベルを表示しするには、次の手順のようにします。

  1. Discover の左側にある利用可能なフィールドの一覧から、logs- インデックス パターンの下にある検索ボックスで「log.level」を検索します。

  2. log.level フィールドを選びます。 log.level に関するフローティング情報パネルから、[Visualize]\(視覚化\) を選びます。

    ログ レベルが表示された検出アプリを示す Elastic/Kibana のスクリーンショット。

  3. ここでは、左側のペインからさらにデータを追加したり、データを視覚化する方法に関する複数の提案から選択したりすることができます。

    視覚化オプションを含むアプリの検出を示す Elastic/Kibana のスクリーンショット。

次のステップ