高度な検索演算子

最終更新日: 10 年 2023 月 XNUMX 日

高度な検索には、検索結果の絞り込みと変更に役立つ集計、処理、および書式設定演算子が含まれます。  

フィルタリング後に高度な検索操作をクエリに追加できます。 検索操作は一連のイベントに対して順番に機能し、XNUMXつの操作の結果が次の操作にパイプされます。 検索時にイベントを処理する操作(フィールドの解析)もあれば、結果を生成するためにイベントの部分的なセット(制限)または完全なセット(ソート)を必要とする操作もあります。 高度な検索の結果は、 「集計」タブ.

注: LMLogsEnterpriseおよびLMLogsUnlimitedのお客様は、高度な検索操作を利用できます。

演算子説明
as列名をエイリアス値として表示します。書式設定
平均指定されたソース フィールドの値の平均を計算します。 XNUMX つの特定の値を返します。アグリゲーション
カウントオプションで XNUMX つ以上のフィールドでグループ化された、検索によって返されたイベントの数をカウントします。アグリゲーション
制限集計操作の結果を固定数の結果に制限します。書式設定
マックス指定されたソース フィールドの一連の値の最大値を抽出します。 XNUMX つの特定の値を返します。アグリゲーション
指定されたソース フィールドの一連の値の最小値を抽出します。 XNUMX つの特定の値を返します。アグリゲーション
パーズ文字列パターンの一致に基づいて、指定されたソース フィールドの内容を新しいフィールドに抽出します。 新しいフィールドは、フィールド:値のペアとしてログ メタデータに追加されます。 ソース フィールドが指定されていない場合は、デフォルトでメッセージ フィールドになります。処理
連結ログ クエリ内で複数のフィールドまたは式を連結します。処理
sort集計操作の結果を一連のフィールドで昇順または降順で並べ替えます。書式設定
合計オプションで XNUMX つ以上のフィールドでグループ化された、指定されたフィールドの値の合計を計算します。アグリゲーション
コラボレー指定された条件によって操作の結果を制限します。 ログの処理または集計に使用できます。 処理で使用すると、ログの結果が制限されます。 集計で使用すると、集計結果が制限されます。処理 or アグリゲーション

注: 次の例は、すべてのログを検索するワイルドカード * のフィルタリング クエリで始まります。 このワイルドカードは、任意のフィルタリング クエリに置き換えることができます。 詳細については、次を参照してください。 フィルタリングクエリの作成.

集計演算子

平均

指定されたソース フィールドの値の平均を計算します。 

構文

* | | 平均( ) (なので) * | 平均( ) (なので) に(、 )

例1: 次の例では、0 桁のシーケンス パターンで 9 ~ XNUMX の範囲の数字を検索し、見つかった数字がある場合はその平均を計算します。 平均数が抽出され、「number」というフィールドとしてログ イベントに追加されます。

* | parse / ([0-9]{4}) / as number | num(number) as number2 | avg(number2)

カウント

フィルター クエリによって返されるイベントの数をカウントし、オプションで XNUMX つ以上のフィールドでイベントをグループ化します。 特定のフィールドを含むイベントをカウントすることもできます。

構文

指定された時間範囲内のイベントの数をカウントします。

* | カウント

オプションでXNUMXつ以上のフィールドによってグループ化されたイベントの数を数えます。

* | カウント(として) に(、 )。

イベントの数をカウントするのは、イベントに次の引数で指定されたフィールドが含まれている場合のみです。 count():

* | カウント( ) (なので) に(、 )。

例1: 一意のリソースごとにイベントの数を数え、最初の15件の結果を表示します。

* | count by _resource.name | sort by _count desc | limit 15

例2: あるカウント操作の結果を別のカウントに渡すことにより、フィールドの一意の値の数をカウントできます。 次の例では、指定された時間範囲内にログを送信する一意のリソース名の数をカウントします。

* | count by _resource.name | count

マックス

指定されたソース フィールドの一連の値の最大値を抽出します。 「by」がない場合は XNUMX つのフィールドを返します」が指定されています。 それ以外の場合は、指定された各フィールドの平均が返されます。

構文

* | | 最大( )

例:1 次の例では、0 桁のシーケンス パターンで 9 ~ XNUMX の範囲の数値を検索します。 見つかった場合、最大の数値が抽出され、「数値」と呼ばれるフィールドとしてログ イベントに追加されます。

* | parse / ([0-9]{4}) / as number | num(number) as number2 | max(number2)

指定されたソース フィールドの一連の値の最小値を抽出します。 「by」がない場合は XNUMX つのフィールドを返します」が指定されています。 それ以外の場合は、指定された各フィールドの平均が返されます。

構文

* | | 分( )

例:1 次の例では、0 桁のシーケンス パターンで 9 ~ XNUMX の範囲の数字を検索します。 見つかった場合は、最小の番号が抽出され、「number」というフィールドとしてログ イベントに追加されます。

* | parse / ([0-9]{4}) / as number | num(number) as number2 | min(number2)

合計

指定されたフィールドの値の合計を計算し、オプションで計算を XNUMX つ以上のフィールドでグループ化します。

構文

指定された時間範囲内のイベント数をカウントします。

* | 和( ) (なので) に(、 )。

例1: 一意のリソース名ごとにサイズフィールドの合計を計算し、結果を並べ替えます。

* | sum(_size) by _resource.name | sort by _sum desc

処理オペレーター

パーズ

文字列パターンの一致に基づいて、指定されたソースフィールドの内容を新しいフィールドに抽出します。 新しいフィールドはとして追加されます field:value ログメタデータとペアリングします。

構文

* | 解析するなので(、 )。
  • ソースフィールドの場合、 <SRC-FIELD>が指定されていない場合、メッセージ フィールドがデフォルトで使用されます。
  • <PATTERN> ワイルドカードまたは正規表現を含む文字列です。
  • 複数のフィールドを解析する場合、フィールド名の数はパターンと一致する必要があります。

例1: 次の例では、ワイルドカードを使用してメッセージ フィールドに「unix」を含む単語を検索し、「unix」の前の部分を抽出します。 見つかった場合、抽出された単語は「unix」というフィールドとしてログ イベントに追加されます。

* | parse "* unix" as unix

例2: 次の例では、正規表現検索を使用しています。 クエリは、メッセージ フィールドで「イメージのプルに失敗しました」というフレーズと、スペース、タブ、または改行以外のものを探します。 見つかった場合、イメージ名が解析され、「image」というフィールドとしてログ イベントに追加されます。

"Failed to pull image" | parse /Failed to pull image "(\S+)"/ as image

その後、クエリ image= を使用して特定の画像を検索できます。.

コラボレー

指定された条件によって演算の結果を制限します。 ログ処理または集計に使用できます。 処理に使用すると、ログの結果が制限されます。 集計で使用すると、集計結果が制限されます。 ソースフィールドが指定されていない場合、操作はデフォルトでメッセージフィールドに設定されます。

構文

から指定された値を抽出します。 ソース 分野。 次の例では、集計ではなくログを制限します。 集計を制限するには、集計関数を使用する必要があります。 

...どこ="値"

例1: 次の例では、イベント メッセージで「unix」という正確なフレーズを検索します。 見つかった場合、「unix」の部分が抽出され、「unix」というフィールドとしてログ イベントに追加されます。

* | parse /(unix)/ as unix | where unix="unix"

連結

ログ クエリ内で複数のフィールドまたは式を連結します。

構文

フィールド 1 とフィールド 2 を結合します

連結( 、 )

  • abc フィールドと xyz フィールドを連結します
    • concat(abc, xyz)
  • abc フィールドと xyz フィールドを連結し、間にハイフンを追加します
    • concat(abc, “-”, xyz)
  • 式の結果 (10) を abc フィールドの値に連結します
    • concat(abc, 5+5)

フォーマット演算子

as

列名をエイリアス値として表示します。

構文

... なので

例1: 一意のリソース名ごとにサイズフィールドの合計を計算し、結果を並べ替えます。

* | sum(_size) as log_volume by _resource.name | sort by log_volume desc

制限

結果セットを固定数の結果に制限します。 制限演算子は、集計操作の後でのみ使用できます。

構文

* | 制限

例1: 一意のリソースごとにイベントの数を数え、最初の15件の結果を表示します。

* | count by _resource.name | sort by _count desc | limit 15

sort

結果を一連のフィールドで昇順または降順で並べ替えます。 ソート演算子は、集計操作の後でのみ使用できます。 デフォルトでは、結果はタイムスタンプとIDの降順で並べ替えられます。

構文

* | 並び替え説明

例1: 集計演算子で並べ替える場合は、演算子に先頭の下線を付けてください。

* | count by _resource.name | sort by _count desc

例2: エイリアスで並べ替える場合、アンダースコアは必要ありません。

* | sum(_size) as log_volume by _resource.name | sort by log_volume desc

より多くの例

高度な検索演算子のさまざまな使用例。

例1:  上位 25 のリソース グループ名に限定して、ログ数とログ サイズの合計を含むリソース グループ名のリストをログ数で並べ替えて表示します。

* | count(_size), sum(_size) by _resource.group.name | sort by _count desc | limit 25

例2: メッセージからイメージ名を解析し、その名前を次の場所に保存します。 画像 フィールド(画像=イメージ名)。 次に、一意の画像名を表示し、次の基準で並べ替えます。 イメージ名 指定された時間範囲内で最も多く発生したもの。

“Failed to pull image” | parse /Failed to pull image "(\S+)"/ as image | count by image | sort by _count desc | limit 15

例3: 検索結果を 5 秒のバケットにグループ化し、各バケット内のヒット数をカウントするタイムスライス集計を表示します。 

* | bucket(span=5s) | count by _bucket | sort by _bucket desc

例4: 集計されたログ使用量をリソース名ごとに降順で表示します。

* | sum(_size) by _resource.name | sort by _sum desc

例5: 特定のリソースが生成しているログの数を示すレポートを生成します。 このクエリは、25 日に設定された時間範囲で上位 30 のリソースを表示します。 特定のリソースまたはグループが必要な場合は、次のように置き換えます。 *   _resource.name=hostname。 へ 結果を含むレポートを生成する、選択 集計 CSV のダウンロード のアイコンをクリックします。

* | count(_size), sum(_size) by _resource.name | num(_sum/1000000000) as GB | num(_sum/_count) as avg_size | sort by GB desc | limit 25
記事上で