Azure Monitor の概要

Azure Monitor には、アプリケーションとサービスの可用性およびパフォーマンスを最大化する効果があります。 クラウドおよびオンプレミス環境のテレメトリを収集、分析し、対応する包括的なソリューションを提供します。 この情報を頼りにアプリケーションの実行状態を把握し、アプリケーションやその依存リソースに影響を及ぼす問題を事前に突き止めることができます。

Azure Monitor でできることの例を次に示します。

注意

このサービスは Azure Lighthouse をサポートしているため、サービス プロバイダーは各自のテナントにサインインして、顧客から委任されたサブスクリプションやリソース グループを管理することができます。

概要

次の図は、Azure Monitor の概要を示します。

  • 図の中央には、データ プラットフォーム用のストアがあります。 Azure Monitor には、メトリック、ログ、トレース、変更などの基本的な種類のデータが格納されます。
  • 左側には、これらのデータ ストアに格納される監視データのソースがあります。
  • 右側には、この収集されたデータについて Azure Monitor が実行するさまざまな機能があります。 これには、分析やアラートなどのアクションが含まれます。
  • 一番下には、統合されるもののレイヤーがあります。 これらは実際には図の他の部分全体に統合されていますが、それを視覚的に示すのは複雑すぎます。

Azure Monitor の概要を示す図。

監視と Azure Monitor データ プラットフォーム

メトリック、ログ、および分散トレースは、一般に可観測性の 3 つの柱と呼ばれています。 監視対象のシステム全体で、これらのさまざまな種類のデータを集計して関連付けることで、監視を実現できます。

Azure Monitor では、データをメトリック、ログ、または変更としてネイティブに格納します。 トレースはログ ストアに格納されます。 それぞれのストレージ プラットフォームが特定の監視シナリオ向けに最適化され、それぞれが Azure Monitor のさまざまな機能をサポートしています。 必要なシナリオを最も効率的かつコスト効率の高い方法で実装できるように、データ分析、視覚化、アラートなどの機能の間の違いを理解しておくことが重要です。

重要な要素 説明
メトリック メトリックは、特定の時点におけるシステムの何らかの側面を表す数値です。 メトリックは一定の間隔で収集され、タイムスタンプ、名前、値、および 1 つまたは複数の定義ラベルで識別されます。 メトリックは、さまざまなアルゴリズムを使用して集計したり、他のメトリックと比較したり、時間の経過による傾向を分析したりできます。

Azure Monitor のメトリックは、タイムスタンプ付きのデータを分析するために最適化された時系列データベースに格納されます。 詳細については、Azure Monitor メトリックに関する記事を参照してください。
ログ ログは、システム内で発生したイベントです。 さまざまな種類のデータを含めることができ、タイムスタンプの付いた構造化テキストまたは自由形式のテキストを使用できます。 それらは、環境内でログ エントリを生成するイベントとして散発的に作成される可能性があり、通常は、大きな負荷がかかっているシステムでは大量のログが生成されます。

Azure Monitor は、ログを Azure Monitor ログ ストアに格納します。 このストアでは、ログを個別の「Log Analytics ワークスペース」に分けられます。 そこでは、Log Analytics ツールを使用してそれらを分析できます。 Log Analytics ワークスペースは、強力な分析エンジンと豊かな Kusto クエリ言語を備えた Azure Data Explorer に基づいています。 詳細については、Azure Monitor ログに関するページを参照してください。
分散トレース トレースは、分散システムを通過するユーザー要求を追いかける、関連性のある一連のイベントです。 これらを使用して、アプリケーション コードの動作と複数のトランザクションのパフォーマンスを判断できます。 ログは、多くの場合、分散システムの個々のコンポーネントによって作成されますが、トレースでは、コンポーネント セット全体の間のアプリケーションの操作とパフォーマンスが測定されます。

Azure Monitor の分散トレースは、Application Insights SDK を使用して有効になります。 トレース データは、Application Insights によって収集された他のアプリケーション ログ データと一緒に Azure Monitor ログに格納されます。 詳細については、「分散トレースとは」を参照してください。
[変更点] 変更は変更分析を使用して追跡されます。 変更とは、Azure アプリケーションとリソースで発生する一連のイベントです。 変更分析は、Azure Resource Graph の機能に基づいて構築されたサブスクリプションレベルの可観測性ツールです。

変更分析を有効にすると、Microsoft.ChangeAnalysis リソース プロバイダーは Azure Resource Manager サブスクリプションに登録されます。 変更分析は監視および診断ツールと統合されており、問題の原因となった変更をユーザーが把握できるデータが提供されます。 変更分析の詳細については、「Azure Monitor で変更分析を使用する」を参照してください。

Azure Monitor では、他のサービスのデータに対するホスティングに加え、複数の Azure サブスクリプションとテナント間のデータを集約し関連付けを行います。 このデータは一緒に格納されるため、一般的なツール セットを使用して関連付けと分析を行うことができます。

Note

Azure Monitor のログと Azure 上のログ データのソースを区別することが重要です。 たとえば、Azure のサブスクリプション レベルのイベントは、Azure Monitor のメニューから表示できるアクティビティ ログに書き込まれます。 ほとんどのリソースでは、別の場所に転送できるリソース ログに運用情報が書き込まれます。 Azure Monitor Logs は、アクティビティ データとリソース ログと共に他の監視データを収集して、リソース全体を深く分析するためのログ データ プラットフォームです。

Azure Monitor で収集された多くの Azure リソースのデータは、Azure portal のそれぞれの概要ページで参照できます。 たとえば、任意の仮想マシン (VM) を見てみると、パフォーマンス メトリックが表示されたいくつかのグラフが表示されます。 グラフのいずれかを選択して、Azure portal のメトリック ス エクスプローラーでデータを開きます。 メトリックス エクスプローラーを使用すると、一定期間の複数のメトリックの値をグラフ化できます。 グラフは、対話形式で表示したり、ダッシュボードにピン留めして他の視覚化と一緒に表示したりできます。

視覚化で使用するためにメトリック エクスプローラーに送信されるメトリック データを示す図。

Azure Monitor が収集したログ データは、収集されたデータをすばやく検索、統合、分析するクエリを使用して分析できます。 Azure portal から Log Analytics ユーザー インターフェイスを使用してクエリを作成し、テストすることができます。 その後、別のツールを使用してデータを直接分析するか、またはクエリを保存して視覚化アラート ルールに利用することができます。

Azure Monitor ログでは、Kusto クエリ言語の 1 つのバージョンを使用します。この言語は、単純なログ検索に適している一方で、集計、結合、スマート分析など高度な機能も備えています。 さまざまなレッスンを利用すれば、クエリ言語はすぐに覚えることができます。 既に SQLSplunk に習熟しているユーザーには、別途ガイダンスが用意されています。

分析のために Log Analytics に送信されるログ データを示す図。

変更分析では、稼働中のサイトの問題、停止、コンポーネント障害、またはその他の変更データに関するアラートが生成されます。 また、これらのアプリケーションの変更に関する分析情報も提供され、可観測性が向上し、平均修復時間が短縮されます。 Microsoft.ChangeAnalysis リソース プロバイダーを Azure Resource Manager サブスクリプションに自動的に登録するには、Azure portal を使用して変更分析に移動します。 Web アプリのゲスト内変更の場合は、問題の診断と解決ツールを使用して、変更分析を有効にできます。

変更分析は Azure Resource Graph に基づいて構築されており、Azure リソースの経時変化の履歴記録を提供します。 また、マネージド ID、プラットフォーム オペレーティング システムのアップグレード、ホスト名の変更を検出します。 変更分析では、IP 構成ルール、TLS 設定、および拡張機能のバージョンについて確実にクエリを実行し、より詳細な変更データを提供します。

Azure Monitor で収集できるデータ

Azure Monitor では、アプリケーションから、それが依存するオペレーティング システムとサービス、プラットフォーム自体にまで及ぶソースからデータを収集できます。 Azure Monitor では、以下のそれぞれの層からデータが収集されます。

  • アプリケーション - プラットフォームを問わず、記述したコードのパフォーマンスと機能に関するデータ。
  • コンテナー - コンテナーと、コンテナー内で実行されている Azure Kubernetes などのアプリケーションに関するデータ。
  • ゲスト オペレーティング システム: アプリケーションが実行されているオペレーティング システムに関するデータ。 システムは Azure、別のクラウド、またはオンプレミスで実行できます。
  • Azure リソース - Azure リソースの操作に関するデータ。 メトリックまたはログのあるリソースの一覧については、Azure Monitor で監視できるものに関するページをご覧ください。
  • Azure サブスクリプション: Azure サブスクリプションの操作と管理に関するデータと、Azure 自体の正常性と操作に関するデータ。
  • Azure テナント - Azure Active Directory など、テナント レベルの Azure サービスの操作に関するデータ。
  • Azure リソースの変更: Azure リソース内の変更に関するデータと、インシデントと問題に対処してトリアージする方法。

Azure サブスクリプションを作成して VM や Web アプリなどのリソースを追加すると、Azure Monitor では即座にデータの収集が開始されます。 リソースが作成または変更されると、アクティビティ ログが記録されます。 リソースの状況や消費しているリソースは、メトリックからわかります。

データの収集をリソースの内部動作にまで拡張するには診断を有効にします。 ゲスト オペレーティング システムからテレメトリを収集したければ、コンピューティング リソースにエージェントを追加します。

ページ ビュー、アプリケーションの要求、例外など、詳細な情報を収集するには、Application Insights を使ったアプリケーションの監視を有効します。 さらにアプリケーションの可用性を検証するには、ユーザー トラフィックをシミュレートする可用性テストを構成します。

カスタム ソース

Azure Monitor では、データ コレクター API を使用して任意の REST クライアントからログ データを収集できます。 カスタム監視シナリオを作成し、他のソースを通じてテレメトリが公開されないリソースも監視対象に含めることができます。

分析情報とキュレーションされた視覚化

データの監視が役立つのは、コンピューティング環境の運用の可視性が高まる場合のみです。 一部の Azure リソース プロバイダーには、"キュレーションされた視覚化" が用意されています。これにより、特定のサービスまたは一連のサービス向けにカスタマイズされた監視エクスペリエンスが提供されます。 通常、最小限の構成が必要です。 より大規模にスケーラブルなキュレーションされた視覚化は "分析情報" と呼ばれ、ドキュメントや Azure portal にはその名前で示されています。

詳細については、Azure Monitor を使用した分析情報とキュレーションされた視覚化の一覧に関する記事を参照してください。 ここでは一部の大規模な分析情報について説明します。

Application Insights

Application Insights は、クラウドとオンプレミスのどちらにホストされているかにかかわらず、Web アプリケーションの可用性、パフォーマンス、使用状況を監視します。 Azure Monitor の強力なデータ分析プラットフォームを利用すれば、アプリケーションの運用に関する詳しい分析情報が得られます。 これを使用すると、ユーザーからのレポートを待たずにエラーを診断することができます。 Application Insights にはさまざまな開発ツールへの接続ポイントが含まれており、DevOps プロセスをサポートする Visual Studio とも統合されています。

Application Insights を示すスクリーンショット。

Container insights

Container insights では、Azure Kubernetes Service でホストされるマネージド Kubernetes クラスターにデプロイされているコンテナー ワークロードのパフォーマンスを監視します。 Kubernetes で使用可能なコントローラー、ノード、およびコンテナーから Metrics API 経由でメトリックを収集することにより、パフォーマンスを可視化します。 コンテナーのログも収集されます。 Kubernetes クラスターから監視を有効化すると、コンテナー化されたバージョンの Linux 向けの Log Analytics エージェントを使用してこれらのメトリックとログが自動的に収集されます。

コンテナーの正常性を示すスクリーンショット。

VM insights

VM insights では、利用している Azure VM の大規模な監視が行われます。 Windows VM と Linux VM のパフォーマンスと正常性が分析され、そのさまざまなプロセス、そして相互に関連し合う外部プロセスへの依存関係が特定されます。 このソリューションでは、オンプレミスまたは別のクラウド プロバイダーでホストされている VM について、パフォーマンスおよびアプリケーションの依存関係の監視もサポートされています。

VM insights を示すスクリーンショット。

重大な状況への応答

効果的な監視ソリューションは、対話形式で監視データを分析できるだけでなく、収集したデータから危機的な状況を識別して事前に応答できる必要があります。 たとえば、この応答は、問題の調査を担当する管理者にテキストまたはメールを送信することが考えられます。 または、自動化されたプロセスを起動して、エラー状態の修正を試みることも考えられます。

警告

Azure Monitor のアラートは、重大な状態を事前に通知し、可能であれば修正のためのアクションを実行しようとします。 メトリックに基づくアラート ルールにより、数値に基づいてほぼリアルタイムのアラートが提供されます。 ログに基づくルールでは、複数ソースのデータにまたがる複雑なロジックを実現できます。

Azure Monitor のアラート ルールは、受信者の一意なセットと複数のルール間で共有できるアクションを含むアクション グループを使用します。 アクション グループを使うと、Webhook を使用してアラートから外部アクションを起動したり、IT サービス マネジメント ツールと統合したりするなど、要件に基づいたアクションを実行することができます。

重大度、アラートの合計、およびその他の情報を含む Azure Monitor のアラートを表示するスクリーンショット。

自動スケール

自動スケールを使用すると、適切な量のリソースを実行して、アプリケーションに対する負荷を処理することができます。 Azure Monitor が収集したメトリックを使用し、負荷の増加に合わせて、いつ自動的にリソースを追加するかを判断するルールを作成しましょう。 アイドル状態のリソースを削除すればコストを削減することができます。 インスタンスの最小数および最大数と、リソースを増減するタイミングを示すロジックを指定します。

「プロセッサ時間 > 80%」というラベルが付いたいくつかのサーバーが直線上にあり、2 台のサーバーが最小、3 台のサーバーが現在の容量、5 台のサーバーが最大とマークされている、自動スケーリングを示す図。

監視データを視覚化する

グラフや表などによる視覚化は、監視データをまとめてさまざまな対象ユーザーに提示する際に利用できる効果的なツールです。 Azure Monitor には、データの視覚化と監視を行うための独自の機能がありますが、それをさまざまな対象ユーザーに公開するには、他の Azure サービスが使用されます。

ダッシュボード

Azure ダッシュボードを使用すると、さまざまな種類のデータを組み合わせて、Azure portal 内の 1 つのペインに表示できます。 ダッシュボードは、他の Azure ユーザーと共有することもできます。 ログ クエリやメトリック グラフの出力を Azure ダッシュ ボードに追加できます。 たとえば、メトリックのグラフ、アクティビティ ログの表、Application Insights の使用状況グラフ、ログ クエリ結果を示すタイルを組み合わせて 1 つのダッシュボードを作成できます。

アプリケーションとセキュリティのタイルと、その他のカスタマイズ可能な情報を含む、Azure ダッシュボードを示すスクリーンショット。

Workbooks

ブックは、Azure portal 内でデータを分析し、高度な視覚的レポートを作成するための柔軟なキャンバスを提供します。 これを使用すると、Azure 全体から複数のデータ ソースを活用し、それらを結合して、統合された対話型エクスペリエンスにすることができます。 Insights に備わっているブックを使用するか、あらかじめ定義されているテンプレートから独自のブックを作成することができます。

ブックの例を示すスクリーンショット。

Power BI

Power BI は、さまざまなデータ ソースにわたって対話型の視覚化を提供するビジネス分析サービスです。 組織内外の他のユーザーがデータを使用できるようにする効果的な手段です。 Azure Monitor からログ データを自動的にインポートするように Power BI を構成して、これらの視覚化を利用できます。

Power BI を示すスクリーンショット。

データの統合とエクスポート

多くの場合、監視データを使用するカスタム ソリューションを構築するために、Azure Monitor と他のシステムを統合したいという要件があります。 このような統合を実現するには、他の Azure サービスと Azure Monitor を連携させます。

Event Hubs

Azure Event Hubs は、ストリーミング プラットフォームとなるイベント インジェスト サービスです。 リアルタイム分析プロバイダーやバッチ処理アダプター、ストレージ アダプターを使用して、データを変換して格納することができます。 Event Hubs を使用すると、パートナー SIEM および監視ツールに対して Azure Monitor データをストリーム配信できます。

Logic Apps

Azure Logic Apps は、さまざまなシステムやサービスと統合されたワークフローを使用して、タスクやビジネス プロセスを自動化するのに使用できるサービスです。 Azure Monitor でメトリックとログの読み取りおよび書き込みを行うアクティビティが用意されています。

API

Azure Monitor のメトリックとログの読み取りや書き込み、生成されたアラートのアクセスには、複数の API が利用できます。 アラートの構成や取得も可能です。 API を使うと、Azure Monitor と統合するカスタム ソリューションを構築するために、あらゆることを行うことができます。

次のステップ

各項目の詳細情報

  • メトリックとログ Azure Monitor によって収集されたデータについては、こちらをご覧ください。
  • データ ソース アプリケーションのさまざまなコンポーネントでテレメトリを送信する方法については、こちらをご覧ください。
  • ログ クエリ 収集したデータを分析する場合は、こちらをご覧ください。
  • クラウドのアプリケーションとサービスを監視するためのベスト プラクティス