Syslogフォーマットログの解析

RFC 3164 syslogメッセージを解析して、タイムスタンプ、ホスト名、プロセス名、PID、メッセージ内容をシステムレベルログから抽出します。

Syslog

詳細な説明

Syslogフォーマット(RFC 3164)

SyslogはUnix/Linuxシステムの標準ロギングプロトコルです。RFC 3164はBSD syslogフォーマットを定義しており、システムログ、ジャーナルファイル、ネットワークデバイス出力で最も一般的に使用されるフォーマットです。

フォーマット構造

<priority>タイムスタンプ ホスト名 アプリケーション[pid]: メッセージ
  • Priorityはオプションで山括弧で囲まれる(例:<34>
  • タイムスタンプMmm dd HH:MM:SS形式(例:Jan 15 10:30:00
  • ホスト名は発信元システムを識別
  • アプリケーションはプロセス名、オプションで[pid]が続く

ログ行の例

Jan 15 10:30:00 webserver01 sshd[12345]: Failed password for root from 10.0.0.5 port 22
Jan 15 10:30:01 webserver01 nginx[6789]: upstream timed out (110: Connection timed out)
Jan 15 10:30:02 appserver02 myapp[4321]: INFO Starting health check routine

抽出されるフィールド

フィールド 説明
タイムスタンプ Jan 15 10:30:00 — RFC 3164には年がない
ホスト名 webserver01 — 発信元ホスト
プロセス sshd — アプリケーション名
PID 12345 — プロセスID(存在する場合)
メッセージ 完全なメッセージ内容

重要度検出

Syslogメッセージには必ずしも明示的な重要度キーワードが含まれません。パーサーはメッセージ内容を一般的なキーワード(ERROR、WARN、INFO、DEBUG、FAIL)でスキャンして重要度レベルを割り当てます。

ユースケース

/var/log/syslogや/var/log/messagesからのLinuxシステムログ分析、SSH認証失敗の調査、カーネルメッセージとファイアウォールログの監視、syslogフォーマットで出力するネットワークデバイスのログ解析、システムサービス問題のデバッグ。

試してみる — Log Format Parser

フルツールを開く