分散アプリケーションは、多数のレイヤーとコンポーネントにわたってクラウドとオンプレミスのサービスにまたがっています。 可観測性は、すべてのレイヤーから運用データを収集し、それを分析して組織内の各利害関係者にサービスを提供するビューに統合することに依存します。
Azure Monitorは、さまざまなソースのデータを収集して集計し、分析、視覚化、アラートを行う共通のデータ プラットフォームに変換します。 複数のソースからのデータ間で一貫したエクスペリエンスを提供し、監視対象のすべてのリソース (データをAzure Monitorに格納する他のサービスからのデータを含む) に関する詳細な分析情報を提供します。
Azure Monitor のオブザーバビリティデータ
メトリック、ログ、分散トレースは、一般に、可観測性の 3 つの柱と呼ばれます。 監視ツールは、監視対象システムの十分な監視を提供するために、これら 3 種類のデータを収集して分析する必要があります。 監視を実現するには、複数の柱からのデータを関連付け、監視対象のリソースのセット全体にわたってデータを集計します。 Azure Monitor は複数のソースのデータを一緒に格納するため、共通のツール セットを使用してデータを関連付け、分析できます。 また、他のサービスのデータをホストするだけでなく、複数の Azure サブスクリプションとテナント間でデータを関連付けます。
Azure リソースでは、大量の監視データが生成されます。 Azure Monitor は、このデータを他のソースからの監視データと共にメトリックまたはログ プラットフォームに統合します。 各プラットフォームは特定の監視シナリオ用に最適化されており、各プラットフォームはAzure Monitorのさまざまな機能をサポートしています。 データ分析、視覚化、アラートなどの機能では、これらの違いを理解して、最も効率的でコスト効率の高い方法でシナリオを実装する必要があります。 Application Insights や Container Insights などのAzure Monitorの分析情報には、2 種類のデータの違いを理解する必要なく、特定の監視シナリオに焦点を当てた分析ツールが用意されています。
次の表は、メトリックとログを一目で比較しています。
| 特徴 | メトリック | ログ |
|---|---|---|
| それは何か | ある時点におけるシステムの側面を表す一定の間隔でサンプリングされた数値。 | 構造化されたテキストまたは自由形式のテキストを含むイベントのタイムスタンプ付きレコード。 |
| Storage | タイムスタンプ付きデータ用に最適化された時系列データベース。 | Log Analytics Azure Data Explorer上に構築されたワークスペース。 |
| 最適な用途 | パフォーマンスの問題のアラートと迅速な検出。 | 根本原因分析と詳細なコンテキスト クエリ。 |
| クエリ エクスペリエンス | メトリック ス エクスプローラーとメトリック アラート。 | Log Analyticsの Kusto クエリ言語 (KQL)。 |
Azure Monitor のメトリック
メトリック は、特定の時点におけるシステムの一部の側面を表す数値です。 Azure Monitorは定期的にメトリックを収集し、タイムスタンプ、名前、値、および 1 つ以上の定義ラベルを使用してそれらを識別します。 さまざまなアルゴリズムを使用してメトリックを集計し、それらを他のメトリックと比較し、時間の経過に伴う傾向を分析します。
Azure Monitorは、タイムスタンプ付きデータの分析用に最適化された時系列データベースにメトリックを格納します。 タイムスタンプを使用すると、メトリックはアラートや問題の迅速な検出に適しています。 メトリックはシステムのパフォーマンスを示しますが、通常はログと組み合わせて問題の根本原因を特定する必要があります。
Azure Monitor メトリックには、ネイティブ メトリックと Prometheus メトリックの 2 種類が含まれています。 2 つのデータ ソースの比較については、「Azure Monitorのメトリック」を参照してください。
Azure Monitor のログ
ログ は、システム内で発生したイベントです。 さまざまな種類のデータを含めることができます。また、タイムスタンプ付きの構造化テキストまたはフリーフォーム テキストである場合があります。 これらは、環境内のイベントがログ エントリを生成する場合に散発的に作成される場合があります。 大きな負荷がかかっているシステムでは一般に大量のログが生成されます。
Azure Monitor のログは、強力な分析エンジンと豊富なクエリ言語を提供する Azure Data Explorer に基づく Log Analytics ワークスペースに格納されます。 通常、ログには、識別された問題の完全なコンテキストを示す十分な情報が含まれ、問題の根本原因を識別するのに役立ちます。
注
Azure Monitor ログと Azure のログ データのソースを区別することが重要です。 たとえば、Azureのサブスクリプション レベルのイベントは、Azure Monitor メニューから使用可能なアクティビティ ログに書き込まれます。 ほとんどのリソースは、異なる場所に転送するために リソース ログ に操作情報を書き込みます。
Azure Monitor ログは、アクティビティ ログとリソース ログを他の監視データと共に収集して、リソースのセット全体を詳細に分析するログ データ プラットフォームです。
Azure ポータルでLog Analyticsを使用して、対話形式でログ クエリを操作します。 結果をAzureダッシュボードに追加して、他のデータと組み合わせて視覚化します。 スケジュールされたクエリの結果に基づいてアラートをトリガーする ログ検索アラート を作成します。
分散トレース
トレースは、分散システムを介してユーザー要求に従う一連の関連イベントです。 アプリケーション コードの動作と、さまざまなトランザクションのパフォーマンスを判断するために使用できます。 多くの場合、ログは分散システムの個々のコンポーネントによって作成されますが、トレースは、コンポーネントのセット全体にわたるアプリケーションの操作とパフォーマンスを測定します。
Application Insights を使用して、Azure Monitorで分散トレースを有効にします。 Application Insights は、収集した他のアプリケーション ログ データと共にトレース データを格納します。 このストレージを使用すると、ログ クエリ、ダッシュボード、アラートなど、他のログ データと同じ分析ツールでトレース データを使用できます。
Azure Resource Graphで追跡された変更
変更とは、インフラストラクチャ レイヤーからアプリケーションのデプロイまで、Azure アプリケーションで発生する一連のイベントです。 Change Analysis では、サブスクリプション レベルでこれらのイベントが追跡され、Azure Resource Graphに基づいてリソースの変更に関する詳細な分析情報が提供されます。
変更分析が Azure Resource Graph で実行されるようになりました。これにより、すべてのサブスクリプションとリソースでオンボーディング不要のエクスペリエンスが提供されます。
Microsoft.ChangeAnalysis リソース プロバイダーを登録する必要がなくなりました。 Resource Graph では、Change Actor 機能を使用して、Azure Resource Manager コントロール プレーンを介してリソースがいつ作成、更新、または削除されるかを識別します。
変更分析は、問題の原因となった可能性のある変更を理解するのに役立つ、管理およびトラブルシューティングのシナリオに関するデータを提供します。
- Azure ポータルの問題の診断と解決エクスペリエンスからアプリケーションのトラブルシューティングを行います。
-
Microsoft.ResourceGraph/resourcesAPI を使用してテナント全体の変更履歴を照会します。 - Azure ポータルでリソースの変更を表示します。
詳細については、「変更分析を使用してAzureリソースへの変更を分析する」を参照してください。
監視データの収集
Azure Monitor のさまざまなデータ ソースは、Log Analytics ワークスペース (ログ) または Azure Monitor メトリック データベース (メトリック) またはその両方に書き込みます。 これらのデータ ストアに直接書き込むソースもあれば、Azure Storage などの別の場所に書き込み、ログやメトリックを設定するための構成が必要なソースもあります。
各種類を設定するさまざまなデータ ソースの一覧については、 Azure Monitor のメトリック と Azure Monitor のログに関するページを参照してください。
外部システムにデータをストリーム配信する
Azure のツールを使用して監視データを分析するだけでなく、セキュリティ情報やイベント管理製品などの外部ツールに転送する必要がある場合があります。 通常、この転送は、監視対象のリソースから Azure Event Hubs を介して直接行われます。
一部のソースは、イベント ハブに直接データを送信します。 その他の場合は、ロジック アプリなどの別のプロセスを使用して、必要なデータを取得します。 詳細については、 外部ツールで使用するために Azure 監視データをイベント ハブにストリーミングする方法に関するページを参照してください。
次のステップ
- Azure Monitor のメトリック
- Azure Monitorのログ
- Azureのさまざまなリソースで使用可能な監視データ