1. HOME
  2. シスログ談話室
  3. BSD-syslog(RFC 3164) メッセージフォーマット

BSD-syslog(RFC 3164) メッセージフォーマット

Syslogメッセージフォーマットイメージ

転送時の syslog メッセージは分離可能な3つの要素で構成されます。
それぞれPRI、HEADER、MSGと呼ばれます。
全長は1024バイト以内です。

メッセージフォーマットの3つの要素

1. PRI

3、4または5文字であり、はじめは”<“、終わりが”>”です。

コードは8ビットフィールドの7ビットASCIIが使用されます。
これらは”USA Standard Code for Information Interchange”として定義されています。
かぎ括弧の間の数はプライオリティでありファシリティとセベリティをあらわします。

プライオリティは0から9までの1,2又は3桁の10進数です。
ファシリティとセベリティは10進数の数字コードです。
いくつかのOSやデーモンにはにはファシリティがアサインされています。
明示的にアサインされていない場合は”local user”ファシリティや”user level”ファシリティをアサインすることができます。
これらのファシリティとセベリティは下の表に示します。

プライオリティ値=ファシリティx8 + セベリティです。
つまりセベリティがEmergency(セベリティ=0)のカーネルメッセージ(ファシリティ=0)のプライオリティは0です。
local user4(ファシリティ=20)のNotice(セベリティ=5)メッセージは165です。
SyslogメッセージのPRIはそれぞれ<0>と<165>となります。

数字コードファシリティ
0kernel messages
1user-level messages
2mail system
3system daemons
4security/authorization messages
5messages generated internally by syslogd
6line printer subsystem
7network news subsystem
8UUCP subsystem
9clock daemon
10security/authorization messages
11FTP daemon
12NTP subsystem
13log audit
14log alert
15clock daemon
16local use 0 (local0)
17local use 1 (local1)
18local use 2 (local2)
19local use 3 (local3)
20local use 4 (local4)
21local use 5 (local5)
22local use 6 (local6)
23local use 7 (local7)
数字コードセベリティ
0Emergency: system is unusable
1Alert: action must be taken immediately
2Critical: critical conditions
3Error: error conditions
4Warning: warning conditions
5Notice: normal but significant condition
6Informational: informational messages
7Debug: debug-level messages

2. HEADER

タイムスタンプとホスト名あるいはデバイスIPアドレスを含みます。必ず印刷可能文字です。PRIと同じく8ビットフィールドの7ビットASCIIが使用されます。

TIMESTAMPはPRIの”>”に続きます。
TAIMESTAMPとHOSTNAMEのあとはひとつのスペースです。
HOSTNAMEはホスト名あるいはIPアドレスです。TIMESTAMPはローカル時刻でフォーマットは”Mmm dd hh:mm:ss”です。Mmmは英語3文字の月であり先頭が大文字、それ以降は小文字です。
ddは日で10未満はスペース+数字です。8月7日は”Aug  7″でgと7の間にはスペースが2つあります。
“hh”は24時間表示の時間であり00から24、”mm”と”ss”は00から59までの分と秒です。
TIMESTAMPのあとはひとつのスペースです。
HOSTNAMEはホスト名、IPv4アドレス、IPv6アドレスのいずれかです。
HOSTNAMEのあとはひとつのスペースです。

3. MSG

Syslogパケットの残りでありテキストメッセージで追加情報を含みます。
終了区切りはありません。
印字可能文字でなければなりません。
文字セットは受信者を考慮できます。

受信者が読めない文字では意味がありません。
MSGにはTAGとCONTENTの2つのフィールドがあります。
TAGフィールドの値はメッセージを生成したプログラムやプロセス名、CONTENTにはメッセージの詳細が含まれます。
TAGは32文字以内であり、英数字以外はTAGフィールドの終わりを示します。

通常は ”[“, ”:”, ” “ などが使われます。

<34>Oct 11 22:14:15 mymachine su: ‘su root’ failed for lonvick on /dev/pts/8

出典:
https://datatracker.ietf.org/doc/html/rfc3164#section-4.1.1