RFC 3164 BSD syslog protocol這個協定一開始是由University of California Berkeley Software Distribution (BSD)所開發的。syslog 和大部分的網路協定標準不同,他沒有任何標準去規定他的記錄格式,造成許多的syslog判讀及分析困難。而2001年時由 Internet Engineering Task Force 才制定了 RFC3164 - The BSD Syslog Protocol 作為 syslog 第一個標準。這個協定到 2009年的 RFC 5424 - The Syslog Protocol 出現後才被廢止,而 RFC 5424 也成為今日 syslog 的標準,但是這標準太新,很少的系統有支援到RFC 5424,大部分現存設備還是以RFC 3164為主。他定義了五種行為者:1.device :生成消息的設備。2.relay :可以接收消息的設備又將消息轉發給了其他設備。3.collector:接收消息但不進行轉發酒店工作的設備。通常稱作syslog服務器。4.sender :發出消息或轉發消息的設備被。5.receiver :任何接收消息的設備,包括轉發或收集。設備的架構概述為下列幾點:1. 發送者發出消息時不知道接收者是collector還是relay。2. 發送者可以配置成將同一個消息發送給多個接收者。3. relay可以發送所有從上一個relay或collector收到的消息。某些情況下他們不轉發所有信息, 他們同時  作為collector和relay。在下圖中,一些設備被定義成relay。4. relay可以生成自己的消息,同時將他們發送給下一個relay或collector。這種情況下,他們作為  device。這些device同時被定義為下圖中的relay。下圖為一些可能的系統架構圖,最簡單常用的架構為device => collector +------+ 結婚西裝 +---------+ |Device|---->----|Collector| +------+ +---------+ +------+ +-----+ +---------+ |Device|---->----|Relay|---->----|Collector| +------+ +-----+ +---------+ +------+ +-----+ +-----+ +---------+ |Device|-->--|Relay|-->--..-->--|Relay|-->--|Collector| +------+ +-----+ +-----+ +---------+ +------+ +-----+ +---------+ |Device|---->----|Relay|---->----|Collector| | |-\ +-----+ +---------+ 賣屋+------+ \ \ +-----+ +---------+ \-->--|Relay|---->----|Collector| +-----+ +---------+ +------+ +---------+ |Device|---->----|Collector| | |-\ +---------+ +------+ \ \ +-----+ +---------+ \-->--|Relay|---->----|Collector| +-----+ +---------+ +------+ +-----+ +---------+ |Device|---->----|Relay|---->-------|Collector| | 東森房屋|-\ +-----+ /--| | +------+ \ / +---------+ \ +-----+ / \-->--|Relay|-->--/ +-----+ 協定的內容(PRI、HEADER、MSG)Syslog的完整格式由三個可識別的部分組成。第一部分是PRI,第二部分是HEADER,第三部分是MSG。報文的總長度必須是1024字節之內。Syslog消息的最小長度沒有定義,但發送一個長度為空的消息是沒有意義的。使用UDP做為傳輸層的協定,預設的目標port為 514。封包內容必需 <= 1024 bytes。協定內提到,任何發送到port 514的udp封包,都應該視為syslog,只是看有沒有使用他建議的格式。PRI總共的長度為3~5個bytes。其中酒店打工第一個字元必需為"<"(0x60),最後一個字元必需為">"(0x62)。括中中間的為1~3個字元,代表優先級,表示設備的描述和嚴重級別。使用字元"0"(0x48)到"9"(0x57)表示。下表為定義。 Numerical Facility Code 0 kernel messages 1 user-level messages 2 mail system 3 system daemons 4 security/authorization messages (note 1) 5 messages generated internally by syslogd 6 line printer subsystem 7 network news subsystem 8 網路行銷UUCP subsystem 9 clock daemon (note 2) 10 security/authorization messages (note 1) 11 FTP daemon 12 NTP subsystem 13 log audit (note 1) 14 log alert (note 1) 15 clock daemon (note 2) 16 local use 0 (local0) 17 local use 1 (local1) 18 local use 2 (local2) 19 local use 3 (local3) 20 local use 4 (local4) 21 local use 5 (local5) 22 local use 6 新成屋(local6) 23 local use 7 (local7)Note 1 - Various operating systems have been found to utilize Facilities 4, 10, 13 and 14 for security/authorization, audit, and alert messages which seem to be similar.Note 2 - Various operating systems have been found to utilize both Facilities 9 and 15 for clock (cron/at) messages.每個消息優先級有一個十進位編號表示的嚴重級別。如表所示: Numerical Severity Co de 0 Emergency: system is unusable 1 Alert: act ion must be taken immediately 2 Critical: critical conditions 3 結婚 Error: error conditions 4 Warning: warning conditions 5 Notice: normal but significant condition 6 Informational: informational messages 7 Debug: debug-level messages優先級是由 Facility * 8 + Severity。例如 0(kernel messages)和 0(Emergency: system is unusable)為 0 * 8 + 0 = 0。 20(local use 4) * 8 + 5 (Notice: normal but significant conditio) = 165。上述中,只有得到的結果為 0 才可能以 0 為開頭,不會有 <01> 、 <02> 這種東西。HEADER包含TIMESTAMP以及HOSTNAME,必需使用可印出的ascii字元集(0x20 ~ 0x7E)。這個時間為設備的本地時間。TIMESTAMP格式(注意中間的空格):Mmm dd 信用卡代償hh:mm:ssMmm:為月份的英文縮寫,取值為Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec。dd:一個月中的天數,取值為1~31,如果 < 10,需用空格表示,例如 " 8"。hh:24小時,取值為 00 ~ 23mm:分鐘,取值為 00 ~59ss:秒,取值為 00 ~59TIMESTAMP後必需再加一個空格。HOSTNAME發送目標的主機名稱,如果沒有主機名稱,就使用IP。 MSG包含TAG以及CONTENT,必需使用可印出的ascii字元集(0x20 ~ 0x7E)。TAG段落的值是產生消息的程式或行程名稱,由英文數字組成,不超過32個字元。當遇到非英數的字元,通常是 "[" 或 ":" 或空格;這個字元會被當作TAG段落的結束和CONTENT段落的開始。


.msgcontent .wsharing ul li { text-indent: 0; }



分享

Facebook
情趣用品Plurk
YAHOO!

創作者介紹

越秀

uw88uwzwye 發表在 痞客邦 PIXNET 留言(0) 人氣()