固定幅のログファイルをCSVに解析する
固定幅のサーバーログファイルを分析用にCSV形式に変換します。タイムスタンプ、ログレベル、プロセスID、メッセージの抽出について解説します。
Legacy Formats
詳細な説明
ログファイルの解析
多くのサーバーアプリケーションは、各フィールドが一貫した文字数を占める固定幅フォーマットでログファイルを書き出します。CSVに変換することで、ログ分析ツール、スプレッドシート、データベースへのインポートが容易になります。
一般的なログフォーマット
2024-01-15T10:30:45.123INFO 1234Application started successfully
2024-01-15T10:30:46.456DEBUG 1234Loading configuration from /etc/app/config.yml
2024-01-15T10:30:47.789WARN 1234Connection pool size is below minimum
2024-01-15T10:30:48.012ERROR 5678Failed to connect to database on port 5432
カラムレイアウト
| フィールド | 幅 | 説明 |
|---|---|---|
| Timestamp | 23 | ミリ秒付きISO 8601 |
| Level | 8 | ログレベル(INFO, DEBUG, WARN, ERROR) |
| PID | 8 | プロセスID、右寄せ |
| Message | 60 | フリーテキストメッセージ |
結果のCSV
Timestamp,Level,PID,Message
2024-01-15T10:30:45.123,INFO,1234,Application started successfully
2024-01-15T10:30:46.456,DEBUG,1234,Loading configuration from /etc/app/config.yml
2024-01-15T10:30:47.789,WARN,1234,Connection pool size is below minimum
2024-01-15T10:30:48.012,ERROR,5678,Failed to connect to database on port 5432
分析の可能性
CSVにすることで:
- ログレベルでフィルタ:ERRORとWARNエントリのみを抽出
- PIDでグループ化:特定プロセスの全メッセージを確認
- 時間範囲クエリ:特定の時間帯のエントリを選択
- データベースにインポート:SQLite、PostgreSQL、ログ集約ツールに読み込み
自動検出のヒント
タイムスタンプとレベルフィールドが一貫したスペースパターンを作成するため、自動検出機能はログファイルでよく機能します。自動検出の幅がわずかにずれている場合は、カラム定義パネルで手動調整してください。
ユースケース
アプリケーションログファイルをスプレッドシートでの分析用にCSVに変換、ログ分析プラットフォーム(ELKスタック、Splunk)へのインポート、またはインシデント調査のためのSQLクエリに使用します。