問合せ検索

Oracle Log Analyticsでは、読取りと操作を容易に行えるカスタマイズ可能な単一の統合画面を使用して、エンタープライズ・データベース全体にわたる膨大な量のログ・データをフィルタ処理して分析を行うことができます。組込みの検索機能を使用すると、使用可能なすべてのログ・データがフィルタされ、特定のログ・エントリが返されます。

Oracle Log Analytics Searchでは、特定のログ・エントリにドリルダウンできるため、集中的な分析や、エンタープライズ全体のモニタリングが可能になります。Oracle Log Analytics問合せ言語を使用して、検索問合せを構成し、トラブルシューティングしている問題に固有のログ・エントリを取得します。

ログを分析するための問合せ言語により、検索結果に対して実行するアクションを指定できます。コマンドには、検索コマンドまたは 統計コマンドがあります。検索コマンドは、使用可能なログ・エントリをさらにフィルタするコマンドです。統計コマンドは、検索結果に対して統計演算を実行します。コマンドの完全なリスト、その構文、およびそれらを使用するための例は、問合せ言語コマンド・リファレンスを参照してください。

Oracle Log Analytics問合せ言語では次の処理を行うことができます。

  • 使用可能なすべてのログ・データのフィルタおよび探索

  • 根本原因分析の実行

  • 選択したエンティティに対する統計分析の実行

  • レポートの生成

  • 後で使用するための検索問合せの保存

  • ダッシュボードを構築するための保存済検索の取得

検索問合せを構成するには、要素を「フィールド」パネルから「ビジュアル化」列の適切なセクションにドラッグ・アンド・ドロップするか、「検索」フィールドに問合せを直接入力します。ユーザー・インタフェースを使用して問合せを策定する方法の詳細は、Log Analytics UIを使用した問合せの策定に関する項を参照してください。

regexコマンドを使用したパフォーマンスの高い問合せの記述については、RE2J構文(Java Implementation of RE2)を参照してください。

問合せヘルプ・ウィザードの使用

Log Analyticsでは、問合せの記述を迅速に学習するためのアクティブなヘルプが提供されるようになり、高度な分析のための一連のサンプル問合せも提供されるようになりました。

ログ・エクスプローラの問合せバーの隣にあるヘルプ・アイコン問合せヘルプ・アイコンをクリックして、問合せヘルプ・ウィザードを開きます。数分以内に、作成できる問合せの形式および構文を理解できます。非常に基本的な検索から高度な分析まで、サンプル問合せを実行し、問合せ参照について理解します。ウィザードには、検索を効率的にするためのヒントとショートカットが用意されています。一般的なユースケースのためにいくつかの一般的なコマンドを実行した結果を表示することもできます。

キーワードおよびフレーズを使用したログの検索

コマンドを使用して、ログ・データを取得したり、そのデータに対して操作を実行したりできます。問合せの最初の(暗黙的な)コマンドは、searchコマンドです。検索は、パイプ文字(|)で区切られた一連のコマンドです。パイプ文字に続く最初の空白文字列で、使用されるコマンドが識別されます。パイプ文字は、前のコマンドの結果が次のコマンドの入力として使用されることを示します。

たとえば、すべてのデータベース・エラー・メッセージを検索するには、Oracle Log Analyticsの「検索」バーに次の論理式を入力します:

Severity = 'error' AND 'Entity Type' = 'Database Instance'

単語を引用符で囲み、フレーズとして問合せ文字列に含めることで(‘Database Instance’など)、フレーズ‘Database Instance’を含むログのみが返されます。また、キーワード検索で、部分文字列が個別のディレクティブと解釈される可能性がある場合は、引用符で囲んで特定する必要があります。たとえば、文字列andを検索するには、システムがブールの意味で使用しないように、一重引用符内に文字列を入力(‘and’)する必要があります。

問合せ言語を使用してログを検索する他の例および詳細は、検索問合せの記述を参照してください。

最近の検索のリスト

Oracle Log Analyticsでは、最近使用した検索を選択して実行できます。「検索」フィールドをクリックするか、「検索」フィールドにテキストを入力すると、Oracle Log Analyticsに最近使用された検索のリストが表示されます。これにより、最近使用した検索コマンドに迅速にアクセスできます。リストされているコマンドのいずれかを選択して「実行」をクリックすると、選択した検索コマンドを実行できます。

ノート

最近使用したリストは、セッション単位ベースで使用できます。そのため、Oracle Log Analyticsをサインアウトしてから再びサインインすると、前のセッションのリストが表示されません。最近の検索の新しいリストがそのセッション用に作成されます。

自動提案機能の使用

「検索」フィールドに問合せを入力すると、Oracle Log Analyticsの自動提案機能により、問合せで使用できる用語が自動的に提案されます。Oracle Log Analyticsは、「検索」フィールドに入力したテキストに基づいて、提案のリストを表示します。たとえば、フィールドや検索アクションの名前を入力した場合、自動提案機能によって、そのフィールドまたは使用可能なアクションのリストにのみ指定可能な値が表示されます。

検索問合せの記述

エンティティ、キーワード、フレーズ、ワイルドカード、比較演算子、ブール式、ファンクションおよび時間を指定して、Oracle Log Analyticsの検索問合せを作成できます。

Oracle Log Analyticsの検索機能を使用するには、検索問合せを作成して、それを「検索」フィールドに入力します。

Log Analytics UIの使用

Oracle Log Analyticsユーザー・インタフェースを使用して、検索問合せを構成できます。

UIの次の要素を使用して、検索問合せを構成できます:

  • 検索バー: 検索問合せがここに表示されます。このフィールドのテキストを直接編集して、検索結果を絞り込むことができます。

    検索バーは、問合せに追加された行数に基づいて拡大または縮小します。最大で21行、最小で1行を設定できます。使用可能なカスタム・ショートカットの一部は次のとおりです:

    • [Ctrl] + [i]: エディタに存在するテキストのすべての行をインデントします。大文字の[I]ではデバッガが開くことに注意してください。
    • [Ctrl] + [Enter]: エディタに表示されている問合せを実行します
    • [Ctrl] + [Space]: カーソルの位置に基づいてオプションのオートコンプリート・リストを表示します
    • [Ctrl] + [Z]: 最後の編集を元に戻します
    • [Ctrl] + [Y]: 最後の編集を再実行します
    • [Ctrl] + [D]: 現在の行を削除します

    ノート: 指定がないかぎり[SHIFT]キーは使用しないでください

    開始カッコまたは終了カッコにカーソルを置くと、一致する要素が強調表示されます。強調表示できる要素は、( )および[ ]です。

    検索バーでは、色付きとグレースケールの2つの異なるテーマがサポートされます。ヘルプ・ポップアップのオプションを変更して、テーマを動的に変更できます。

  • フィールド: 「フィールド」パネルは次のセクションに分かれています:

    • 「固定」の属性では、次に基づいてログ・データをフィルタできます:

      • ログ・ソース(データベース・ログやOracle WebLogic Serverログなど)。

      • ログ・エンティティ(実際のログ・ファイル名)。

      • ラベル(ログ・エントリが特定の定義済条件と一致するときにログ・エントリに追加されるタグ)。

      • オンデマンドでアップロードされたログ・データのアップロード名。

      デフォルトでは、エンティティおよび収集の詳細は、フィルタ用として「フィールド」パネルの「固定」バケットで使用できます。使用状況に応じて、「固定」バケットに追加フィールドを固定できます。固定されると、フィールドは「固定」バケットに移動されます。任意のフィールドの固定を解除し、「固定」バケットから削除して、「関心」または「その他」バケットに戻すことができます。

    • 検索および問合せに基づいて、Oracle Log Analyticsでは、迅速に参照できるようにフィールドが「関心」バケットに自動的に追加されます。「関心」バケットの使用可能なフィールドを固定できます。固定されたフィールドは、「固定」バケットに移動されます。

    • 「その他」バケットの任意のフィールドを固定して、「固定」バケットに移動できます。検索または問合せで「その他」バケットのフィールドを使用すると、それは「関心」バケットに移動されます。

      選択したオプションは、検索バーの問合せに自動的に追加されます。

  • ビジュアル化: このペインでは、検索結果の表示方法を選択できます。「グループ化基準」フィールドで、結果をグループ化するためのメトリックを決定できます。

  • 保存: このボタンを使用して、後で実行するために、現在「検索」フィールドにある検索問合せを保存します。

  • 開く: このボタンを使用して、前に保存した検索問合せを表示します。これらの問合せを実行して最新の結果を取得したり、これらの問合せを使用してダッシュボードを作成したりできます。

  • 新規: このボタンを使用して、新しい検索問合せを開始します。

  • エクスポート: このボタンを使用して、現在の検索問合せの結果をComma Separated Values(CSV)またはJavaScript Object Notation(JSON)形式のファイルでエクスポートします。

  • 実行: このボタンを使用して、現在「検索」フィールドにある問合せを実行します。

  • 時間セレクタ: 時間セレクタを使用して、期間を指定します。

  • ビジュアライゼーション・ペイン: 検索問合せの結果がこのペインに表示されます。「検索」フィールドの問合せが実行されると、このペインにフィルタされた情報がロードされます。ビジュアライゼーション・ペインのチャートの任意の領域をクリックすると、検索問合せにドリルダウンしてそれを更新できます。

キーワード、フレーズおよびワイルドカードの使用

文字列問合せには、キーワードとフレーズを含めることができます。キーワードは単一の単語(databaseなど)で、フレーズは一重(‘ ‘)または二重(“ “)引用符で囲まれた複数の単語(‘database connection’など)を示しています。キーワードまたはフレーズを問合せに指定すると、問合せの実行後、指定したキーワードまたはフレーズを含むすべてのログ・エントリが返されます。

Oracle Log Analytics検索言語では特殊なパターン・マッピングもサポートされます。つまり、アスタリスク(*)、疑問符(?)、パーセント記号(%)などのワイルドカード文字を使用してキーワードを指定できます。

次の表は、サポートされるワイルドカード文字のリストとそれぞれの簡単な説明を示しています。

ワイルドカード文字 説明

?

この文字を使用すると、可能性のあるキーワードに対して正確に1個の文字が一致します。たとえば、host?と入力した場合、キーワードhost1は一致とみなされますが、host.foo.barは一致とみなされません。

*または%

これらの文字のいずれかを使用すると、可能性のあるキーワードに対して0個以上の文字が一致します。たとえば、host*またはhost%と入力した場合、host1およびhost.foo.barはキーワードの一致とみなされます。同様に、%host%と入力した場合、ahostbおよびmyhostは指定したキーワードの一致とみなされます。

複数のキーワードを指定できます。たとえば、databaseconnectionです。databaseconnectionという単語(連続している必要はない)を含むログが返されます。ただし、これらの単語は、連続して出現している必要はありません。ただし、単語を引用符で囲み、フレーズとして問合せ文字列に含めることで(‘database connection’など)、‘database connection’というフレーズを含むログのみが返されます。複数のキーワードの使用方法は、ブール式の使用を参照してください。

キーワードまたはフレーズを指定する場合、次に注意してください:

  • キーワードおよびフレーズ文字列では、大/小文字が区別されません。

  • キーワードを引用符で囲まない場合は、英数字、アンダースコア(_)およびワイルドカード文字(*%および?)のみを含める必要があります。

  • キーワード検索で、部分文字列が個別のディレクティブと解釈される可能性がある場合は、引用符で囲んで特定する必要があります。たとえば、文字列andを検索するには、システムがブールの意味で使用しないように、一重引用符内にそれを入力(‘and’)する必要があります。

ノート

messageフィールドでワイルドカードを使用するには、LIKEまたはLIKE INも使用する必要があります。次に、messageでワイルドカードを使用する例を示します。
ORA-* AND message LIKE 'connection* error*'
ORA-* AND message LIKE IN ('tablesp*','connection* error*')

比較演算子の使用

比較演算子は、フィールドとその値の関係を立証するために指定する条件です。値がないフィールドは、nullとみなされます。

次の表は、サポートされる比較演算子のリストとそれぞれの簡単な説明を示しています。

比較演算子 説明
< 問合せでこの演算子を使用すると、対応するフィールドの値が指定した値より小さいすべてのログ・エントリが返されます。
<= 問合せでこの演算子を使用すると、対応するフィールドの値が指定した値以下のすべてのログ・エントリが返されます。
> 問合せでこの演算子を使用すると、対応するフィールドの値が指定した値より大きいすべてのログ・エントリが返されます。
>= 問合せでこの演算子を使用すると、対応するフィールドの値が指定した値以上のすべてのログ・エントリが返されます。
= 問合せでこの演算子を指定すると、対応するフィールドの値が指定した値に等しいすべてのログ・エントリが返されます。
!= 問合せでこの演算子を指定すると、対応するフィールドの値が指定した値に等しくないすべてのログ・エントリが返されます。

これらの演算子を使用して、特定の値を持つフィールドを含むログを検索します。たとえば、Severity=’ERROR’と指定すると、使用可能なログのうち、フィールドSeverityの値がERRORであるものが検索されます。同様に、Severity!=NULLでは、Severityフィールドの値がnullではない(つまり、重大度が指定されている)すべてのログが返されます。

ノート

比較演算子の右側の値が数値またはNULL以外の場合、引用符で囲む必要があります。

ブール式の使用

Oracle Log Analytics Search機能には、標準の規則としてLIKEおよびREGEXの機能が含まれます。ブール式は、trueまたはfalseの値を持つことができます。

次の表は、サポートされるブール式のリストとそれぞれの簡単な説明を示しています。

ブール式 説明
AND この式を使用して、指定したパラメータの両方を含むログのみを表示します。
NOT INまたはIN この式を使用して、使用可能なデータの指定したサブセットに含まれるデータを検索します。たとえば、‘Entity Type’ IN (‘Database Instance’,‘Automatic Storage Management’,’Listener’,’Cluster’)では、最初に‘Database Instance’‘Automatic Storage’ListenerまたはClusterを含むログのみが考慮され、次に‘Entity Type’を含むログが識別されます。ただし、NOT INを使用する場合、指定したエントリが除外され、指定したキーワードまたはフレーズを含むログ・エントリが返されます。たとえば、‘Entity Type’ NOT IN (‘Database Instance’,’Automatic Storage Management’,’Listener’,’Cluster’)では、最初に‘Database Instance’‘Automatic Storage Management’ListenerおよびClusterを含むログ・エントリが除外され、次に‘Target Type’の値が指定した値のいずれでもないログ・エントリが返されます。

予約語のNULLは、このブール演算子でサポートされます。

NOT LIKEまたはLIKE この式を使用して、指定した文字パターンと一致するデータ、または一致しないデータを検索します。文字パターンは、1個以上のワイルドカード文字を使用できる文字列です。
NOT LIKE INまたはLIKE IN [NOT] INと同様に、この式では、複数のLIKE句をまとめて表す短縮表記を使用できます。
OR これを使用して、指定したパラメータの一方を含むログを表示します。

Oracle Log Analytics Search言語では、ブール式のネストを他のブール式の中にサポートします。たとえば、次の問合せについて考えます:

fatal ('order' OR host LIKE '*.oracle.com')

この問合せを実行すると、fatalを含み、キーワードorderを含んでいるか、名前が.oracle.comで終わっているホストからのすべてのログが返されます。

Log Analytics UIを使用した問合せの作成

Oracle Log Analyticsユーザー・インタフェースを使用して、検索問合せを構成できます。

デフォルトで、* | stats count by ‘log source’という問合せが「検索」フィールドに指定されます。

特定のエンティティのデータを表示するには、次のステップを完了します:

  1. ナビゲーション・メニューを開き、「監視および管理」をクリックします。「Log Analytics」で、「ログ・エクスプローラ」をクリックします。

  2. 「フィールド」パネルの見出しの「エンティティ」で、エンティティの表示方法に応じて「エンティティ」または「エンティティ・タイプ」を選択します。これにより、選択した内容に基づいて登録済データベースがグループ化されます。たとえば、「エンティティ・タイプ」を選択すると、選択したエンティティがそのタイプに基づいてグループ化されます。

  3. データを表示する「エンティティ」または「エンティティ・タイプ」を選択します。

  4. 「送信」をクリックします。

    選択したエンティティの横に「クリア」ボタンが表示され、データがビジュアライゼーション・ペインに表示されます。

特定のフィールドのデータを表示するには、次のステップを完了します:

  1. フィールドのタイプを「フィールド」パネルの「固定」属性、「関心」バケットまたは「その他」バケットの下で選択します。

  2. データを表示する「ラベル」「ログ・エンティティ」「ログ・ソース」「所有者」または「アップロード名」を選択します。複数の「ラベル」「ログ・エンティティ」「ログ・ソース」「所有者」または「アップロード名」を選択できます。

  3. 「送信」をクリックします。

    フィールドのデータがビジュアライゼーション・ペインにロードされます。

問合せでの時間範囲の指定

通常、ログ・エクスプローラで選択した時間範囲は問合せ文字列に含まれません。searchコマンドで「絶対時間」または「相対時間」修飾子を使用して、問合せの時間範囲を指定できます。

ノート

保存検索の場合、保存検索の作成時にログ・エクスプローラで選択された時間範囲は、保存検索コンポーネントの1つとして格納されます。保存検索を使用すると、ログ・エクスプローラの時間範囲セレクタを使用して時間を編集できます。

一方、問合せで時間範囲が指定されている場合、ログ・エクスプローラで選択した時間範囲は無視されます。問合せに含まれる時間範囲は、ログ分析に使用されます。この問合せを保存済検索として保存すると、問合せで指定された時間範囲は、ログ・エクスプローラで指定された時間ではなく、保存済検索タスクに対して考慮されます。

問合せで時間範囲を指定できる例を次に示します。

  • 過去24時間に検出されたすべてのORA-600エラー・ログを返します。

    Message like 'ORA-600%' and time > dateRelative(24h)
  • 過去90日間のホスト・ターゲットmyHostのログ数を返します:

    'Host Name (Server)' = myHost and Time > dateRelative(90day) | stats count as 'Num Host Logs'

searchコマンドで使用できる時間ベースの関数

次の時間ベースの関数は、searchコマンドでのみ使用できます。

  • toDate: これは絶対時間です(たとえば、2014-07-15T16:24:51.000Zまたは'2014-07-12', 'yyyy-MM-dd')。

    toDate構文: toDate(<time>)

  • dateRelative: 12h2d, dayなど、現在の日付を基準にした日付を作成します。

    dateRelative構文: dateRelative(<timespan>, <rounding interval>)。端数処理はUTC時間に基づきます。

  • dateadd: 指定された日付に時間単位を追加します(たとえば、Day, 2toDate('2024-05-12', 'yyyy-MM-dd')に追加します)。

    dateadd構文: dateadd(<date>, <unit>, <amount>)

  • dateset: 日付を時間単位で変更します。たとえば、toDate('2015-08-12', 'yyyy-MM-dd')year, 2014, month, 7で変更されます。

    dateset構文: dateset(<date>, <unit>, <value> [, <unit>,<value>])

  • now: 現在の日付と時間。

    now構文: now()

時間基準は、比較演算子=!=<<=>>=および論理演算子andを使用して表すことができます。

サポートされる時間単位

  • All Time

    同等のJSONの例: "timeFilter": { "type" : "relative", "timeUnit" : "allTime" }

  • : s、秒、秒、秒

  • : m、分、分、分

    例: Last 60 minutes

    同等のJSONの例: "timeFilter": { "type" : "relative", "duration" : "60", "timeUnit" : "minutes" }

  • 時間: h、hr、hrs、hour、hours

  • : d、日、日

  • : 週、週、週

  • : 月、月

  • : y、yr、年、年

JSON形式の絶対日付の例は、"timeFilter": { "type" : "absolute", "startTime" : "2015-04-26T08:00:00.000Z", "endTime" : "2015-04-27T08:00:00.000Z" }です。

問合せの時間範囲の例

次の問合せでは、ISO標準書式で指定された2つの絶対日付の間のすべてのものを検索します。

time between '2014-07-15T16:24:51.000Z' and '2014-07-17T18:14:16.000Z'

「ISO 8601: DATE AND TIME FORMAT」を参照してください。

次の問合せでは、ISO標準書式ではない2つの絶対日付に基づいてすべてを検索します。

time between toDate('2014-07-12', 'yyyy-MM-dd') and toDate('2014-07-15', 'yyyy-MM-dd')

次の問合せでは、最後の12時間(between式の左側の*新しいDate(0)を表し、右側の*現在)以外のすべてのものを検索します。

time between * AND dateRelative(12h)

次の問合せは、過去12時間のすべてを検索します。

time > dateRelative(12h)

次の問合せでは、過去30分間の端数処理がすべて検索され、1時間の先頭から開始されます。

time > dateRelative(30min, hour)

次のクエリーは、2014年7月12日より前のレコードを検索します。

time < dateAdd(toDate('2014-07-22', 'yyyy-MM-dd'), day, -10)

次のクエリーは、2010年6月10日より後のレコードを検索します。

time > dateSet(toDate('2015-08-10', 'yyyy-MM-dd'), year, 2010, month, 6)

次のクエリーでは、最終ログイン日が現在の時刻より前のレコードを検索します。

'Upload Name' = idcs_dev8_dormant_upload and 'Last Login Date' < now()

次の問合せでは、過去24時間のデータが検索されます。

time between daterelative(1d) and now()

次の問合せでは、絶対タイムスタンプと現在を検索しています。

time between '2015-06-15T00:00:00.000Z' and now()

副問合せの記述

副問合せによって、子問合せは、親問合せに動的フィルタを提供できます。副問合せは最初に評価され、その結果が親問合せで使用されます。

  • 副問合せを相互にネストしたり、同じレベルで複数の副問合せを持つ特定の問合せをネストしたりできます。
  • デフォルトでは、副問合せはグローバル時間範囲を継承しますが、必要に応じてtime between T1 and T2構文を使用してオーバーライドできます。
  • 副問合せは、最初の2000個の一致のみが親への入力として返されるように制限されています。その他の結果は切り捨てられます。
  • 完了までの最大タイムアウトは30秒です。
  • 副問合せから返されるすべてのフィールドは、親問合せのフィールドと名前が一致している必要があります。それ以外の場合はエラーになります。
  • 副問合せは、検索コマンド内でのみ使用できます。
  • 副問合せ内では、clusterclustersplitclustercomparefieldsummarydeleteclassifyhighlightおよびhighlightrowsを除くすべてのコマンドを使用できます。

:

  • 時系列でIPブラックリストからのトラフィックをチャート化:
    [searchlookup table=ip_blacklist | distinct ip | rename ip as 'host address'] | timestats count
  • E-Commerceサイトの上位ユーザーに最も購入された製品をリスト:
    'Log Source'='WLS Access Logs' status=200 action=purchase ['Log Source'='WLS Access Logs' status=200 action=purchase | stats count by 'Host (Client Address)' | top limit=1 'Host(Client Address)' | fields -*, 'Host (Client Address)'] | lookup table=products select 'product name' using productid | stats count, distinctcount(productId), unique('product name') by 'Host (Client Address)'
  • 合計が最大の上位4つのOSプロセスIDを検索:
    [ *|stats sum('OS Process ID') as OSprocessidSum by 'OS Process ID' | top 4 OSprocessidSum | fields -OSprocessidSum ] | stats count by 'OS Process ID', 'Log Source', 'Host Name(Server)'
  • 最も致命的な重大度のログを持つターゲットからのすべてのログを表示:
    * and [ Severity = fatal | stats count by Target | top limit = 1 Count | fields -Count]

検索機能

検索クエリーでは、次の関数を使用できます。

ファンクション 説明

md5(string)

md5エンコード値の検索

md5("hash my input")

sha1(string)

sha1エンコード値の検索

sha1("hash my input")

sha256(string)

sha256エンコード値の検索

sha256("hash my input")

sha512(string)

sha512エンコード値の検索

sha512("hash my input")

encode64(string)

Base64エンコード値の検索

encode64("my input")

decode64(string)

デコードされたBase64値の検索

decode64("encoded input")

anyOf(condition1, condition2, ..., conditionN)

ノート: これは(condition1またはcondition2または... conditionN)と同等です

ノート:これはeval/whereでも使用できます

anyof(ERROR, WARNING, FATAL) - これらの単語のいずれかを検索

anyof(Severity = ERROR, ERROR)

allOf(condition1, condition2, ..., conditionN)

ノート: これは(condition1 AND condition2 AND ... conditionN)と同等です。

ノート:これはeval/whereでも使用できます

allof(ERROR, WARNING, FATAL) - 3つの単語すべてを検索する

allof(Severity = ERROR, ERROR)

anyFields(wildCardExpression) = value

anyFields(wildCardExpression) != value

ノート: これは、(field1 = value OR field2 = value OR ...)と同等です。

ノート:これはeval/whereでも使用できます

anyFields('Project*) != null

('プロジェクトID' != nullまたは'プロジェクト名' != nullまたは'プロジェクト摘要' != null)に変換

allFields(wildCardExpression) = value

allFields(wildCardExpression) != value

ノート: これは、(field1 = 値AND field2 = 値OR ...)と等価です。

ノート:これはeval/whereでも使用できます

allFields('Project*) != null

('プロジェクトID' != nullおよび'プロジェクト名' != nullおよび'プロジェクト摘要' != null)に変換

anyof()およびallof()の例:

  • admlogoffまたはuserのいずれかの語を含むログに一致します。

    anyof(adm, logoff, user)
  • admlogoffまたはuserのすべての単語を含むログに一致します。

    allof(adm, logoff, user)
  • oracleまたはactiveのいずれかの語を持たず、severityフィールドにnull以外の値を持つログと一致します。

    severity != null not anyof(oracle, active)
  • 単語oracleまたはactiveの両方ではなく、severityフィールドにnull以外の値を持つログに一致します。

    severity != null not allof(oracle, active)
  • dで始まるか、fで始まるseverity値を返します。

    * | distinct Severity | where anyof(substr(severity, 0, 1) = d, substr(severity, 0, 1) = f)
  • fで始まりnot fatalであるseverity値を返します。

    * | distinct Severity | where allof(severity != fatal, substr(severity, 0, 1) = f)

allfields() amd anyfields()のその他の例:

  • 文字列tarで始まるすべてのフィールド(ターゲット、ターゲット・ガイド、ターゲット・タイプなど)がnull以外であるログを返します。

    allfields(tar*) != null
  • allfieldsはデフォルトの関数で、前述の問合せは次のように短く記述できます。

    'tar*' != null
  • tarで始まるフィールドのいずれかがnullであるログを返します:

    
    anyFields(tar*) = null
  • lengthで終わるすべての数値フィールド(パケット長、長さ、UDPパケット長など)の値が2であるログと一致します。

    allFields(*length) = 2
  • 値が2のlengthで終わる数値フィールドのいずれかとログが一致します。

    anyFields(*length) = 2