私はsyslogメッセージフォーマットについて少し混乱しています。 syslogメッセージを解析するプログラムを書く必要があります。私は私のsyslog-ngのインスタンスに何を得る読んだとき、私はこのようなメッセージが出る:syslogメッセージフォーマットと混同しました
Jan 12 06:30:00 1.2.3.4 apache_server: 1.2.3.4 - - [12/Jan/2011:06:29:59 +0100] "GET /foo/bar.html HTTP/1.1" 301 96 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729)" PID 18904 Time Taken 0
私は明らかに(この場合は、Apacheのアクセスログメッセージです)本当のメッセージ残りはに関するメタデータであると判断することができますsyslogメッセージ自体だから今、私は少し混乱していた構造化データ
<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47 - BOM'su root' failed for lonvick on /dev/pts/8
または構造化データ
<165>1 2003-10-11T22:14:15.003Z mymachine.example.com evntslog - ID47 [[email protected] iut="3" eventSource="Application" eventID="1011"] BOMAn application event log entry...
とせずに
:私はRFC 5424を読んだとき
ただし、メッセージの例は次のようになり。正しいsyslogメッセージ形式は何ですか?それはRFC 5424が廃止された仕様バージョンの問題ですRFC 3164?
私は、それが非常に長い時間そこにあったので、これはRFC5424ではなくRFC3164形式のほぼすべてのログメッセージを見るのが普通だと思います。つまり、両方の仕様をサポートするパーサを作成する必要があります。すでにこれを行っているライブラリ(言語に関係なく)を知っていますか? – qwix
syslog-ng、rsyslog、[nxlog](http://nxlog.org)などの既存のツールを使用しないのはなぜですか? (私は後者と提携していることに注意してください)。あなた自身のプログラムからこれを解析する必要があるなら、私はおそらく、perlやpythonのようなテキストファイルを簡単に扱えるスクリプト言語を選ぶでしょう。 – b0ti
自分のプログラムからこれらのメッセージを解析する必要があります。私はPythonを使うつもりだと思う。しかし、何らかの理由でsyslogメッセージを解析することは、思ったほど単純ではありません。おそらく私は2つの異なる仕様をサポートする必要があるからでしょう。単体テストを書くのは完璧な時期だと私は信じています。ご回答有難うございます :) – qwix