Log Analytics クエリを構成する
管理者は、Log Analytics ワークスペースの専用テーブルの格納データから Log Analytics クエリを構築します。 一般的な専用テーブルには、Event、Syslog、Heartbeat、Alert などがあります。 Kusto 照会言語 (KQL) クエリを構築する場合は、まず探しているデータが Azure Monitor Logs リポジトリのどのテーブルにあるかを判断します。
次の図は、KQL クエリが監視対象のサービスとリソースの専用テーブルのデータをどのように使うかを示しています。
KQL クエリの構造について知っておくべきこと
専用テーブルのデータと、KQL ログ クエリの構築方法について詳しく見てみましょう。
選んだデータ ソースとソリューションのそれぞれが、Log Analytics ワークスペースの専用テーブルにデータを格納します。
それぞれのデータ ソースとソリューションのドキュメントには、作成されたデータ型の名前と、各プロパティの説明が含まれています。
クエリは、ソース テーブルの後に一連のコマンド ("演算子" と呼ばれます) が続くという基本構造です。
1 のクエリに演算子のチェーンを複数含めてデータを絞り込み、高度な機能を実行することができます。
クエリ チェーンの各演算子はパイプ文字
|
で始めます。多くのクエリは、1 つのテーブルのデータのみが必要ですが、クエリにさまざまなオプションを使って複数のテーブルのデータを含めることもできます。
KQL ログ クエリの例
一般的な KQL ログ クエリ演算子と構文例を確認しましょう。
5 つのエントリを持つ StormEvent
テーブルのデータを検索するクエリを構築できます。
型 | event | severity | start | duration | region |
---|---|---|---|---|---|
Water |
Freezing rain |
1 |
6:00 AM 01-27-2023 |
3 hours |
1, 2 |
Wind |
High winds |
1 |
8:00 AM 01-27-2023 |
12 hours |
1, 2, 4, 5 |
Temperature |
Below freezing |
2 |
11:00 PM 01-26-2023 |
10 hours |
1, 2, 4, 5 |
Water |
Snow |
3 |
4:00 PM 01-26-2023 |
10 hours |
1, 2, 4, 5 |
Water |
Flood warning |
2 |
9:00 AM 01-26-2023 |
10 hours |
3 |
他の演算子と例については、以下を参照してください。Kusto クエリ言語を使用して監視データを分析する - トレーニング | Microsoft Learn。
項目数をカウントする
count
演算子を使って、入力レコード セット内のレコードの数を検出します。
次の例の場合、StormEvent
テーブルのレコード数が返されます。 このクエリの結果、StormEvent
テーブルには 5 つのエントリがあることがわかります。
StormEvent | count
クエリの結果:
count |
---|
5 |
項目の先頭の何個かを返す
top
演算子を使うと、入力レコード セットの最初の N 個のレコードを、指定した列で並べ替えて表示できます。 これらの列は、専用テーブルで定義されたデータのプロパティに対応しています。
次の例の場合、StormEvent
の先頭 3 個のデータ レコードが返されます。 結果テーブルには、荒天の event
の名前、重大度、予想される期間が表示されます。
StormEvent | top 3 by event severity duration
クエリの結果:
event | severity | duration |
---|---|---|
Freezing rain |
1 |
3 hours |
High winds |
1 |
12 hours |
Below freezing |
2 |
10 hours |
一致する項目を検索する
where
演算子を使って、テーブルを指定した述語値に一致する行のサブセットに絞り込みます。 述語値は、where=="find-this"
のように、テーブルの何を検索するかを示します。
次の例では、StormEvent
のデータ レコードをフィルター処理して、"snow" に一致するレコードのみを使います。
StormEvent | where event=="snow"
このクエリを実行すると、StormEvent
テーブルの 1 行に絞り込むことができます。
型 | event | severity | start | duration | region |
---|---|---|---|---|---|
Water |
Snow |
3 |
4:00 PM 01-26-2023 |
10 hours |
1, 2, 4, 5 |