ログ検索のクエリ構文

ログの検索ではLuceneクエリ構文を使用してクエリを作成し、検索を絞り込むことができます。

クエリ文字列は、一連のタームと演算子に解析されます。

  • タームは、janesmithなどの1つの単語の場合があります。

  • タームは、二重引用符で囲まれたフレーズ("customer log")の場合があり、同じ語順でフレーズにあるすべての単語に一致させます。

  • フィールド名のないタームは、これらの選択されたフィールドにのみ一致させます。

  • 複数のタームは、括弧を使ってグループにまとめ、サブクエリにすることができます。

  • すべての検索フィールドでは、大文字と小文字が区別されます。

  • 演算子(ANDORNOT)はすべての検索可能なフィールドに使用できます。

検索可能なフィールド

以下のフィールドは検索可能で、大文字と小文字が区別されます。

フィールド 説明
client_id イベントに関連するクライアントID。
client_name イベントに関連するクライアント名。
connection イベントに関連する接続名。
connection_id イベントに関連する接続ID。
description イベントの説明。
date YYYY-MM-DD形式のイベントが発生した日付。
hostname 認証フローに使用されるホスト名。
ip ログエントリを引き起こした要求の送信元のIPアドレス。
log_id イベントのログID。
organization_id イベントに関連する組織ID。
user_id イベントに関連するユーザーID。
user_name イベントに関連するユーザー名。
user_agent イベントに関連するユーザーエージェント。
strategy イベントに関連する接続戦略。
strategy_type イベントに関連する接続戦略のタイプ。
type イベントのタイプ。

ベアのタームに対して検索可能なフィールド

検索タームがフィールド名を使わずに入力された場合には、以下のフィールドに対してのみ検索されます。

  • client_name

  • connection

  • description

  • ip

  • log_id

  • type

  • user_name

完全一致

完全一致で検索するには、次のように、二重引用符を使用します:description:"Username invalid"

例えば、Username invalidと一致するログを見つけるには、q=description:"Username invalid"を使用します。

ワイルドカード

ワイルドカード検索は、アスタリスク文字(*)を使用して0以上の文字を置換する次のようなタームに実行できます:user_name:john*。プレフィックスの照合では、user_name:j*などのように使用できます。ワイルドカードのその他の使用(サフィックスの照合など)の場合、リテラルは3文字以上である必要があります。たとえば、name:*usaは使用できますが、name:*saは使用できません。

クエスチョンマークの記号(?)には対応していません。

たとえば、ユーザー名がjohnで始まるユーザーを見つけるには、q=user_name:john*を使用します。

範囲

ログ検索クエリで範囲を使用することができます。包括的な範囲には[min TO max]のように角括弧を使用し、排他的な範囲には{min TO max}のように中括弧を使用します。

中括弧と角括弧は同じ範囲の表現内で組み合わせることができます。範囲内にワイルドカードを使用することもできます。

たとえば、2018年12月18日から現在までのログをすべて見つけるには、q=date:[2018-12-18 TO *]を使用します。

保存期間の始めから2018年12月19日の前日までのログを見つけるには、q=date:[* TO 2018-12-19}を使用します。

クエリの例

以下の例は、Management APIを使用して実行できるクエリの種類を紹介するものです。

ユースケース クエリ
"Pass"を含む接続のすべてのログを検索 connection:*pass*
"fred"を含むユーザー名のユーザーをすべてのログで検索 user_name:*fred*
"123"に完全に一致するユーザーIDのすべてのログを検索 user_id:"123"
"s"で始まるタイプのすべてのログを検索 type:s*
"jane"で始まり"smith"で終わるユーザー名を検索 user_name:jane*smith
2018年12月のすべてのログを検索 date:[2018-12 TO 2019-01-01}
2018年12月10日以降のすべてのログを検索 date:[2018-12-10 TO *]
2019年1月1日午前1時から2019年1月1日12:23:45まで(ただしその時間は含まない)のすべてのログを検索 date:[2019-01-01T01:00:00 TO 2019-01-01T12:23:45}

制限事項

  • 414 Request-URI Too Large(要求のURIが長すぎます)のエラーが返された場合には、対応している長さよりもクエリ文字列が長いことを示しています。その場合には、検索を絞り込みます。

  • ログフィールドはトークン化されていないため、description:ruleCreate a rule(ルールの作成)やUpdate a rule(ルールの更新)の値を持つ説明には一致しません。この場合は、description:*ruleを使用します。ワイルドカード検索と完全一致を参照してください。

  • .rawフィールド拡張子には対応していません。フィールドは提供された値全体と照合され、トークン化はされません。

ページネーション

include_totalsパラメーターを使ってGET /api/v2/logsまたはGET /api/v2/users/{user_id}/logsエンドポイントを呼び出すと、結果の要約と要求されたログを含むJSONオブジェクトが返されます。以下のようなJSONオブジェクトになります。

{
  "length": 5,
  "limit": 5,
  "logs": [...],
  "start": 0,
  "total": 5
}

Was this helpful?

/

total(合計)フィールドは、ページで返されたログの数を示します(length(長さ)フィールドが返すものと同様です)。

もっと詳しく