チュートリアル: Log Analytics を使用する

Log Analyticsは、Azure Monitor Logs によって収集されたデータのクエリと分析を行うAzure ポータルのツールです。 問題のトラブルシューティング、パフォーマンス傾向の調査、またはAzure リソースの動作を理解する必要がある場合は、Log Analyticsを使用して log クエリを記述して実行します。

このチュートリアルでは、サンプル データを使用して Log Analytics インターフェイスについて説明します。 テーブル スキーマを調べ、基本的なクエリを記述して実行し、結果を操作します。

このチュートリアルでは、次の操作を行います。

  • ログ データのスキーマを確認します。
  • 単純なクエリを記述して実行し、クエリの時間範囲を変更します。
  • クエリ結果のフィルター処理、並べ替え、グループ化を行います。
  • クエリ結果のビジュアルの表示、変更、共有を行います。
  • クエリと結果の読み込み、エクスポート、コピーを行います。

前提条件

  • Azure ポータルにアクセスできるMicrosoft アカウントまたはMicrosoft Entra ID ID。
  • Log Analyticsデモ環境 (推奨)。 デモ環境には、このチュートリアルのクエリをサポートするサンプル データが含まれています。 Azureサブスクリプションは必要ありません。
  • デモ環境ではなく独自のサブスクリプションを使用する場合は、データを含むLog Analyticsワークスペースが必要です。 テーブルがデモ データと一致しない可能性があります。

Log Analyticsには、単純クエリ言語と Kusto クエリ言語 (KQL) の 2 つのモードがあります。 このチュートリアルでは、主に KQL モードを使用します。 KQL クエリを記述する代わりにポイント アンド セレクト インターフェイスを使用する場合は、「単純モード

このチュートリアルでは、Log Analytics機能を使用してクエリを作成し、クエリの例を使用します。 クエリの構文を学習し、クエリ自体の直接編集を開始する準備ができたら、 Kusto クエリ言語 (KQL) チュートリアルをお試しください。 そのチュートリアルでは、Log Analytics 内で編集して実行できるサンプル クエリについて説明しています。 これは、このチュートリアルで学習する機能のいくつかを使用しています。

Log Analytics を開く

Log Analytics のデモ環境を開くか、ご自分のサブスクリプションの Azure Monitor メニューから [ログ] を選択します。 この手順により、初期のスコープが Log Analytics ワークスペースに設定されるため、クエリではそのワークスペース内のすべてのデータから選択されます。 Azure リソースのメニューから Logs を選択すると、スコープはそのリソースのレコードのみに絞り込まれます。 詳細については、「 ログ クエリスコープ」を参照してください。

現在のクエリの省略記号を選択して、現在のスコープを検索します。 独自の環境を使用している場合は、別のスコープを選択するオプションが表示されます。 このオプションはデモ環境では使用できません。

デモ用の Log Analytics スコープを示すスクリーンショット。

検証: クエリ エディターが表示され、スコープにワークスペース名または "Demo" が左上隅に表示されていることを確認します。

テーブル情報の表示

画面の左側には[ テーブル ]タブがあり、現在のスコープで使用できるテーブルを調べます。 これらのテーブルは、既定でソリューション別にグループ化されていますが、グループを変更したり、フィルター処理したりできます。

  1. ログ管理ソリューションを展開し、AppRequests テーブルを見つけます。 テーブルを展開してスキーマを表示するか、名前の上にマウス ポインターを合わせると、そのテーブルに関する詳細情報が表示されます。

  2. [便利なリンク] (この例では AppRequests) の下にあるリンクを選択して、テーブルとその列を文書化する参照を表示します。

  3. AppRequests テーブルにカーソルを合わせ、[実行] を選択すると、テーブル内の過去 24 時間のレコードが表示されます。 このプレビューは、より広範なクエリを実行する前にデータを確認するのに役立ちます。

    AppRequests テーブルのプレビュー データを示すスクリーンショット。

検証: プレビュー ウィンドウには、 名前URLDurationMsResultCodeClientCity などの列を含むレコードが表示されます。 AppRequests テーブルが ログ管理の下に表示されない場合は、ワークスペースに Application Insights データが構成されていない可能性があります。

クエリを記述する

AppRequests テーブルを使用してクエリを記述します。

  1. テーブル名をダブルクリックするか、テーブル名をポイントして [ エディターで使用 ] を選択してクエリ ウィンドウに追加します。 または、ウィンドウに直接「 AppRequests 」と入力します。 IntelliSense は、現在のスコープと KQL コマンドのテーブルの名前を完成するのに役立ちます。

  2. [実行] ボタンを選択するか、Shift キーを押しながら Enter キーを押し、クエリ テキスト内の任意の場所にカーソルを置きます。 このクエリは、可能な限り最も簡単で、テーブル内のすべてのレコードを 結果の表示 の制限まで返します。

検証: 結果ウィンドウの右下隅を確認します。 レコード数が 0 より大きいことを確認できるはずです。 結果の最大数については、「 クエリ結果の制限の構成」を参照してください。

独自のクエリを作成する方法については、「 Azure Monitor ログでのログ クエリの概要」を参照してください。

クエリの時間範囲を設定する

すべてのクエリで、設定された時間範囲以内に生成されたレコードが返されます。 既定では、タイム ピッカーは [過去 24 時間] に設定されています。 プレビューの実行後、クエリは明示的に時間範囲を 24 時間に設定します。画面の上部にある [時間範囲 ] ドロップダウンを使用して別の時間範囲を設定するか、クエリの where 演算子 を編集します。 両方の方法を使用する場合、Log Analyticsは 2 つの時間範囲の和集合を適用します。 詳細については、「 時間範囲の指定」を参照してください。

  1. [時間範囲] ドロップダウンから [過去 12 時間 ] を選択して 、時間範囲 を変更します。

  2. where演算子が存在する場合は、クエリから削除します。

  3. [実行] を選択すると、結果が返されます。

Log Analytics の時間範囲セレクターを示すスクリーンショット。

検証: 右下隅のレコード数は、 表示 制限が構成されているため、前の 24 時間の結果よりも小さくない場合があります。

複数のクエリ フィルターを適用する

フィルター条件を追加して、結果をさらに減らします。 クエリには、必要なレコードを正確に対象とするフィルターをいくつでも含めることができます。

  1. クエリ エディターの右上にあるモード ドロップダウンを選択して、 KQL モード から 単純 モードに切り替えます。 単純モードでは、KQL 構文を記述せずにフィルターを追加します。

  2. [制限の表示] の右側にある [フィルターの追加] アイコンを選択します。

  3. 名前フィルターを選択します。 既定の演算子は Select from リスト で、現在の結果のレコードに基づいて値が表示されます。

  4. [ GET Home/Index]\(ホーム/インデックスの取得\) を選択します。 予想される値が表示されない場合は、時間範囲を拡張し、表示制限を増やすか、他のフィルターを削除して、それらのレコードが結果に含まれていることを確認してください。

    複数のフィルターを使用したクエリ結果を示すスクリーンショット。

  5. KQL モードに戻り、適用したフィルターの KQL 構文を表示します。 クエリには、where列の条件を持つName演算子が含まれるようになりました。

検証: レコード数は、フィルター処理されていないクエリと比較して減少します。 [名前] 列に表示されるすべてのレコードには、GET Home/Index が表示されます。

クエリ結果の分析

Log Analyticsは、クエリの実行以外に結果を操作するための機能を提供します。

レコードを展開して並べ替える

  1. 行の左側にあるシェブロン (>) を選択して、レコードを展開してそのすべての列の値を表示します。

  2. 任意の列ヘッダーを選択して、その列で結果を並べ替えます。 同じヘッダーをもう一度選択して、昇順、降順、既定の順序を切り替えます。

    TimeGenerated 列で並べ替えられたクエリ結果と展開されたレコードを示すスクリーンショット。

列ヘッダーからフィルター

結果テーブルでは、列ヘッダーからのExcelのようなフィルター処理がサポートされています。 このメソッドを使用して、迅速な対話型分析を行います。

  1. DurationMs 列ヘッダーの横にある省略記号(...)を選択します。 この選択により、フィルター タブと列オプション タブが表示されます。ここで構成されたフィルターは、クエリを再実行するとクリアされます。

  2. 150 ミリ秒を超えるアプリケーション要求にレコードを制限するようにフィルターを設定します。

    検索結果で展開されたレコードを示すスクリーンショット。

検証: DurationMs フィルターを適用すると、表示されているすべてのレコードに 150 を超える DurationMs 値が 表示されます。 レコード数が減少します。

クエリ結果の検索

結果ウィンドウの右上にある検索ボックスを使用して、クエリ結果を検索します。

  1. クエリ結果の検索ボックスに「 Texas 」と入力します。

  2. 下向き矢印を選択して、検索結果でこの文字列の次のインスタンスを見つけます。

結果ウィンドウの右上にある検索ボックスを示すスクリーンショット。

検証: 一致するテキストが結果で強調表示されます。 矢印によるナビゲーションには、一致件数の総数(たとえば「2/12」)が表示されます。

検索ボックスは、ブラウザーに表示される結果のみをフィルター処理し、KQL クエリを変更したり、サーバーからデータを再フェッチしたりすることはありません。

データの再構成と集計

視覚化を向上させるために、クエリ結果のデータを再構成して集計します。

  1. 結果ペインの右側にある[列] を選択して、[列] サイドバーを開きます。

  2. 「Url」 列を 「行グループ」 セクションにドラッグします。 結果はその列ごとに整理され、各グループを折りたたむことができます。

    このアクションは、元のクエリから返されたデータを処理します。サーバーからデータを再フェッチすることはありません。 クエリを再実行すると、Log Analyticsは元のクエリに基づいてデータを取得します。

    URL でグループ化されたクエリ結果を示すスクリーンショット。

検証: 結果は折りたたみ可能なグループに表示され、各グループの URL ヘッダーが表示されます。 グループ ヘッダーを選択して展開または折りたたみします。

ピボット テーブルを作成する

ページのパフォーマンスを分析するには、ピボット テーブルを作成します。

  1. [列] サイド バーで、[ピボット モード] を選択します。

  2. [Url][DurationMs] を選択して、各 URL へのすべての呼び出しの合計時間を表示します。

  3. 各 URL の最大呼び出し期間を表示するには、 sum(DurationMs) を選択し、[ 最大] を選択します。

    ピボット モードを有効にし、URL と DurationMS の値に基づいてピボット テーブルを構成する方法を示すスクリーンショット。

  4. 結果ウィンドウで max(DurationMs) 列ヘッダーを選択して、最大呼び出し期間で結果を並べ替えます。

検証: ピボット テーブルには、 最大 (DurationMs) 値を持つ URL ごとに 1 行が表示されます。 結果は、継続時間の長い順に並べ替えられます。

クエリ結果をグラフとして視覚化する

数値データをグラフとして使用するクエリを表示します。 クエリを作成する代わりに、組み込みのクエリ ライブラリのクエリの例を使用します。

  1. 既存のテキストのクエリ エディターをクリアするか、現在のクエリ タブの横にあるプラス アイコンを選択して新しいクエリ タブを開きます。

  2. 左側のペインで、 [クエリ] を選択します。 このペインには、クエリ エディターに読み込むクエリの例が含まれています。 独自のワークスペースを使用している場合は、複数のカテゴリのさまざまなクエリが表示されます。

  3. [アプリケーション] カテゴリで応答時間傾向クエリを見つけます。 読み込むには、クエリをダブルクリックするか、クエリ名をポイントして詳細情報を表示し、[ エディターに読み込む] を選択します。 空白行は、新しいクエリを以前のクエリから分離します。 KQL では、空白行でクエリの末尾がマークされるため、エディター内の各クエリは個別に実行されます。

  4. 新しいクエリ内の任意の場所にカーソルを置き、[ 実行] を選択します。

    クエリ結果のグラフを示すスクリーンショット。

  5. [結果] タブを切り替えるか、グラフの書式設定を変更して他のオプションを調べます。

検証: グラフには、時間単位のデータ ポイントを含む時系列折れ線グラフが表示されます。 Y 軸には、平均応答時間 (ミリ秒単位) が表示されます。 データに急増が見られた場合は、時間範囲を調整してさらに調査します。

急増が発生したときに通知を受け取るには、アラート ルールを作成します。 アクション バーの [クエリ] ハブの横にある (...) を開き、[+ 新しいアラート ルール] を選択します。 詳細については、「 チュートリアル: Azure リソースのログ検索アラートを作成する」を参照してください。 アラート ルールの作成はデモ環境ではサポートされていませんが、そのしくみを確認するオプションを引き続き確認できます。

結果のエクスポートとコピー

クエリを実行した後、Log Analyticsの外部で使用するために結果をエクスポートまたはコピーします。 アクション バーの [共有 ] メニューから次の操作を行います。

  • クエリへのリンクをコピーします。 同じワークスペースにアクセスできる他のユーザーと共有できる現在のクエリへのリンクを作成します。
  • クエリ テキストをコピーする: エディターのクエリ テキストをクリップボードに選択します。

デモには一意の URL や保存クエリがないため、デモ環境ではこれらの機能は機能しませんが、独自の環境で試すことができます。

  • 結果をコピーする: 結果ウィンドウで行を選択し、右クリックして [ コピー ] を選択するか、 Ctrl + C キーを押します。 スプレッドシートまたはテキスト エディターにデータを貼り付けます。
  • [CSV にエクスポート] - [すべての列] または [CSV にエクスポート] - 表示された列を使用してデータをダウンロードします。
  • Power BI にエクスポート (M クエリとして) または Power BI にエクスポート (新しいデータセット) を選択すると、データが Power BI で開かれ、さらに分析および視覚化できます。
  • Excel で開く: データをエクスポートし、Excel で開きます。 このオプションは、コンピューターにExcelインストールされている場合にのみ使用できます。

アクション バーの [保存] メニューには、クエリを保存したり、ビジュアルをダッシュボードにピン留めしたりするためのオプションがあります。 共有ダッシュボードにビジュアルをピン留めする方法については、Azure Monitor Logs のデータを視覚化するダッシュボードを作成して共有するを参照してください。

一般的な問題のトラブルシューティング

問題 考えられる原因 Solution
デモ環境が読み込まれない ブラウザーは、ポップアップまたはサード パーティの Cookie をブロックします。 portal.azure.comのポップアップを許可します。 プライベートまたはシークレットのブラウザー ウィンドウを試してください。
AppRequests テーブルが表示されない ワークスペースには Application Insights データがありません。 デモ環境を使用するか、 Application Insights リソース をワークスペースに接続します。
クエリから 0 個の結果が返される 選択した時間範囲にデータがないか、フィルターが狭すぎます。 時間範囲を展開します (例: 過去 7 日間)。 フィルターを削除して、データが存在することを確認します。
ワークスペースでの "アクセスなし" エラー アカウントにワークスペースに対する読み取りアクセス許可がありません。 管理者に、Log Analytics 閲覧者 ロールを割り当てるように依頼します。 ログ データとワークスペースへのアクセスの管理を参照してください。
[グラフ] タブに [グラフなし] が表示される クエリは、グラフ化に適した時系列データや数値データを返しません。 クエリに、summarize句を含むbin(TimeGenerated, ...)演算子が含まれていることを確認します。
[フィルター] タブが空です 現在のクエリ結果のフィルターは読み込まれません。 最初にクエリを実行します。 次に、[ フィルター ] タブを選択し、更新または再読み込みオプションを選択してフィルター値を設定します。
DurationMs フィルターで > 150 ミリ秒では結果が表示されない ワークスペース データの応答時間が一様に少ない。 しきい値を下げる (たとえば> ミリ秒試す) か、応答時間が変化するデモ環境を使用します。
ピボット モード オプションが表示されない 「列」サイドバーが開いていません。 結果ウィンドウの右側にあるを選択してサイドバーを開き、>選択します。

次のステップ

Log Analytics の使用方法を学んだので、次はログ クエリの使用に関するチュートリアルを完了してください。