次の方法で共有


Azure Monitor Log Analytics のログ クエリのスコープと時間範囲

Azure portal の [Log Analytics]ログ クエリを実行するとき、クエリによって評価されるデータのセットは、選択したスコープと時間範囲によって異なります。 この記事では、スコープと時間範囲、および要件に応じてそれぞれを設定する方法について説明します。 さまざまな種類のスコープの動作についても説明します。

必要なアクセス許可

クエリを実行する Log Analytics ワークスペースに対し、Microsoft.OperationalInsights/workspaces/query/*/read アクセス許可が必要です。これは、たとえば、Log Analytics 閲覧者組み込みロールによって提供されます。

クエリ スコープ

クエリ スコープは、クエリが評価するレコードを定義します。 この定義には通常、単一の Log Analytics ワークスペースまたは Application Insights アプリケーション内のすべてのレコードが含まれます。 Log Analytics では、特定の監視対象 Azure リソースにスコープを設定することもできます。 これにより、リソース所有者は、そのリソースが複数のワークスペースに書き込む場合でも、自分のデータのみに焦点を絞ることができます。

スコープは常に Log Analytics ウィンドウの左上に表示されます。 アイコンは、スコープが Log Analytics ワークスペースか、それとも Application Insights アプリケーションかを示します。 アイコンなしはその他の Azure リソースを示します。

ポータルに表示されるスコープのスクリーンショット。

Log Analytics の起動に使う方法によってスコープが決まり、スコープをクリックして変更できる場合もあります。 次の表は、使用されるさまざまな種類のスコープとそれぞれの詳細の一覧です。

重要

Application Insights でワークスペース ベースのアプリケーションを使用している場合、そのデータは、その他のすべてのログ データと共に Log Analytics ワークスペースに格納されます。 下位互換性のために、アプリケーションをスコープとして選択すると従来の Application Insights エクスペリエンスが得られます。 Log Analytics ワークスペースでこのデータを表示するには、このワークスペースにスコープを設定します。

クエリ スコープ スコープ内のレコード 選択方法 スコープの変更
Log Analytics ワークスペース Log Analytics ワークスペース内のすべてのレコード。 [Azure Monitor] メニューまたは [Log Analytics ワークスペース] メニューの [ログ] を選択します。 スコープを他のリソースの種類に変更できます。
Application Insights アプリケーション Application Insights アプリケーション内のすべてのレコード。 アプリケーションの [Application Insights] メニューで [ログ] を選択します。 スコープを別の Application Insights アプリケーションにのみ変更できます。
Resource group リソース グループ内のすべてのリソースによって作成されるレコード。 複数の Log Analytics ワークスペースからのデータを含めることができます。 リソース グループ メニューから [ログ] を選択します。 スコープは変更できません。
サブスクリプション サブスクリプション内のすべてのリソースによって作成されたレコード。 複数の Log Analytics ワークスペースからのデータを含めることができます。 サブスクリプション メニューから [ログ] を選択します。 スコープは変更できません。
その他の Azure リソース リソースによって作成されるレコード。 複数の Log Analytics ワークスペースからのデータを含めることができます。 リソース メニューから [ログ] を選択します。
OR
[Azure Monitor] メニューから [ログ] を選択し、新しいスコープを選択します。
スコープを同じリソースの種類にのみ変更できます。

リソースをスコープにしたときの制限

クエリ スコープが Log Analytics ワークスペースまたは Application Insights アプリケーションのときは、ポータルのすべてのオプションとすべてのクエリ コマンドが使用できます。 ただし、ポータルの以下のオプションは単一のワークスペースまたはアプリケーションに関連付けられているため、リソースをスコープにした場合は使用できません。

  • 保存
  • クエリ エクスプローラー
  • 新しいアラート ルール

リソースをスコープにした場合、クエリのスコープには、そのリソースまたはリソース セットのデータがあるワークスペースが既に含まれているため、クエリで次のコマンドを使うことはできません。

クエリ スコープの制限

スコープをリソースまたはリソース セットに設定することは、分散データを自動的に 1 つのクエリに統合できるため、Log Analytics の強力な機能です。 しかし、複数の Azure リージョンにわたるワークスペースからデータを取得する必要があると、パフォーマンスが大幅に低下する可能性があります。

Log Analytics は、特定の数のリージョンが使用されているときに警告またはエラーを発行して、複数のリージョンのワークスペースにまたがるクエリから過剰なオーバーヘッドを防ぐのに役立ちます。 スコープに 5 つ以上のリージョンのワークスペースが含まれている場合、クエリで警告が表示されます。 それでも実行はされますが、完了に過剰な時間がかかることがあります。

クエリ警告のスクリーンショット。

スコープに 20 以上のリージョンのワークスペースが含まれている場合、クエリの実行はブロックされます。 この場合、ワークスペース リージョンの数を減らし、クエリを再実行するように求められます。 ドロップダウンには、クエリのスコープ内のすべてのリージョンが表示されます。クエリの実行を再試行する前に、リージョンの数を減らす必要があります。

クエリ失敗のスクリーンショット。

時間の範囲

時間範囲は、レコードが作成された時期に基づいてクエリで評価されるレコード セットを指定します。 次のテーブルで指定しているように、これはワークスペースまたはアプリケーション内のすべてのレコードの TimeGenerated 列によって定義されます。 クラシック Application Insights アプリケーションの場合は、時間範囲に timestamp 列が使用されます。

Log Analytics ウィンドウの上部にあるタイム ピッカーから選択して、時間範囲を設定します。 定義済みの期間を選択するか、 [カスタム] を選択して特定の時間範囲を指定することができます。

タイム ピッカーのスクリーンショット。

上の表に示すように、標準の時間列を使用するクエリにフィルターを設定すると、タイム ピッカーが [Set in query]\(クエリに設定\) に変わり、タイム ピッカーは無効になります。 この場合、フィルターをクエリの先頭に配置し、後続の処理ではフィルター処理されたレコードを処理するだけで済むようにすると最も効率的です。

フィルター処理されたクエリのスクリーンショット。

workspace または app コマンドを使って別のワークスペースまたはクラシック アプリケーションからデータを取得する場合、タイム ピッカーの動作が異なることがあります。 スコープが Log Analytics ワークスペースのときに app を使っている場合、またはスコープがクラシック Application Insights アプリケーションのときに workspace を使っている場合、Log Analytics では、フィルターで使われる列によって時間フィルターが決まることが理解されない可能性があります。

次の例では、スコープは Log Analytics ワークスペースに設定されています。 クエリは workspace を使用して別の Log Analytics ワークスペースからデータを取得します。 タイム ピッカーは、予想された TimeGenerated 列を使用するフィルターを認識するので、 [Set in query]\(クエリに設定\) に変わります。

ワークスペースを使用したクエリのスクリーンショット。

ただし、クエリで app を使用してクラシック Application Insights アプリケーションからデータを取得する場合、Log Analytics でフィルターの timestamp 列が認識されず、タイム ピッカーは変更されません。 この場合、両方のフィルターが適用されます。 この例では、クエリの where 句で 7 日を指定した場合でも、過去 24 時間以内に作成されたレコードしかクエリに含まれません。

アプリを使用したクエリのスクリーンショット。

次のステップ