log

スキーマ、モデルまたはロガーを指定してログを検索します。検索対象テーブルは指定した条件に該当するロガーの保存テーブルから自動的に決定されるため、テーブル名を直接知らなくてもログを照会できます。

コマンドプロパティ

項目説明
コマンドタイプ加工クエリ
必要な権限テーブル読み取り権限
ライセンス使用量該当なし
並列実行非対応
分散実行データノードで実行(mapper)

構文

log schema=STR [duration=INT{s|m|h|d|mon}] [from=DATE] [to=DATE] [model=STR] [source=STR] [alias=BOOL] [SEARCH_EXPR]
SEARCH_EXPR
検索条件式(任意)。フィールド比較演算子(==!=<<=>>=)と論理演算子(andornot)でフィールド値の条件を組み合わせます。例: src_ip == "203.0.113.10" and dst_port == 443range()iprange() などの索引検索関数も使用できます。省略すると条件なしで対象テーブルのすべてのログを返します。

オプション

schema=STR(必須)
検索するログスキーマコード。登録されていないコードを指定するとエラー(300149)が発生します。
duration=INT{s|m|h|d|mon}
現在時刻から一定の時間範囲以内のログに限定します。s(秒)、m(分)、h(時)、d(日)、mon(月)単位を使用します。例えば 10s は現在時刻から10秒前までの範囲を意味します。from オプションを併用した場合は from の値が優先されます。
from=DATE
照会範囲の開始時刻。yyyyMMddHHmmss 形式で入力し、末尾の桁を省略すると0で埋められます。
to=DATE
照会範囲の終了時刻。yyyyMMddHHmmss 形式で入力し、末尾の桁を省略すると0で埋められます。
model=STR
検索対象を絞り込むロガーモデルのGUIDまたは名前。カンマで区切って複数指定できます。source オプションと同時に使用できません。
source=STR
検索対象を絞り込むロガーのGUIDまたは名前。カンマで区切って複数指定できます。model オプションと同時に使用できません。
alias=BOOL
スキーマに定義されたフィールド名を表示名に変換するかどうか(デフォルト: f)。t または true を指定すると有効化します(大文字小文字を区別)。

入力フィールド

なし(クエリプランナーが実行前に必ず table または fulltext コマンドに置き換えるため、log コマンド自体は実行されません)

出力フィールド

なし。書き換えられた table または fulltext コマンドが対象テーブルに保存されたフィールドをそのまま出力します。alias=t でスキーマにフィールドが定義されている場合はフィールド名が表示名に変わりスキーマに定義されたフィールドのみが残り、alias を指定しない場合はフィールド名はそのままで _table フィールドを先頭に配置した後、スキーマに定義されたフィールド順にその後ろへ再配置します(それ以外のフィールドは後方に維持されます)。

エラーコード

パースエラー
エラーコードメッセージ説明
300148Schema option is required.schema オプションを指定していない場合
300149Log schema not found.schema オプション値に該当するログスキーマがない場合
300150Cannot specify both model and source options.modelsource オプションを同時に指定した場合
300151Unexpected term in search expression.検索条件式に予期しないトークンがある場合
300152Unparsed tokens remain in search expression.検索条件式のパース後に処理されなかったトークンが残っている場合
300153Parentheses do not match in search expression.検索条件式の小括弧の対応が取れていない場合
300154Quotes do not match in search expression.検索条件式の引用符の対応が取れていない場合
300155Square brackets do not match in search expression.検索条件式の大括弧の対応が取れていない場合
300156Invalid escape sequence in search expression.検索条件式に不正なエスケープシーケンスがある場合
300157Unsupported expression type in search condition.演算子のない単一識別子のみの入力など、対応していない式を使用した場合
300158Unsupported operator in search expression.検索条件式に対応していない演算子を使用した場合
300159Malformed search expression.その他、検索条件式の形式が正しくない場合
ランタイムエラー

該当なし

説明

log コマンドはログスキーマ、ロガーモデル、ロガーの3つの方式で検索対象テーブルを決定します。

  • model オプションを指定すると、そのロガーモデルに schema オプションと一致する抽出器(extractor)が1つでもあるかをモデル単位で判定します。一致する抽出器があれば、そのモデルを使用するすべてのロガーのテーブルを対象とし(ロガーごとに抽出器を再照合しない)、なければそのモデルは対象から除外されます。
  • source オプションを指定すると、そのロガーのテーブルを対象とします。
  • どちらも指定しない場合は、schema オプションと一致するログスキーマを使用するすべてのロガーのテーブルを対象とします。

対象テーブルが1つもない場合(例: 条件に合うロガーがない場合)はエラーなしで空の結果を返します。schema オプションはコマンドをパースする時点で存在有無を検査しますが(300149)、実行直前にクエリプランナーが書き換える時点でもう一度スキーマを照会します。この時点でスキーマが見つからない場合(例: パース後にスキーマが削除された場合)はエラーを発生させずに空の結果を返します。

log コマンドは実行されず、クエリプランナー(LogCommandRewritingPlanner)が必ず次の2つの形態のいずれかに置き換えた後、そのコマンドが実際に実行されます。

  • schema=session で検索条件式を指定していない場合: 対象テーブルに対する table コマンドに置き換え、後ろに search _schema == "session" 条件を追加します。
  • それ以外の場合(検索条件式を指定した、または session スキーマでない場合): 検索条件式と _schema 条件を結合した fulltext コマンドに置き換えます。

このように書き換えられた table または fulltext コマンドが実際に実行されるため、テーブル読み取り権限は log コマンド自体ではなく、書き換えられたコマンドの実行レイヤーで強制されます。 fulltext に書き換えられる場合と table に書き換えられる場合のいずれも、読み取り権限のないテーブルはエラーなしで検索対象から静かに除外されます。権限のないテーブルのログは結果に表れませんがエラーメッセージは表示されないため、結果が空または想定より少ない場合は対象テーブルの読み取り権限を先に確認してください。アカウント別のテーブル読み取り権限の付与状況は sonar-usersgranted_tables 出力フィールドで確認できます。

使用例

  1. スキーマのみを指定して検索

    log schema="session"
    

    session スキーマを使用するすべてのロガーの最近のログを検索します。

  2. 期間と検索条件式を指定して検索

    log schema="session" duration=1h src_ip == "203.0.113.10"
    

    直近1時間以内に収集された session スキーマログのうち、送信元IPが 203.0.113.10 のログのみを検索します。

  3. 特定のロガーに範囲を絞って検索

    log schema="session" source="fw-edge-01" from=20260801 to=20260802
    

    fw-edge-01 ロガーが収集した session スキーマログのうち、2026年8月1日の1日分だけを検索します。

  4. フィールド表示名に変換して検索

    log schema="session" alias=t duration=1d
    

    直近1日間の session スキーマログを検索し、フィールド名をスキーマに定義された表示名に変換してスキーマに定義されたフィールドのみを返します。

変更履歴

log コマンドはSonar 4.0.2609.0バージョンから利用可能です。Experimental アプリが提供していたコマンドをSonarコアに内蔵したものです。内蔵されていないバージョンでは、Experimental アプリをインストールして使用できます。