InfraAcademy

InfraAcademy Blog

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

| #Microsoft Azure #KQL

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

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

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

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

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

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

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

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

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

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

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

手順は下記の2点です。

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

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

/blog/webapp-accesslog

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を使う人はぜひ使ってみてください。

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る