Azure Monitor のベスト プラクティス: データ収集を構成する
この記事は、Azure Monitor を構成する際の推奨事項に関する記事で紹介されているシナリオの一部です。 Azure やハイブリッド アプリケーション、リソースに対して Azure Monitor の機能を有効にするために必要なデータ収集を構成する際に推奨される手順を説明しています。
重要
Azure Monitor の機能とその構成は、ビジネス要件と、有効にする機能のコストとのバランスによって異なります。 次の各ステップでは、潜在的なコストがあるかどうかが識別されており、作業を進める前にこれらのコストを評価する必要があります。 価格の詳細については、「Azure Monitor の価格」を参照してください。
Log Analytics ワークスペース アーキテクチャを設計する
次の場合に必要な Azure Monitor ログの有効化には、少なくとも 1 つの Log Analytics ワークスペースが必要です。
- Azure リソースからの、ログなどのデータ収集。
- Azure Virtual Machines のゲスト オペレーティング システムからのデータ収集。
- 多くの Azure Monitor の分析情報の有効化。
Microsoft Sentinel や Microsoft Defender for Cloud などの他のサービスでも Log Analytics ワークスペースが使用され、Azure Monitor に使用するものと同じものを共有できます。
Log Analytics ワークスペースの作成にはコストがかかりませんが、そこに収集されるようにデータを構成した後、料金が発生する可能性があります。 ログ データの課金方法については、「Azure Monitor ログの料金の詳細」を参照してください。
最初の Log Analytics ワークスペースを作成するには、「Azure Portal で Log Analytics ワークスペースを作成する」を参照してください。また、アクセスを構成するには、「Log Analytics ワークスペースへのアクセスを管理する」を参照してください。 ワークスペースの構成には、Resource Manager テンプレートなどのスケーラブルな方法を使用することもできますが、ほとんどの環境では、必要なワークスペースの数がごく限られているため、多くの場合、その必要はありません。
最初の監視をサポートするには、1 つのワークスペースから始めます。 複数のワークスペースを使用するタイミングと、それらを検索して構成する方法のガイダンスについては、「Log Analytics ワークスペース構成を設計する」を参照してください。
Azure リソースからデータを収集する
Azure リソースの一部の監視は、構成を必要とせずに自動的に使用できます。 さらに多くの監視データを収集するには、構成手順を実行する必要があります。
次の表には、Azure リソースから使用可能なすべてのデータを収集するために必要な構成手順が示されています。 また、どの手順で Azure Monitor メトリックと Azure Monitor ログにデータが送信されるかも表示しています。 後続のセクションでは、各手順についてさらに詳しく説明します。
テナントとサブスクリプションのログを収集する
テナントの Microsoft Entra ログとサブスクリプションのアクティビティ ログは自動的に収集されます。 それらを Log Analytics ワークスペースに送信する場合は、Log Analytics のログ クエリを使用して、これらのイベントを他のログ データと共に分析できます。 ログ検索アラートを作成することもできます。これは Microsoft Entra ログに関する警告を提供する唯一の方法で、アクティビティ ログ アラートより複雑なロジックを提供します。
アクティビティ ログをワークスペースに送信するためのコストは存在しませんが、Microsoft Entra ログにはデータ インジェストとデータ保持の料金がかかります。
Log Analytics ワークスペースにログ エントリを送信するための、テナントとサブスクリプションに対する診断設定を作成するには、「Microsoft Entra ログの Azure Monitor ログとの統合」および「プラットフォーム ログとメトリックを異なる宛先に送信するための診断設定の作成」を参照してください。
リソース ログとプラットフォーム メトリックを収集する
Azure のリソースでは、リソース内で実行された操作の詳細を提供するリソース ログが自動的に生成されます。 プラットフォーム メトリックとは異なり、リソース ログが収集されるように構成する必要があります。 それらを Log Analytics ワークスペースに送信し、Azure Monitor Logs で使用される他のデータと結合するには、診断設定を作成します。 同じ診断設定を使用して、ほとんどのリソースのプラットフォーム メトリックを、同じワークスペースに送信することもできます。 この方法で、ログ クエリを使用して他の収集データと共にメトリック データを分析することができます。
Log Analytics ワークスペースでリソース ログを収集するにはコストがかかるので、貴重なデータを含むログ カテゴリのみを選択してください。 すべてのカテゴリを収集すると、ほとんど価値のないデータの収集にコストが発生してしまいます。 収集対象となるカテゴリの説明と推奨事項については、各 Azure サービスの監視に関するドキュメントを参照してください。 また、ログの収集のコストを最適化するための推奨事項については、Azure Monitor のベスト プラクティス (コスト管理) に関するページも参照してください。
Azure リソース用の診断設定の作成については、「Azure でリソース ログとメトリックを収集するための診断設定を作成する」を参照してください。
診断設定は Azure リソースごとに作成する必要があるため、Azure Policy を使用して、各リソースの作成時に診断設定を自動的に作成してください。 Azure リソースの種類にはそれぞれ、診断設定に一覧表示する必要がある一意のカテゴリのセットがあります。 このため、リソースの種類ごとに別個のポリシー定義が必要です。 一部のリソースの種類には、変更せずに割り当てることができる組み込みのポリシー定義があります。 その他のリソースの種類については、カスタム定義を作成する必要があります。
特定の Azure サービスに関するポリシーの定義を作成するプロセスと、診断設定を大規模に作成する方法の詳細については、「Azure Policy を使用して大規模な診断設定を作成する」を参照してください。
分析情報を有効にする
分析情報は、特定のサービスに特化した監視エクスペリエンスを提供するものです。 使用されるデータは、既に収集されているデータ (プラットフォームのメトリックやリソース ログなど) と同じですが、きわめて重要なデータの特定と分析に役立つカスタム ブックが提供されます。 対象となるサービスのリソース ログを収集する以外、特に必要な構成はなく、ほとんどの分析情報は Azure portal から得られます。 分析情報が利用できるかどうか、また構成が必要かどうかを調べるには、各 Azure サービスの監視に関するドキュメントを参照してください。
分析情報にコストはかかりませんが、それらによって収集されるデータに対して課金される場合があります。
Azure Monitor で利用可能な分析情報とソリューションの一覧については、「Azure Monitor Insights の概要」を参照してください。 固有の構成または価格の情報については、それぞれのドキュメントを参照してください。
仮想マシンの監視
仮想マシンでは、他の Azure リソースと同様のデータが生成されますが、ゲスト オペレーティング システムからデータを収集するにはエージェントが必要です。 また、仮想マシン上で実行されるワークロードは多様であるため、仮想マシンには固有の監視要件があります。 Azure Monitor を使用した仮想マシンの監視に特化したシナリオについては、「Azure Monitor を使用して Azure 仮想マシンを監視する」を参照してください。
コンテナーの監視
コンテナーから生成されるデータは他の Azure リソースと同様ですが、必要なデータを収集するには、コンテナー化されたバージョンの Log Analytics エージェントが必要です。 Container insights は、コンテナー化された監視環境を準備するのに役立ちます。 サードパーティのツールと連携して、Azure Kubernetes Service (AKS) とそれがサポートするワークフローの包括的な監視が提供されます。 Azure Monitor を使用した AKS の監視に特化したシナリオについては、「Azure Monitor のコンテナー正常性機能を使用して Azure Kubernetes Service を監視する」を参照してください。
アプリケーションの監視
カスタム アプリケーションを監視するために Azure Monitor で使用される Application Insights を、監視するアプリケーションごとに構成する必要があります。 構成プロセスは、監視対象のアプリケーションの種類と、実行する監視の種類によって異なります。 Application Insights によって収集されたデータは、機能に応じて、Azure Monitor メトリック、Azure Monitor ログ、Azure Blob Storage に格納されます。 パフォーマンス データは Azure Monitor メトリックと Azure Monitor ログの両方に格納され、追加の構成は必要ありません。
アプリケーション リソースを作成する
Application Insights は、クラウド ネイティブ アプリケーションとハイブリッド アプリケーションの監視を目的とした Azure Monitor の機能です。
監視するアプリケーションごとに Application Insights でリソースを作成することも、複数のアプリケーションに対して 1 つのアプリケーション リソースを作成することもできます。 複数のアプリケーションに対してそれぞれ個別のアプリケーション リソースを使用するか、または単一のアプリケーション リソースを使用するかは、監視戦略上の重要な判断です。 リソースを分ければ、コストが下がり、異なるアプリケーションからのデータの混在も防止できますが、リソースを 1 つにすれば、関連するすべてのテレメトリをまとめ、監視を単純化することができます。 この設計判断の基準については、「デプロイする必要がある Application Insights リソースの数」を参照してください。
アプリケーション リソースを作成するときに、クラシックまたはワークスペース ベースのどちらを使用するかを選択する必要があります。 クラシック アプリケーションを作成するには、「Application Insights リソースの作成」を参照してください。 ワークスペース ベースのアプリケーションを作成するには、「ワークスペース ベースの Application Insights リソース」を参照してください。 Application Insights によって収集されたログ データは、ワークスペースベースのアプリケーションの Azure Monitor ログに格納されます。 クラシック アプリケーションのログ データは、Log Analytics ワークスペースとは別に格納されます。
コード不要の監視またはコード ベースの監視を構成する
アプリケーションの監視を有効にするには、コード不要の監視またはコード ベースの監視を使用するかどうかを決定する必要があります。 構成プロセスは、この決定と監視対象のアプリケーションの種類によって異なります。
コード不要の監視は、実装するのが最も簡単で、コードを開発した後で構成できます。 コードを更新する必要はありません。 アプリケーションに基づいて監視を有効にする方法については、次を参照してください。
- Azure Web Apps でホストされているアプリケーション
- Java アプリケーション
- Azure Virtual Machines または Azure Virtual Machine Scale Sets の IIS でホストされる ASP.NET アプリケーション
- IIS のオンプレミスでホストされる ASP.NET アプリケーション
コード ベースの監視では、さらにカスタマイズが可能で、さらに多くのテレメトリが収集されますが、Application Insights SDK NuGet パッケージでコードに依存関係を追加する必要があります。 アプリケーションに基づいて監視を有効にする方法については、次を参照してください。
可用性テストを構成する
Application Insights の可用性テストは反復的なテストであり、世界中のポイントから定期的にアプリケーションの可用性と応答性が監視されます。 単純な ping テストを無料で作成できます。 また、一連の Web 要求を作成してユーザー トランザクションをシミュレートすることもできますが、関連コストが発生します。
さまざまな種類のテストの概要と作成方法については、「任意の Web サイトの可用性を監視する」を参照してください。
Profiler を構成する
Application Insights の Profiler を使用すると、.NET アプリケーションのパフォーマンス トレースが提供されます。 特定の Web 要求の処理に最も長い時間がかかる "ホットな" コード パスを特定するのに役立ちます。 Profiler を構成するプロセスは、アプリケーションの種類によって異なります。
Profiler の構成については、「Application Insights を使用した Azure のプロファイル運用アプリケーション」を参照してください。
スナップショット デバッガーを構成する
Application Insights のスナップショット デバッガーにより、.NET アプリケーションの例外テレメトリが監視されます。 運用環境の問題の診断に必要な情報を入手できるように、スローされる上位の例外に関するスナップショットが収集されます。 スナップショット デバッガーを構成するためのプロセスは、アプリケーションの種類によって異なります。
スナップショット デバッガーの構成については、「.NET アプリでの例外のデバッグ スナップショット」を参照してください。
次のステップ
すべての Azure リソースのデータ収集を構成したら、データの分析と視覚化に関する記事で、このデータを分析する方法を参照してください。