次の方法で共有


Azure Event Hubs を監視する

この記事では、次の内容について説明します。

  • このサービスに対して収集できる監視データの種類。
  • そのデータを分析する方法。

Note

このサービスや Azure Monitor を既に使い慣れていて、監視データの分析方法だけを確認したい場合は、この記事で後述する分析に関するセクションをご覧ください。

Azure リソースに依存するクリティカルなアプリケーションやビジネス プロセスがある場合は、システムを監視し、そのアラートを受け取る必要があります。 Azure Monitor サービスでは、システムのすべてのコンポーネントからメトリックとログを収集して集計します。 Azure Monitor を使用すると、可用性、パフォーマンス、回復性を視覚化し、問題に関する通知を受け取ることができます。 Azure portal、PowerShell、Azure CLI、REST API、またはクライアント ライブラリは、監視データの設定および表示に使用できます。

Azure Monitor のドキュメントでは、次の概念について説明します。

  • Azure Monitor とは
  • 監視に関連するコスト
  • Azure で収集される監視データ
  • データ収集の構成
  • 監視データの分析とアラート生成のための Azure の標準ツール

次のセクションでは、Azure Event Hubs 用に収集される特定のデータについて説明します。 これらのセクションでは、Azure ツールを使用してデータ収集を構成し、このデータを分析する例も紹介します。

ヒント

Azure Monitor に関連したコストを把握するには、「Azure Monitor のコストと使用量」を参照してください。 データが Azure Monitor に表示されるまでにかかる時間を把握するには、ログ データのインジェスト時間に関する記事を参照してください。

リソースの種類

Azure では、リソースの種類と ID の概念を使用して、サブスクリプション内のすべてを識別します。 リソースの種類は、Azure で実行されているすべてのリソースのリソース ID の一部でもあります。 たとえば、Microsoft.Compute/virtualMachines は、仮想マシンのリソースの種類の 1 つです。 サービスとそれに関連付けられるリソースの種類の一覧については、リソース プロバイダーに関するページをご覧ください。

同様に、Azure Monitor では、コア監視データがリソースの種類 (名前空間とも呼ばれます) に基づいてメトリックとログに整理されます。 リソースの種類に応じてさまざまなメトリックとログが使用できます。 サービスは、複数のリソースの種類に関連付けられる可能性があります。

Event Hubs のリソースの種類の詳細については、Azure Event Hubs 監視データのリファレンスを参照してください。

データ ストレージ

Azure Monitor の場合:

  • メトリック データは、Azure Monitor メトリック データベースに保存されます。
  • ログ データは、Azure Monitor ログ ストアに保存されます。 Log Analytics は、Azure portal のツールの 1 つであり、このストアに対してクエリを実行することができます。
  • Azure アクティビティ ログは、Azure Portal 内の独自のインターフェイスを持つ別のストアです。

必要に応じて、メトリックおよびアクティビティ ログ データを Azure Monitor ログ ストアにルーティングできます。 次に、Log Analytics を使用してデータのクエリを実行し、他のログ データと関連付けることができます。

多くのサービスで診断設定を使用して、メトリックとログ データを Azure Monitor の外部の他のストレージの場所に送信できます。 たとえば、Azure Storage、ホステッド パートナー システムEvent Hubs を使用する Azure 以外のパートナー システムなどがあります。

Azure Monitor によるデータの保存方法の詳細については、「Azure Monitor データ プラットフォーム」を参照してください。

  • Azure Storage

    Azure Storage を使用して診断ログ情報を格納する場合、情報は insights-logs-operationlogs および insights-metrics-pt1m という名前のコンテナーに格納されます。 操作ログのサンプル URL: https://<Azure Storage account>.blob.core.windows.net/insights-logs-operationallogs/resourceId=/SUBSCRIPTIONS/<Azure subscription ID>/RESOURCEGROUPS/<Resource group name>/PROVIDERS/MICROSOFT.EVENTHUB/NAMESPACES/<Namespace name>/y=<YEAR>/m=<MONTH-NUMBER>/d=<DAY-NUMBER>/h=<HOUR>/m=<MINUTE>/PT1H.json。 メトリック ログの URL は似ています。

  • Azure Event Hubs

    Azure Event Hubs を使用して診断ログ情報を格納する場合、情報は insights-logs-operationlogs および insights-metrics-pt1m という名前の Event Hubs インスタンスに格納されます。 診断設定を構成しているイベント ハブを除く、既存のイベント ハブを選ぶこともできます。

  • Log Analytics

    Log Analytics を使用して診断ログ情報を格納する場合、情報は AzureDiagnostics/AzureMetrics という名前のテーブル、またはリソース固有のテーブルに格納されます。

重要

これらの設定を有効にするには、追加の Azure サービス (ストレージ アカウント、イベント ハブ、または Log Analytics) が必要です。 これらのサービスにより、コストが増加する可能性があります。 推定コストを計算するには、Azure 料金計算ツールにアクセスしてください。

Note

診断設定でメトリックを有効にするとき、現在、ディメンション情報は、ストレージ アカウント、イベント ハブ、または Log Analytics に送信される情報の一部として含まれません。

Azure Monitor プラットフォームのメトリック

Azure Monitor により、ほとんどのサービスに関するプラットフォーム メトリックが提供されます。 これらのメトリックは次のとおりです。

  • 名前空間ごとに個別に定義されます。
  • Azure Monitor 時系列メトリック データベースに保存されます。
  • 軽量であり、凖リアルタイムのアラートをサポートできます。
  • リソースのパフォーマンスを時間の経過と共に追跡するために使用されます。

収集: Azure Monitor では、プラットフォーム メトリックを自動的に収集します。 構成は必要ありません。

ルーティング: また、いくつかのプラットフォーム メトリックを Azure Monitor ログまたは Log Analytics にルーティングして、他のログ データを使用してクエリを実行することもできます。 各メトリックの DS エクスポート設定を確認して、診断設定を使用してメトリックを Azure Monitor ログまたは Log Analytics にルーティングできるかどうかを確認します。

Azure Monitor ですべてのリソースに対して収集できるすべてのメトリックの一覧については、Azure Monitor でサポートされるメトリックに関する記事を参照してください。

リソース ログは、診断設定を作成して 1 つ以上の場所にルーティングするまでは収集および格納されません。 診断設定を作成するときは、収集するログのカテゴリを指定します。 Azure Event Hubs のカテゴリの一覧については、Azure Event Hubs 監視データのリファレンスに関する記事を参照してください。

Note

Azure Monitor から Azure Storage、Azure Event Hubs、Log Analytics などの宛先に送信されるエクスポートされたメトリック データに、ディメンションは含まれません。

Event Hubs で使用可能なメトリックの一覧については、Azure Event Hubs 監視データのリファレンスを参照してください。

メトリックの分析

Azure Event Hubs のメトリックと他の Azure サービスのメトリックを分析するには、Event Hubs 名前空間のホーム ページ上で [Azure Monitor] セクションから [メトリック] を選択します。 このツールの使用方法の詳細については、Azure Monitor メトリックス エクスプローラーでメトリックスを分析する方法に関するページを参照してください。 収集されるプラットフォーム メトリックの一覧については、Azure Event Hubs 監視データのリファレンスのメトリックに関する記事を参照してください。

[Event Hubs 名前空間] のメトリックス エクスプローラーを示すスクリーンショット。

参考のために、Azure Monitor でサポートされているすべてのリソース メトリックの一覧を確認できます。

ヒント

Azure Monitor のメトリック データは 90 日分利用できます。 ただし、グラフを作成するときは、30 日分だけ視覚化できます。 たとえば、90 日間の期間を視覚化する場合は、90 日間の期間内で 30 日間の 3 つのグラフに分割する必要があります。

フィルター処理と分割

ディメンションをサポートするメトリックについては、ディメンション値を使用してフィルターを適用できます。 たとえば、フィルターを追加して EntityName をイベント ハブの名前に設定します。 また、メトリックをディメンションで分割して、メトリックのセグメントを互いに比較してどのように異なるかを視覚化することもできます。 フィルター処理と分割の詳細については、Azure Monitor の高度な機能に関する記事をご覧ください。

フィルターを含む [Event Hubs 名前空間] のメトリックス エクスプローラーを示すスクリーンショット。

Azure Monitor リソース ログ

リソース ログでは、Azure リソースによって実行された操作に関する分析情報を提供します。 ログは自動的に生成されますが、保存するかクエリを実行するには、Azure Monitor ログにルーティングする必要があります。 ログはカテゴリに分類されています。 特定の名前空間に複数のリソース ログ カテゴリが含まれる場合があります。

収集: リソース ログは、"診断設定" を作成してログを 1 つ以上の場所にルーティングするまでは収集および保存されません。 診断設定を作成するときは、収集するログのカテゴリを指定します。 診断設定を作成して管理するには、Azure portal、プログラム、Azure Policy など、複数の方法があります。

ルーティング: 既定で推奨されるのは、リソース ログを Azure Monitor ログにルーティングして、他のログ データを使用してクエリを実行できるようにすることです。 Azure Storage、Azure Event Hubs、特定の Microsoft 監視パートナーなど、その他の場所も利用できます。 詳細については、「Azure リソース ログ」およびリソース ログの送信先に関するページを参照してください。

リソース ログの収集、保存、ルーティングの詳細については、「Azure Monitor の診断設定」を参照してください。

Azure Monitor で使用可能なすべてのリソース ログ カテゴリの一覧については、Azure Monitor でサポートされているリソース ログに関するページを参照してください。

Azure Monitor 内のすべてのリソース ログには、同じヘッダー フィールドの後にサービス固有のフィールドがあります。 共通のスキーマの概要については、Azure Monitor リソース ログのスキーマに関する記事をご覧ください。

使用可能なリソース ログ カテゴリ、それに関連する Log Analytics テーブル、および Event Hubs のログ スキーマについては、Azure Event Hubs の監視データのリファレンスを参照してください。

ログの分析

Azure Monitor Log Analytics を使用するには、診断構成を作成して、Log Analytics への情報の送信 を有効にする必要があります。 詳細については、メトリックに関するセクションを参照してください。 Azure Monitor のログのデータはテーブルに格納され、各テーブルには独自の一意のプロパティ セットがあります。 Azure Event Hubs には、Log Analytics で Azure Diagnostic またはリソース固有のテーブルという 2 つの宛先テーブルのいずれかにログをディスパッチする機能があります。 ログとメトリックの詳細なリファレンスについては、Azure Event Hubs 監視データのリファレンスに関する記事を参照してください。

重要

Azure Event Hubs のメニューから [ログ] を選択すると、クエリのスコープが現在のワークスペースに設定された状態で Log Analytics が開きます。 つまり、ログ クエリには、そのリソースからのデータのみが含まれます。 他のデータベースのデータや他の Azure サービスのデータを含むクエリを実行する場合は、Azure Monitor のメニューから [ログ] を選択します。 詳細については、「Azure Monitor Log Analytics のログ クエリのスコープと時間範囲」を参照してください。

ランタイム ログを使用する

Azure Event Hubs を使用すると、ランタイム監査ログとアプリケーション メトリック ログを使用して、クライアント アプリケーションのデータ プレーン操作を監視および監査できます。

ランタイム監査ログを使用すると、イベントの発行や使用など、すべてのデータ プレーン アクセス操作の集計された診断情報をキャプチャできます。 アプリケーション メトリック ログでは、Event Hubs に接続されたクライアント アプリケーションに関連する特定のランタイム メトリック (コンシューマー ラグやアクティブな接続など) に関する集計データがキャプチャされます。

Note

ランタイム監査ログは、Premium 層および専用の層でのみ使用できます。

ランタイム ログを有効にする

ランタイム監査ログまたはアプリケーション メトリック ログを有効にするには、Azure portal の [Event Hubs 名前空間] ページの [監視] セクションから [診断設定] を選択します。 次の図に示すように、[診断設定の追加] を選びます。

[Event Hubs 名前空間] の [診断設定] ページを示すスクリーンショット。

次に、必要に応じてログ カテゴリ RuntimeAuditLogs または ApplicationMetricsLogs を有効にすることができます。

有効になったランタイム監査ログとアプリケーション メトリック ログを示すスクリーンショット。

ランタイム ログが有効になると、Event Hubs は診断設定の構成に従ってログの収集と格納を開始します。

サンプル データを発行して使用する

Event Hubs 名前空間のサンプル ランタイム監査ログを収集するには、Event Hubs SDK に基づくクライアント アプリケーションを使用してサンプル データを発行して使用できます。 SDK では、Advanced Message Queuing Protocol (AMQP) が使用されます。 または、任意の Apache Kafka クライアント アプリケーションを使用できます。

アプリケーション メトリックには、次のランタイム メトリックが含まれています。

アプリケーション メトリックを分析するためのサンプル クエリの結果を示す画像。

そのため、アプリケーション メトリックを使用して、特定のクライアント アプリケーションからのコンシューマー ラグやアクティブな接続などのランタイム メトリックを監視できます。 ランタイム監査ログに関連付けられているフィールドは、アプリケーション メトリック ログ リファレンスで定義されています。

Azure activity log

アクティビティ ログには、Azure リソースごとに操作を追跡する、そのリソースの外から見たサブスクリプションレベルのイベント (新しいリソースの作成や仮想マシンの起動など) が含まれます。

収集: アクティビティ ログ イベントは、Azure portal で表示するために、個別のストアに自動的に生成および収集されます。

ルート指定: アクティビティ ログ データを Azure Monitor ログに送信して、他のログ データと共に分析できます。 Azure Storage、Azure Event Hubs、特定の Microsoft 監視パートナーなど、その他の場所も利用できます。 アクティビティ ログをルーティングする方法の詳細については、Azure アクティビティ ログの概要に関するページをご覧ください。

監視データを分析する

監視データを分析するためのツールは多数あります。

Azure Monitor ツール

Azure Monitor は、次の基本的なツールをサポートします。

より複雑な視覚化を可能にするツールは次のとおりです。

  • ダッシュボードを使用すると、さまざまな種類のデータを組み合わせて、Azure portal 内の 1 つのペインに表示できます。
  • ブック。Azure portal で作成できるカスタマイズ可能なレポート。 ブックには、テキスト、メトリック、ログ クエリを含めることができます。
  • Grafana。運用ダッシュボードに優れたオープン プラットフォーム ツール。 Grafana を使用して、Azure Monitor 以外の複数のソースからのデータを含むダッシュボードを作成できます。
  • Power BI。さまざまなデータ ソースにわたって対話型の視覚化を提供するビジネス分析サービス。 Azure Monitor からログ データを自動的にインポートするように Power BI を構成して、これらの視覚化を利用できます。

Azure Monitor エクスポート ツール

次の方法を使用して、Azure Monitor から他のツールにデータを取得できます。

Azure Monitor 用 REST API の使用を開始するには、「Azure 監視 REST API のチュートリアル」を参照してください。

Kusto クエリ

Kusto クエリ言語 (KQL) を使用して、Azure Monitor ログ/Log Analytics ストアの監視データを分析できます。

重要

ポータルでサービスのメニューから [ログ] を選択すると、クエリ スコープが現在のサービスに設定された状態で Log Analytics が開きます。 このスコープは、ログ クエリにその種類のリソースのデータのみが含まれることを意味します。 他の Azure サービスのデータを含むクエリを実行する場合は、[Azure Monitor] メニューから [ログ] を選択します。 詳細については、「Azure Monitor Log Analytics のログ クエリのスコープと時間範囲」を参照してください。

いずれかのサービスに関する一般的なクエリの一覧については、Log Analytics クエリ インターフェイスに関するページを参照してください。

サンプル Kusto クエリ

次に、Azure Event Hubs リソースの監視に使用できるサンプル クエリを示します。

  • 過去 7 日間のエラーを取得します。

    AzureDiagnostics
    | where TimeGenerated > ago(7d)
    | where ResourceProvider =="MICROSOFT.EVENTHUB"
    | where Category == "OperationalLogs"
    | summarize count() by "EventName"
    
    
  • 過去 1 時間に生成されたランタイム監査ログを取得します。

    AzureDiagnostics
    | where TimeGenerated > ago(1h)
    | where ResourceProvider =="MICROSOFT.EVENTHUB"
    | where Category == "RuntimeAuditLogs"    
    
  • "キーが見つかりません" というエラーを発生させた、キー コンテナーへのアクセス試行を取得します。

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB" 
    | where Category == "Error" and OperationName == "wrapkey"
    | project Message
    
  • キー コンテナーで実行された操作を取得して、キーを無効にするか復元します。

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB"
    | where Category == "info" and OperationName == "disable" or OperationName == "restore"
    | project Message
    
  • キャプチャのエラーとその期間 (秒単位) を取得します。

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB"
    | where Category == "ArchiveLogs"
    | summarize count() by "failures", "durationInSeconds"    
    

ランタイム監査ログを分析する

収集されたランタイム監査ログは、次のサンプル クエリを使用して分析できます。

AzureDiagnostics
| where TimeGenerated > ago(1h)
| where ResourceProvider == "MICROSOFT.EVENTHUB"
| where Category == "RuntimeAuditLogs"

クエリを実行すると、対応する監査ログを次の形式で取得できるようになります。

ランタイム監査ログを分析するためのサンプル クエリの結果を示す画像。

これらのログを分析することで、各クライアント アプリケーションが Event Hubs と対話する方法を監査できるようになります。 ランタイム監査ログに関連付けられている各フィールドは、ランタイム監査ログ リファレンスで定義されています。

アプリケーション メトリックを分析する

収集されたアプリケーション メトリック ログは、次のサンプル クエリを使用して分析できます。

AzureDiagnostics
| where TimeGenerated > ago(1h)
| where Category == "ApplicationMetricsLogs"

警告

Azure Monitor のアラートにより、監視データで特定の状態が見つかったときに事前に通知を受け取ります。 アラートにより、ユーザーが気付く前に、管理者が問題を識別して対処できます。 詳細については、Azure Monitor アラートに関するページを参照してください。

Azure リソースに関する一般的なアラートのソースは数多くあります。 Azure リソースに関する一般的なアラートの例については、ログ アラート クエリのサンプルに関するページをご覧ください。 Azure Monitor ベースライン アラート (AMBA) サイトには、重要なプラットフォーム メトリック アラート、ダッシュボード、ガイドラインを実装するための半自動化された方法が用意されています。 このサイトは、Azure ランディング ゾーン (ALZ) の一部であるすべてのサービスを含む、Azure サービスの継続的に拡張されるサブセットに適用されます。

共通アラート スキーマを使用すると、Azure Monitor のアラート通知の使用を標準化できます。 詳細については、「共通アラート スキーマ」をご覧ください。

アラートの種類

Azure Monitor データ プラットフォームでは、任意のメトリックまたはログ データ ソースに対してアラートを生成できます。 監視するサービスと収集する監視データに応じて、さまざまな種類のアラートがあります。 アラートの種類に応じて、さまざまな利点と欠点があります。 詳細については、適切な種類の監視アラートの選択に関するページをご覧ください。

次の一覧では、作成できる Azure Monitor アラートの種類について説明します。

  • メトリック アラートでは、リソース メトリックを定期的に評価します。 メトリックはプラットフォーム メトリック、カスタム メトリック、メトリックに変換された Azure Monitor からのログまたは Application Insights メトリックにすることができます。 メトリック警告では、複数の条件と動的しきい値を適用することもできます。
  • ログ アラートでは、ユーザーは Log Analytics クエリを使用して、定義済みの頻度でリソース ログを評価できます。
  • アクティビティ ログ アラートは、定義された条件と一致する新しいアクティビティ ログ イベントが発生したときにトリガーされます。 Resource Health アラートと Service Health アラートは、サービスとリソースの正常性を報告するアクティビティ ログ アラートです。

一部の Azure サービスでは、スマート検出アラートPrometheus アラート推奨されるアラート ルールもサポートされています。

一部のサービスでは、同じ Azure リージョン内に存在する同じ種類の複数のリソースに同じメトリック警告ルールを適用することで、大規模に監視することができます。 監視対象リソースごとに個別の通知が送信されます。 サポートされている Azure サービスとクラウドについては、「1 つのアラート ルールで複数のリソースを監視する」をご覧ください。

Azure Event Hubs のアラートにアクセスするには、Event Hubs 名前空間のホームページ上で [Azure Monitor] セクションから [アラート] を選択します。 アラートの作成の詳細については、「Azure Monitor を使用してメトリック アラートを作成、表示、管理する」を参照してください。

Event Hubs アラート ルール

次の表に、Event Hubs に推奨されるアラート ルールをいくつか示します。 これらのアラートは例に過ぎません。 Azure Event Hubs 監視データのリファレンスの中に一覧表示されている任意のメトリック、ログ エントリ、またはアクティビティ ログ エントリに対してアラートを設定できます。

アラートの種類 条件 説明
メトリック CPU CPU 使用率が設定値を超えた場合。
メトリック 使用可能なメモリ 使用可能なメモリが設定値を下回った場合。
メトリック バックログのキャプチャ バックログのキャプチャが特定の値を超えたとき。

Advisor の推奨事項

一部のサービスでは、リソースの操作中にクリティカルな条件や差し迫った変更が発生した場合は、ポータルのサービス [概要] ページにアラートが表示されます。 アラートの詳細と推奨される修正は、左側のメニューの [監視] の下の [アドバイザーのレコメンデーション] に表示されます。 通常の操作中、アドバイザーのレコメンデーションは表示されません。

Azure Advisor の詳細については、Azure Advisor の概要に関するページをご覧ください。