我对系统日志消息格式有点困惑。我必须编写一个解析系统日志消息的程序。当我阅读在我的 syslog-ng 实例中得到的内容时,我会收到如下消息:
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 消息本身的元数据。
但是,当我阅读RFC 5424时,消息示例如下所示:
没有结构化数据
<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 [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"] BOMAn application event log entry...