Log Analytics のチュートリアル
Log Analytics は、Azure Monitor ログによって収集されたデータからログ クエリを編集して実行し、その結果を対話形式で分析する Azure portal のツールです。 Log Analytics クエリを使用すると、特定の条件に一致するレコードの取得、傾向の特定、パターンの分析を行って、データに関するさまざまな分析情報を入手できます。
このチュートリアルでは、Log Analytics インターフェイスについて紹介し、いくつかの基本的なクエリの使用法を説明し、結果を操作する方法を示します。 学習内容は次のとおりです。
- ログ データのスキーマを確認します。
- 単純なクエリを記述して実行し、クエリの時間範囲を変更します。
- クエリ結果のフィルター処理、並べ替え、グループ化を行います。
- クエリ結果のビジュアルの表示、変更、共有を行います。
- クエリと結果の読み込み、エクスポート、コピーを行います。
重要
このチュートリアルでは、Log Analytics 機能を使用して 1 つのクエリを作成し、別のサンプル クエリを使用します。 クエリの構文を学習し、クエリ自体の直接編集を開始する準備ができたら、Kusto クエリ言語のチュートリアルをお読みください。 そのチュートリアルでは、Log Analytics 内で編集して実行できるサンプル クエリについて説明しています。 このチュートリアルで学習する機能のいくつかが使用されています。
前提条件
このチュートリアルでは、サンプル クエリをサポートしているサンプル データが豊富に含まれている Log Analytics のデモ環境を使用します。 ご自分の Azure サブスクリプションを使用することもできますが、同じテーブルにデータが含まれていない場合があります。
Log Analytics を開く
Log Analytics のデモ環境を開くか、ご自分のサブスクリプションの Azure Monitor メニューから [ログ] を選択します。 この手順により、初期のスコープが Log Analytics ワークスペースに設定されるため、クエリではそのワークスペース内のすべてのデータから選択されます。 Azure リソースのメニューから [ログ] を選択した場合、スコープはそのリソースのレコードのみに設定されます。 スコープの詳細については、ログ クエリのスコープに関するページを参照してください。
スコープは、画面の左上隅で確認できます。 独自の環境を使用している場合は、別のスコープを選択するオプションが表示されます。 このオプションはデモ環境では使用できません。
テーブル情報の表示
画面の左側には [テーブル] タブがあり、現在のスコープで使用できるテーブルを調べることができます。 これらのテーブルは、既定でソリューション別にグループ化されていますが、グループを変更したり、フィルター処理したりできます。
ログ管理ソリューションを展開し、AppRequests テーブルを見つけます。 テーブルを展開してそのスキーマを表示するか、またはその名前にマウス ポインターを合わせてそれに関する追加情報を表示することができます。
各テーブルとその列を示すテーブル参照にアクセスするには、 [役に立つリンク] の下のリンクを選択します。 テーブル内にある最近の数件のレコードを簡単に確認するには、 [データのプレビュー] を選択します。 このプレビューは、クエリを実行する前に、使用するデータが想定しているものであることを確認するのに役立ちます。
クエリを記述する
AppRequests テーブルを使用してクエリを記述してみましょう。 その名前をダブルクリックして、クエリ ウィンドウに追加します。 ウィンドウに直接入力することもできます。 IntelliSense を入手することもできます。これは、現在のスコープ内のテーブルの名前と Kusto クエリ言語 (KQL) コマンドを完成させるのに役立ちます。
これは、記述できる最も単純なクエリです。 テーブル内にあるすべてのレコードを返します。 これを実行するには、[実行] ボタンを選択するか、クエリ テキスト内の任意の場所にカーソルを置いて Shift + Enter キーを押します。
ご覧のように、結果が表示されます。 クエリによって返されたレコードの数が右下隅に表示されます。
時間の範囲
すべてのクエリで、設定された時間範囲以内に生成されたレコードが返されます。 既定では、クエリからは過去 24 時間で生成されたレコードが返されます。
クエリで where 演算子を使用すると、別の時間範囲を設定できます。 画面の上部にある [時間範囲] ドロップダウン リストを使用することもできます。
[時間範囲] ドロップダウンから [過去 12 時間] を選択し、クエリの時間範囲を変更しましょう。 [実行] を選択すると、結果が返されます。
注意
[時間範囲] ドロップダウンを使用して時間範囲を変更しても、クエリ エディターのクエリは変更されません。
複数のクエリ条件
別のフィルター条件を追加して、結果をさらに減らしてみましょう。 クエリには、必要なレコードのセットを正確に対象とするために、任意の数のフィルターを含めることができます。 [名前] の下の [Get Home/Index] を選択し、[適用して実行] を選択します。
分析結果
Log Analytics は、クエリの記述と実行を支援するだけでなく、結果を操作するための機能も提供します。 まず、レコードを展開すると、すべての列の値が表示されます。
任意の列で結果を並べ替えるには、その列の名前を選択します。 フィルターの条件を指定するには、横にあるフィルター アイコンを選択します。 このアクションは、クエリを再度実行するとこのフィルターがクリアされる点を除いて、クエリ自体にフィルター条件を追加するのと似ています。 対話型分析の一部としてレコードのセットをすばやく分析する場合は、この方法を使用します。
たとえば、DurationMs 列にフィルターを設定して、150 ミリ秒を超えるレコードに限定します。
クエリ結果の検索
結果ペインの右上にある検索ボックスを使用して、クエリ結果を検索してみましょう。
クエリ結果の検索ボックスに「Chicago」と入力します。矢印を選択すると、検索結果内のこの文字列のすべてのインスタンスを確認できます。
データの再構成と集計
データをより適切に視覚化するために、ニーズに基づいてクエリ結果のデータを再構成して集計することができます。
結果ペインの右側にある[列] を選択して、[列] サイドバーを開きます。
サイドバーには、使用可能なすべての列の一覧が表示されます。 [Url] 列を [行グループ] セクションにドラッグします。 これで、結果がその列によって整理され、各グループを折りたたんで分析しやすくすることができます。 このアクションはクエリにフィルター条件を追加するのと似ていますが、サーバーからデータを再フェッチする代わりに、元のクエリから返されたデータを処理します。 クエリを再実行すると、Log Analytics は元のクエリに基づいてデータを取得します。 対話型分析の一部としてレコードのセットをすばやく分析する場合は、この方法を使用します。
ピボット テーブルを作成する
ページのパフォーマンスを分析するには、ピボット テーブルを作成します。
[列] サイドバーで、[ピボット モード] を選択します。
[Url] と [DurationMs] を選択して、各 URL へのすべての呼び出しの合計時間を表示します。
各 URL の最大呼び出し時間を表示するには、[sum(DurationMs)]>[max] を選択します。
次に、結果ペインで [max(DurationMs)] 列を選択して、最長の最大呼び出し時間で結果を並び替えます。
グラフの操作
グラフで表示できる数値データを使用するクエリを見てみましょう。 クエリを作成する代わりに、クエリの例を選択します。
左側のペインで、 [クエリ] を選択します。 このペインには、クエリ ウィンドウに追加できるクエリの例が含まれています。 独自のワークスペースを使用している場合は、複数のカテゴリにさまざまなクエリが表示されます。 デモ環境を使用している場合は、1 つの [Log Analytics ワークスペース] カテゴリがのみが表示されます。 それを展開して、カテゴリ内のクエリを表示します。
[アプリケーション] カテゴリの [Function Error rate](関数エラー率) というクエリを選択します。 この手順により、そのクエリがクエリ ウィンドウに追加されます。 新しいクエリは他と空白行で区切られることに注意してください。 KQL のクエリは空白行を検出すると終了します。そのため、これらは別個のクエリとして認識されます。
カーソルが配置されているのが現在のクエリです。 ご覧のように、先頭のクエリが強調表示され、それが現在のクエリであることを示しています。 新しいクエリ内の任意の場所をクリックして選択し、 [実行] ボタンを選択して実行します。
結果をグラフで表示するには、結果ペインで [グラフ] を選択します。 別の種類への変更など、グラフを操作するためのさまざまなオプションがあることに注意してください。
次のステップ
Log Analytics の使用方法を学んだので、次はログ クエリの使用に関するチュートリアルを完了してください。