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フォーマットで出力するネットワークデバイスのログ解析、システムサービス問題のデバッグ。