Microsoft Azure

【Azure】KQLの使い方は?LogAnalyticsでログを表示する

こんにちは、インフラエンジニアのryuです。

今回は、KQL(キーワードクエリ言語)の使い方を説明します。使い方は、コマンドを入力するだけです。コマンドを入力し、見たいログを表示させましょう。KQLを使うとログの解析が捗ります。

サーバー構築を実践で身につけるInfraAcademy

※本ページには、プロモーション・アフィリエイトリンクが含まれています

KQLの使い方は?LogAnalyticsでログを表示する

KQLの使い方がよくわからない・・・

KQLはSQLに似た文法で使えます!

今回の記事では、KQLの使い方について解説します。

KQLとは、キーワードクエリ言語の略で、Azureのlog analyticsでログを検索するときに使います。

今回はKQLを使って、LogAnalyticsでログを表示してみようと思います!

準備:LogAnalyticsにログを出力させる

まず、KQLの使い方の前にログをLogAnalyticsに収集する設定を行います。できている方は、先に進んでください。

今回はWebAppのログを表示したいと思います。

手順は下記の2点です。

  1. LogAnalyticsの作成
  2. Webappsの診断設定よりLogをLogAnalyticsに出力させる

こちらの記事で具体的な手順を解説しているので参考にしてください。

WebApps以外の他のサービスのログを収集する場合も、診断設定より、「LogAnalyticsへ送信」にチェックを入れるとLogAnalyticsにログが収集できます。

KQLを使ってみる

では、KQLを使いながら説明していきます。まずは簡単なコマンドでログを表示させてみましょう!

まず、「LogAnalytics」→「ログ」をクリックすると、KQLを入力できる画面が表示されます。

KQLの使い方解説

クエリを入力する部分に以下のクエリを入力してください。

search "*"

コマンドを入力すると、LogAnalyticsに収集されたログが全て表示されます。ここで注意点が一つあり、全て表示と言っても、過去24時間分しか表示されていません。

下記の「時間の範囲」をクリックして、いつの期間のログを収集したいか、編集してください。

KQLコマンド実行

「実行」を押すと、画面下側にログが表示されます。

ログの表示

まずは、簡単なKQLを使ってログを出力することができました。KQLはSQLのように、様々な条件を入力することで、特定のログを出力します。次はその方法を解説します。

KQLで良く使うコマンドを紹介

先ほどは、「search “*”」を使うことで、ログを全て表示できることを紹介しました。

ここからは、KQLに様々な条件を入力して、見たいログだけを出力させるようにしましょう!

whereを使って、条件検索

whereはSQLにもあるので、馴染みのある方が多いと思います。whereとは、 テーブルデータの検索条件を指定するためのものです。

では、使ってみましょう。まず、ログの左側の「v」を押してください。そうするとログの詳細情報が表示されます。

KQLでログの詳細を表示する

そして、検索したい項目の左側「・・・」をクリックします。そうすると、「・・・を含める」という言葉が表示されるので、そこをクリックします。

whereコマンドを使う

そうすると、クエリを入力する部分が以下のようになります。

search "*"
| where CsMethod == "GET" 
//where 条件式

これで、GETメソッドのアクセスのみを表示させることができます。他にも、送信元IPで検索したり、エラーのみを検索したりすることができます。

ちなみに、条件式で使える演算子は以下のものを指定できます。

演算子演算子意味
==等しい
has含む
<=以下
>=以上

distinctを使って、カラムの中身を表示

次は、distinctを使って、カラムの中身を表示する方法を解説します。

以下のように、KQLを入力します。

search "*"
| distinct  CIp

CIpはクライアントのIPつまり、アクセスしてきたPCのIPアドレスのことです。これで、CIpの値を一覧で表示できます。

distinctコマンドを実行

送信元のIPが分かることで、どのPCからアクセスされたか分かります。

その他の使い方については、こちらのドキュメントを参考にしてください。

https://docs.microsoft.com/ja-jp/azure/data-explorer/kusto/concepts/

KQLの勉強用サイト

MicrosoftはKQLの学習用サイトを無料で提供しています。英語ですが、興味のある方は、ぜひやってみてください。

https://azure.microsoft.com/ja-jp/updates/free-query-language-course-la-ai/

また、こちらのQiitaの記事も参考になります。

https://qiita.com/ykataoka/items/689bdec7c467edddc2fd

今回は、KQL(キーワードクエリ言語)の使い方を説明しました。KQLを使いこなせるようになると、ログの解析が捗ります。Azureを使う人はぜひ使ってみてください。

ABOUT ME
ryu@InfraAcademyというインフラ学習サービス運営
大手企業→上場ベンチャー→スタートアップでエンジニアをしていました。 インフラエンジニア歴10年以上。 Linuxやネットワークの学習ができるサービスInfraAcademyを運営中。
RELATED POST