ログ検索のクエリ構文
ログの検索ではLuceneクエリ構文を使用してクエリを作成し、検索を絞り込むことができます。
クエリ文字列は、一連のタームと演算子に解析されます。
タームは、
jane
やsmith
などの1つの単語の場合があります。タームは、二重引用符で囲まれたフレーズ(
"customer log"
)の場合があり、同じ語順でフレーズにあるすべての単語に一致させます。フィールド名のないタームは、これらの選択されたフィールドにのみ一致させます。
複数のタームは、括弧を使ってグループにまとめ、サブクエリにすることができます。
すべての検索フィールドでは、大文字と小文字が区別されます。
演算子(
AND
、OR
、NOT
)はすべての検索可能なフィールドに使用できます。
検索可能なフィールド
以下のフィールドは検索可能で、大文字と小文字が区別されます。
フィールド | 説明 |
---|---|
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:rule
はCreate 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(長さ)フィールドが返すものと同様です)。