Краткое описание стандартных форматов сообщений syslog.
Форматы Syslog
В настоящее время существует два стандартных формата сообщений syslog:
- BSD-syslog или унаследованные сообщения syslog
- IETF-syslog сообщения
Формат SD-syslog (RFC 3164)
Общий размер сообщения не может быть больше 1024 байт.
Сообщение BSD-syslog состоит из следующих частей:
- PRI - представляет Facility и Severity сообщения. Это вычисляемое значение: Facility * 8 + Severity
- HEADER - содержит метку времени и имя хоста (без имени домена) или IP-адрес устройства.
- MSG - содержит имя программы или процесса, сгенерировавшего сообщение, и текст самого сообщения.
Пример сообщения BSD-syslog:
1 | <133>Aug 11 14:09:07 webserver syslogd: restart |
Формат IETF-syslog (RFC 5424)
Сообщение IETF-syslog состоит из следующих трех частей:
1 | [Заголовок] [Структурированные данные] [Сообщение] |
Заголовок
- PRI - представляет Facility и Severity сообщения. Это вычисляемое значение: Facility * 8 + Severity
- VERSION - номер версии стандарта протокола syslog. В настоящее время это значение может быть только 1.
- ISOTIMESTAMP - Время создания сообщения в формате ISO 8601 (yyyy-mm-ddThh:mm:ss+-ZONE).
- HOSTNAME - Устройство, которое первоначально отправило сообщение.
- APPLICATION - Устройство или приложение, которое сгенерировало сообщение.
- PID - Имя процесса или идентификатор процесса приложения, отправившего сообщение.
- MESSAGEID - Идентификационный номер сообщения.
Структурированные данные
Часть сообщения может содержать мета-информацию о сообщении syslog или специфическую для приложения информацию, такую как счетчики трафика или IP-адреса. Структурированные данные состоят из блоков данных, заключенных в скобки ([]). Каждый блок включает в себя идентификатор блока и одну или несколько пар имя=значение.
Пример:
1 | [exampleSDID@0 iut="3" eventSource="Application" eventID="1011"][examplePriority@0 class="high"] |
Сообщение
Часть Сообщение (MSG) содержит текст самого сообщения. Набор символов, используемый в сообщении должен бытьбыть UNICODE, закодированный с помощью UTF-8. Если приложение syslog кодирует MSG в UTF-8, строка должна начинаться с маски порядка байтов Юникода (BOM).
Пример сообщения IETF-syslog:
1 | <34>1 2003-10-11T22:14:15.003Z machine application 1234 ID47 [example@0 class="high"] BOMmyapplication is started |
Примечания: APPLICATION, PID, MESSAGEID и Структурированные данные могут быть NULL, что представлено символом тире "-". Часть сообщения может быть абсолютно пустой (например, отправляется только Структурированные данные):
1 | <34>1 2003-10-11T22:14:15.003Z machine application - - - BOMmyapplication started |