Я немного запутался в формате сообщений syslog. Мне нужно написать программу, которая анализирует сообщения syslog. Когда я прочитал то, что получаю в моем экземпляре 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 [[email protected] iut="3" eventSource="Application" eventID="1011"] BOMAn application event log entry...
Итак, теперь я немного смущен. Каков правильный формат сообщения syslog? Это вопрос спецификации, где RFC 5424 устарели RFC 3164?