機能紹介

Log Viewportの主要機能をご紹介します

ログインポート

Apache / nginx のアクセスログを効率的にインポート

ドラッグ&ドロップ

ログファイルをウィンドウにドラッグ&ドロップして簡単にインポート。

ストリーミング処理

メモリ効率の良いストリーミング処理で、GB級の大規模ログも高速に取り込み。

バッチINSERT

5,000行単位のバッチ処理でSQLiteに高速挿入。進捗表示とキャンセル機能付き。

カスタムログフォーマット対応

Apache の %variable、nginx の $variable 形式に対応

Apache Combined Log Format

%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"

標準のCombined形式をサポート

Apache Custom Log Format

%h %l %u %t "%r" %>s %b %D %v

%変数形式のカスタムフォーマットに対応

nginx 標準フォーマット

$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent

nginx標準のログ形式をサポート

nginx カスタムフォーマット

$remote_addr "$request" $status $request_time $upstream_response_time

$変数形式のカスタムフォーマットに対応

フィールドマッピング

Apache / nginx の変数を固定フィールドに自動マッピング

フィールド

Apache

nginx

説明

ts

%t$time_local

タイムスタンプ

remote_addr

%h$remote_addr

クライアントIP

method

%m$request_method

HTTPメソッド

path

%U$uri

リクエストパス

status

%>s$status

HTTPステータス

bytes_sent

%b$body_bytes_sent

送信バイト数

request_time

%D$request_time

リクエスト処理時間

user_agent

%{User-Agent}i$http_user_agent

User-Agent

※ 固定フィールドにマッピングできないカスタム変数は log_custom_fields テーブルに保存されます

URL分解・正規化

URLを構造化して検索可能な形式で保存

base_url

scheme + host + port

例: https://example.com:443

path

リクエストパス

例: /api/users

query_raw

生のクエリ文字列

例: id=10&tag=a&tag=b

query_params

正規化した key-value

例: (id,10), (tag,a), (tag,b)

GUIフィルタ検索

直感的なGUIで複合条件を指定して検索

時間範囲

開始日時〜終了日時で絞り込み

ステータスコード

200, 404, 500 などのHTTPステータスで絞り込み

HTTPメソッド

GET, POST, PUT, DELETE などで絞り込み

ホスト / vhost

特定のホストやバーチャルホストで絞り込み

パス前方一致

/api/, /admin/ などパスの前方一致検索

リモートアドレス

特定のIPアドレスからのアクセスを絞り込み

クエリパラメータ

utm_source=google など特定のパラメータで検索

カスタムフィールド

X-Forwarded-For などのカスタムフィールド検索

生SQL実行

柔軟な分析のためのSQL実行機能

SELECT文に対応

WITH句を含むSELECT文を実行可能。複雑な分析クエリにも対応。

SELECT e.*, cf.field_value AS x_forwarded_for FROM log_entries e LEFT JOIN log_custom_fields cf ON cf.entry_id = e.id AND cf.field_name = 'x_forwarded_for' WHERE e.status = 200 ORDER BY e.ts DESC LIMIT 1000;

セキュリティ制限

  • INSERT / UPDATE / DELETE は禁止

  • DROP / ALTER / ATTACH / PRAGMA は禁止

  • 結果行数の上限あり(10,000行)

重複排除(Dedup)

同一ログの重複を自動的に排除

fingerprint計算

以下のフィールドを連結・正規化してハッシュ化:

tsremote_addrmethodhostpathquery_rawstatusbytes_sentuser_agentreferer

DB制約で強制

UNIQUE(source_id, fingerprint) 制約で重複を防止。INSERT OR IGNORE で高速挿入。

エクスポート

分析結果を様々な形式で出力

SQLiteダンプ

schema + data を .sql ファイルで出力。他ツールでのインポートに対応。

CSVエクスポート

GUIフィルタ結果やSQL実行結果をRFC4180準拠のCSVで出力。

Log Viewportを使ってみる